tinyweb集成springmvc 的一种可行方式
最近tiny项目中集成了springmvc,而且使用的tiny的版本比较低,所以整合起来官网给的前两种方式都行不通。
而且有个tiny整合springmvc的maven依赖都下载不了。所以只有使用第三种相对比较麻烦的方式。
步骤1:
在web.xml配置DispatcherServlet
1 <servlet> 2 <servlet-name>SpringMVC</servlet-name> 3 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 4 <init-param> 5 <param-name>contextAttribute</param-name> 6 <param-value>tinySpringContainer</param-value> 7 </init-param> 8 <load-on-startup>1</load-on-startup> 9 <async-supported>true</async-supported> 10 </servlet> 11 <servlet-mapping> 12 <servlet-name>SpringMVC</servlet-name> 13 <url-pattern>/mvc/*</url-pattern> 14 </servlet-mapping>
步骤2:
编写TinySpringContainerBindingListener
监听程序,放在对应的包下面
import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import org.tinygroup.beancontainer.BeanContainerFactory; import org.tinygroup.springutil.ExtendsSpringBeanContainer; import org.tinygroup.weblayer.listener.ServletContextHolder; public class TinySpringContainerBindingListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { ExtendsSpringBeanContainer beanContainer = (ExtendsSpringBeanContainer) BeanContainerFactory .getBeanContainer(getClass().getClassLoader()); ServletContextHolder.getServletContext().setAttribute( "tinySpringContainer", beanContainer.getBeanContainerPrototype()); } @Override public void contextDestroyed(ServletContextEvent sce) { ServletContextHolder.getServletContext().removeAttribute("tinySpringContainer"); } }
步骤3:
配置springmvc的扫描包,注解驱动:
<context:component-scan base-package="com.**.controller" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan> <mvc:annotation-driven />
配置完成。
可以尽情使用springmvc了。
业务驱动技术,技术是手段,业务是目的。