近日接手了一個Struts + Spring + Mybatis 的項目後來又加入Spring Mvc,試着在原有的框架上開發了幾個功能以後,實在沒法忍受其開發效率,決定升級爲SoJpt Boot 使用 JFinal特性進行開發。所以有了如下的升級過程。java
思路: 升級爲Spring boot 加入SoJpt Boot,改爲maven 項目便可(這裏使用了SoJpt Boot腳手架一步搞定)。mysql
1. 根據本身的項目是否爲先後臺分離下載對應的SoJpt Boot 腳手架, 這裏我下載了SoJpt-Boot-Staging-mysql-v1.2 而後根據http://sojpt.com/doc/5-1 教程新建項目。web
2. 把原項目的代碼所有拷入新建的項目。若有問題可參考spring mvc 遷移至spring boot 的相關解決方案。 這裏爲了簡單直接引入以前spring 的配置文件applicationContext.xml (這裏使用了打war包的方式,也修改了pom.xml中的bulid)spring
@SpringBootApplication @ImportResource("classpath:applicationContext.xml") public class SoJptSpringbootApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(SoJptSpringbootApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(SoJptSpringbootApplication.class); } }
3.刪除 applicationContext.xml中的有關數據源與事務的配置。這些以spring Boot 的方式來配置。sql
4.由於以前項目不是maven項目,因此這裏把相關的jar 包找到其對應的maven依賴引入便可。mvc
5.將以前web.xml配置以註解的方式進行配置,下面給出一個過濾器的配置案例:app
@Bean public FilterRegistrationBean<StrutsPrepareAndExecuteFilter> struts2() { FilterRegistrationBean<StrutsPrepareAndExecuteFilter> registration = new FilterRegistrationBean<>(); registration.setFilter(new StrutsPrepareAndExecuteFilter()); registration.setName("struts2"); registration.addUrlPatterns("/*"); registration.setOrder(3); //值越小,Filter越靠前。 return registration; }
到這裏全部的主要的配置就結束了。框架
備註: 其餘根據Spring Boot, SoJpt Boot 與 JFinal的文檔配置對應的數據源。熱加載報錯的話,可參考Spring Boot devtools的解決方法,在META-INF/spring-devtools.properties 下加入須要熱加載的jar便可,以下:maven
restart.include.sojpt.boot=/sojpt-boot-2.5.8-4.3.jar restart.include.sojpt.boot.stater=/sojpt-boot-spring-boot-starter-2.5.8-4.3.jar restart.include.jrobin=/jrobin-1.5.9.jar restart.include.javamelody=/javamelody-core-1.79.0.jar restart.include.javamelody.stater=/javamelody-spring-boot-starter-1.79.0.jar restart.include.spring.tx =/spring-tx-5.1.9.RELEASE.jar