Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >从Spring迁移到Spring Boot

从Spring迁移到Spring Boot

作者头像
程序那些事
发布于 2020-07-07 08:17:51
发布于 2020-07-07 08:17:51
75400
代码可运行
举报
文章被收录于专栏:程序那些事程序那些事
运行总次数:0
代码可运行

从Spring迁移到Spring Boot

Spring Boot给我们的开发提供了一系列的便利,所以我们可能会希望将老的Spring 项目转换为新的Spring Boot项目,本篇文章将会探讨如何操作。

请注意,Spring Boot并不是取代Spring,它只是添加了一些自动配置的东西,从而让Spring程序更快更好

添加Spring Boot starters

要想添加Spring Boot,最简单的办法就是添加Spring Boot Starters。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@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同一级包或者子包下面,方便自动扫描。 二是显式导入。

我们看一下怎么显示导入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@SpringBootApplication
@ComponentScan(basePackages="com.flydean.config")
@Import(UserRepository.class)
public class Application {
    //...
}

如果是xml文件,你也可以这样使用@ImportResource导入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@SpringBootApplication
@ImportResource("applicationContext.xml")
public class Application {
    //...
}

迁移应用程序资源

默认情况下Spring Boot 会查找如下的资源地址:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/resources
/public
/static
/META-INF/resources

想要迁移的话 我们可以迁移现有资源到上诉的资源地址,也可以使用下面的方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring.resources.static-locations=classpath:/images/,classpath:/jsp/

迁移应用程序属性文件

Spring Boot 会在如下的地方查找application.properties或者application.yml 文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
* 当前目录
* 当前目录的/config子目录
* 在classpath中的/config目录
* classpath root

我们可以将属性文件移动到上面提到的路径下面。

迁移Spring Web程序

如果要迁移Spring Web程序,我们需要如下几步:

  1. 添加spring-boot-starter-web依赖:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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的静态资源支持。
  1. 配置View模板

对于web页面,通常不再推荐JSP,而是使用各种模板技术来替换:Thymeleaf, Groovy, FreeMarker, Mustache。我们要做的就是添加如下依赖:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

template文件在/resources/templates下面。

如果我们仍然需要是用JSP,则需要显示配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

