spring boot是一个框架,一种全新的变成规范,他的产生简化了框架的使用,所谓简化是指简化了spring众多框架中所需的大量且繁琐的配置文件,所以spring boot是一个服务于框架的框架,服务范围是简化配置文件,所以从本质上来说,spring boot其实就是spring框架的另一种表现形式。
官网https://spring.io/projects/spring-boot
特征
1、可以创建独立的spring应用程序
2、嵌入了tomcat(默认)、jetty、undertow容器
3、提供了一些启动器的依赖,简化项目构建配置
4、尽可能自动配置spring和第三方库
5、提供了生产就绪特征,如:度量指标、运行状态的健康检查、外部化配置
6、完全没有代码生成,不依赖xml配置
版本
SNAPSHOT快照版(开发版)
CURRENT GA最新版(但不一定是稳定版)
GA(正式发布的版本)
创建spring boot项目(通过idea)
spring boot项目结构
1、必须继承spring boot启动器
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.4</version> <relativePath/> <!-- lookup parent from repository --> </parent>
2、可以使用spring boot依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
3、必须要有spring boot的打包插件
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.1.0</version> </plugin> </plugins> </build>
4、启动类
作用:启动spring boot项目,基于main方法,而非容器启动。
任何类都可以,但是要加上@SpringBootApplication注解,里面写上main方法并写上spring应用的启动方法
@SpringBootApplication public class TextApplication { public static void main(String[] args) { SpringApplication.run(TextApplication.class, args); } }
5、配置文件
spring boot提供了一个application.properties文件或者application.yml(大小写敏感、使用缩进表示层级关系、相同的部分只出现一次)
properties方式
#容器监听端口,默认使用Tomcat默认8080 server.port=8080 #容器监听ip,默认当前主机(如果配置上了,那么只能使用所配置的ip才可以访问,一般不配置) server.address=127.0.0.1
yml方式 server: port: 8080 address: 127.0.0.1
6、配置存放位置以及加载顺序
配置文件可以放在项目根目录下、项目根目录/config目录下、项目的resources下(即classpath根路径)、项目的resources/config目录下,这四个目录都可以
同一个目录下,既有properties也有yml文件,那么先读取properties文件。
加载顺序优先级:项目根目录/config目录下 > 项目根目录下 > 项目的resources/config目录下 > 项目的resources下
7、配置文件中的占位符
作用:占位符可以获取框架提供方法中的值,如random.int等;也可以获取一个属性的值赋值给另一个属性
语法:${}
……