从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:
配置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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍Android项目迁移到AndroidX的方法步骤,包括了Android项目迁移到AndroidX的方法步骤的使用技巧和注意事项,需要的朋友参考一下 1. 写在前面 迁移前请确认所有代码都已提交至代码托管平台或已手动备份! 迁移前请确认所有代码都已提交至代码托管平台或已手动备份! 迁移前请确认所有代码都已提交至代码托管平台或已手动备份! 重要的事情说三遍! 2. 前提条件 将AS更新
我有一个Spring 2.5.6的应用程序,它运行JDK 1.6。我改为版本4.3.6以使用JDK 1.8。 已经改变了一些方法和导入... 不再有编译错误。 但是,当我尝试使用Jetty启动应用程序时,出现了以下错误: 有人能帮我吗? 编辑:这是我的spring-security-config.xml(迁移期间未更改):
调用init方法失败;嵌套异常是javax.naming.ServiceUnAvailableException:由于通信失败,无法获得初始上下文。因为没有指定提供程序URL,所以使用默认的提供程序URL“corbaloc:IIOP:1.0@492d7185007d:2809/nameservice”。确保URL中的任何引导地址信息都是正确的,并且目标名称服务器正在运行。除了不正确的引导地址或不可
我目前的系统如下: null
我想从旧的spring boot安全应用程序迁移到KeyClope。下面是我的安全配置。 我已经安装了KeyClope,它正在8080端口上运行。我发现的问题是,我们应该在keydape管理页面上创建角色和用户,但我当前的系统是什么,用户和角色都在我的MySQL数据库上。我不想将用户和角色插入keydape以进行身份验证和授权。
我有多个使用spring integration的服务(serviceA、ServiceB.)。每个服务都依赖于其他子模块(同样使用spring integration)。