更多教程请参考 flydean的博客

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序那些事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spring Boot【快速入门】
上面是引自官网的一段话,大概是说: Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。
我没有三颗心脏
2018/05/08
1.2K4
Spring Boot【快速入门】
第一章-Spring Boot 入门
Spring Boot来简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用。
李昂君
2021/12/24
5160
第一章-Spring Boot 入门
关于Spring Boot你不得不知道的事--Spring Boot的基本操作
表示当前pom文件从spring-boot-starter-parent继承下来,在spring-boot-starter-parent中提供了很多默认配置,可以简化我们的开发。
Java架构
2019/06/21
9760
关于Spring Boot你不得不知道的事--Spring Boot的基本操作
首页Spring BootSpring Boot入门学习
J2EE笨重的开发,繁多的配置,低下的开发效率,复杂的部署流程,第三方技术集成难度大。
cherishspring
2019/10/14
1.1K0
Springboot实践
从Spring 3.x开始,Spring社区的发展方向就是弱化xml配置文件而加大注解的戏份,Spring Boot使用@Configuration、@ComponentScan等注解,省去了大量配置,简化了Spring的开发。个人以为,它Spring之上一个更简洁的框架,适合做提供服务的组件。
liliane
2022/07/17
5930
深入浅出Spring Boot框架--6个知识点小结!
产生背景:Spring开发比较繁琐,配置文件很多,部署流程复杂,整合第三方框架难度大。这会降低开发效率
Java程序猿
2021/02/02
9500
盘点Spring Boot Starter的主力,看看哪几个是你没用过的
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
南风
2019/11/01
4380
spring Boot 配置文件详解
概要        前面我们讲述了如何搭建一个简单的 spring Boot 应用(参见Spring Boot - 初探),这里,我们来学习如何对项目进行相关的配置,包括系统构建、自动配置、依赖注入、开发工具等,使其更好地运行。 系统构建        为了便于依赖管理,官方建议我们使用Maven或者Gradle,以便进行依赖管理。当然,Spring Boot 也支持其他系统构建方式(如Ant)。         使用 Spring Boot ,你不需要提供相关依赖的版本,Spring Boot 会自动对其
xiangzhihong
2018/02/05
1.5K0
5000+收藏的Spring Boot面试核心总结,关键时刻可以救你一命!
我们平常在项目中主要关注使用,程序run起来就ok了,很少去了解原理、架构、和性能调优。这样在面试问题中总有一种无法直击问题本质的无力感,很难充分表现自己,最终影响面试结果。
博文视点Broadview
2020/06/10
8030
SpringBoot 2.0入门(1)
1)spring-boot-starter-parent作用 在pom.xml中引入spring-boot-start-parent,spring官方的解释是stater poms,它可以提供dependency management,也就是说依赖管理,引入以后在申明其它dependency的时候就不需要version了,后面可以看到。
老马的编程之旅
2022/06/22
4830
SpringBoot 2.0入门(1)
SpringBoot进阶
spring-boot-starter-web:springBoot的场景启动器,里面很多依赖如:spring-web、spring-webmvc、jackson、hibernate-validator、spring-boot-starter-tomcat、spring-boot-starter
晚上没宵夜
2020/04/16
9400
Spring Boot 入门
约定优于配置(Convention over Configuration),又称按约定编程,是一种软件设计范式。
RendaZhang
2020/11/11
2.2K0
Spring Boot 入门
Spring Boot笔记
–jdk1.8:Spring Boot 推荐jdk1.7及以上;java version “1.8.0_112”
瑞新
2020/07/08
1.2K0
Spring 和 SpringBoot 最核心的 3 大区别,详解!
对于 Spring和 SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习 SpringBoot的我当时也是一头雾水,随着经验的积累、我慢慢理解了这两个框架到底有什么区别,相信对于用了 SpringBoot很久的同学来说,还不是很理解 SpringBoot到底和 Spring有什么区别,看完文章中的比较,或许你有了不同的答案和看法!
好好学java
2020/11/06
1.5K0
Spring Boot 和 Spring 到底有啥区别?用了这么久,你知道吗?
对于Spring和SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习SpringBoot的我当时也是一头雾水随着经验的积累、我慢慢理解了这两个框架到底有什么区别。
程序员白楠楠
2020/12/01
3.8K0
使用Spring Boot搭建你的第一个应用程序
Spring Boot是Spring平台的约定式的应用框架,使用Spring Boot可以更加方便简洁的开发基于Spring的应用程序,本篇文章通过一个实际的例子,来一步一步的演示如何创建一个基本的Spring Boot程序。
程序那些事
2020/07/08
6510
spring boot入门,看这篇文章就够了
给maven 的settings.xml配置文件的profiles标签添加下面的代码:
李红
2019/07/16
8.4K0
Spring Boot入门(一)
第二个父项目用来加载所有的依赖版本,所以每次导入依赖的时候不需要书写版本号,spring boot默认会导入这个父项目中的版本。如果当前依赖在spring boot中没有进行依赖版本的控制,则需要书写版本号
石的三次方
2021/01/05
5740
Spring Boot入门
–jdk1.8:Spring Boot 推荐jdk1.7及以上;java version “1.8.0_112”
兮动人
2021/06/11
5610
Spring Boot入门
Spring Boot【快速入门】
Spring Boot 概述 Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based applications. Spring Boot is designed to get you up and running as quickly as possible, with minimal upfront configuration of Spring. 上面是引自官网的
我没有三颗心脏
2018/06/14
6170
相关推荐
Spring Boot【快速入门】
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档