##舊的項目技術棧 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啓動項目