当前栏目
从Spring迁移到Spring Boot
从Spring迁移到Spring Boot
Spring Boot给我们的开发提供了一系列的便利,所以我们可能会希望将老的Spring 项目转换为新的Spring Boot项目,本篇文章将会探讨如何操作。
请注意,Spring Boot并不是取代Spring,它只是添加了一些自动配置的东西,从而让Spring程序更快更好
添加Spring Boot starters
要想添加Spring Boot,最简单的办法就是添加Spring Boot Starters。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
添加应用程序入口
每一个Spring Boot程序都需要一个应用程序入口,通常是一个使用@SpringBootApplication注解的main程序:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@SpringBootApplication注解是下列注解的组合:
@Configuration ,@EnableAutoConfiguration,@ComponentScan 。
默认情况下@SpringBootApplication会扫描本package和子package的所有类。所以一般来说SpringBootApplication会放在顶层包下面。
Import Configuration和Components
Spring Boot通常使用自动配置,但是我们也可以手动Import现有的java配置或者xml配置。
对于现有的配置,我们有两个选项,一是将这些配置移动到主Application同一级包或者子包下面,方便自动扫描。
二是显式导入。
我们看一下怎么显示导入:
@SpringBootApplication
@ComponentScan(basePackages="com.flydean.config")
@Import(UserRepository.class)
public class Application {
//...
}
如果是xml文件,你也可以这样使用@ImportResource导入:
@SpringBootApplication
@ImportResource("applicationContext.xml")
public class Application {
//...
}
迁移应用程序资源
默认情况下Spring Boot 会查找如下的资源地址:
/resources
/public
/static
/META-INF/resources
想要迁移的话 我们可以迁移现有资源到上诉的资源地址,也可以使用下面的方法:
spring.resources.static-locations=classpath:/images/,classpath:/jsp/
迁移应用程序属性文件
Spring Boot 会在如下的地方查找application.properties或者application.yml 文件:
* 当前目录
* 当前目录的/config子目录
* 在classpath中的/config目录
* classpath root
我们可以将属性文件移动到上面提到的路径下面。
迁移Spring Web程序
如果要迁移Spring Web程序,我们需要如下几步:
- 添加spring-boot-starter-web依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
通过Spring Boot的自动配置,会自动检测classpath中的依赖包,从而自动开启@EnableWebMvc,同时创建一个DispatcherServlet。
如果我们在@Configuration类中使用了@EnableWebMvc注解,则自动配置会失效。
该自动配置同时自动配置了如下3个bean:
- HttpMessageConverter用来转换JSON 和 XML。
- /error mapping用来处理所有的错误
- /static, /public, /resources 或者 /META-INF/resources的静态资源支持。
- 配置View模板
对于web页面,通常不再推荐JSP,而是使用各种模板技术来替换:Thymeleaf, Groovy, FreeMarker, Mustache。 我们要做的就是添加如下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
template文件在/resources/templates下面。
如果我们仍然需要是用JSP,则需要显示配置如下:
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
更多教程请参考 flydean的博客
相关文章
- Springboot + Rabbitmq 用了消息确认机制,感觉掉坑里了
- 如何使用Fetch在JavaScript中进行AJAX调用
- 为什么美国程序员不用加班,而中国程序员就只能996?
- 特朗普对H1-B开刀为何彻底激怒硅谷?这是科技人才基石
- 再来一打Web安全面试题
- 问题来了!5个JavaScript问答测试你的技能熟练程度
- 前端开发不可不知的10个Sublime Text应用技巧
- 有哪些被低估未被广泛使用的有用的 HTML标签?
- 12 个实用的前端开发技巧总结
- 2020技术人才薪酬报告:四成人担心半年内遭遇失业危机
- 天下武功唯快不破:6种快速编写代码的方式
- 4个隐藏的有用的JavaScript技巧
- 7个让你微笑的终端命令
- 专访28岁退休程序员郭宇:1600人加好友,问我“挣了多少钱”
- Spring MVC 异常解析器,原理就是这么简单
- 自认为精通React,这些JavaScript概念你掌握了没?
- 发现了 10 个好用JavaScript图像处理库
- 写给开发人员的Web无障碍标准
- 字节跳动禁止中国员工访问海外产品代码库,“内外有别”保平安?
- 5月份Github上热门的JavaScript开源项目排行