##旧的项目技术栈 spring3+strusts2+mybatis 3.1.1; 无依赖管理插件java
###添加maven管理 将全部的jar依赖用maven管理,固然还有一些属性配置文件web
pom.xml的一部分spring
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> <filtering>false</filtering> </resource> <resources>
###添加springmvc,使其可用spring-mvc
<servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/v1/*</url-pattern> </servlet-mapping>
添加了一个v1的拦截路径,与原来的strusts2的url区分开.tomcat
###将spring 3.0的依赖更新为4.0 中间有一个mybatis的升级冲突,更很快完成了 ###用spring boot管理依赖 添加了最新的1.5.2的springboot依赖springboot
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
添加相关的maven组件mybatis
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.2.RELEASE</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin>
###将项目改造为springboot启动的项目mvc
这个比较难,是别人作的. 添加了一个servlet启动控制的依赖app
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-legacy</artifactId> <version>1.0.0.RELEASE</version> </dependency>
这个jar包发布就没更新maven
修改web.xml里的监听器
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 配置spring核心servlet --> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
原来是这种,如今改成
<context-param> <param-name>contextConfigLocation</param-name> <param-value>com.sanji.mall2.Application</param-value> </context-param> <listener> <listener-class>org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener</listener-class> </listener> <!-- 配置spring核心servlet --> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextAttribute</param-name> <param-value>org.springframework.web.context.WebApplicationContext.ROOT</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
这样,就能够在application.yml里配置各类环境变量了.配置thymeleaf和logback也很轻松
###去掉web.xml文件
/**
@author 武继明 [wzslw@163.com]
@since 17-4-20 下午4:34 */ @SpringBootApplication @MapperScan("com.sanji.**.dao") public class Application extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(Application.class, args); }
@Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { //加载Application.class里全部的bean return application.sources(Application.class); }
@Bean public FilterRegistrationBean urlRewriteFilter(){ UrlRewriteFilter demoFilter=new UrlRewriteFilter(); //拦截器注册bean FilterRegistrationBean registrationBean=new FilterRegistrationBean(); registrationBean.setFilter(demoFilter); List<String> urlPatterns=new ArrayList<String>(); urlPatterns.add("/*");//拦截路径,能够添加多个 registrationBean.setUrlPatterns(urlPatterns); //指定拦截器顺序 registrationBean.setOrder(1); registrationBean.setDispatcherTypes(DispatcherType.REQUEST,DispatcherType.FORWARD); return registrationBean; }
@Bean public FilterRegistrationBean strutsDispatcherfilter(){ StrutsPrepareAndExecuteFilter demoFilter=new StrutsPrepareAndExecuteFilter(); FilterRegistrationBean registrationBean=new FilterRegistrationBean(); registrationBean.setFilter(demoFilter); List<String> urlPatterns=new ArrayList<String>(); urlPatterns.add("*.action");//拦截路径,能够添加多个 registrationBean.setUrlPatterns(urlPatterns); registrationBean.setOrder(2); return registrationBean; }
}
- 集成了SpringBootServletInitializer,重写 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) 方法.加载Application.class里全部的bean - 新增urlRewriteFilter的bean, strutsPrepareAndExecuteFilter的bean - 最后,使用tomcat启动项目