Spring Boot是由spring的Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
Spring Boot 具有以下特点:
1 内嵌 Servlet 容器
Spring Boot 使用嵌入式的 Servlet 容器(例如 Tomcat、Jetty 或者 Undertow 等),应用无需打成 WAR 包 。
2 提供 starter 简化 Maven 配置
Spring Boot 提供了一系列的“starter”项目对象模型(POMS)来简化 Maven 配置。
3 提供了大量的自动配置
Spring Boot 提供了大量的默认自动配置,来简化项目的开发,开发人员也通过配置文件修改默认配置。
4 自带应用监控
Spring Boot 可以对正在运行的项目提供监控。
5 无代码生成和 xml 配置
Spring Boot 不需要任何 xml 配置即可实现 Spring 的所有配置
一,项目创建
1.创建maven项目

2.pom文件配置
可以定义自定义jdk版本,编译时字符集。
①在build标签里配置jdk版本和字符集
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
②自定义依赖包的版本号
<fastjson.version>1.2.83</fastjson.version>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
3.YAML文件配置
YAML 全称 YAML Ain't Markup Language,它是一种以数据为中心的标记语言。
其属性配置文件以(.yml)结尾
YAML 的语法如下:
-
使用缩进表示层级关系。
-
缩进时不允许使用 Tab 键,只允许使用空格。
-
缩进的空格数不重要,但同级元素必须左侧对齐,一般缩进两个空格。
-
大小写敏感
1.基础配置,设置端口号
server:
port: 8081
2.多环境JAML配置
①在resources目录下创建application-dev.yml和application-prod.yml文件,分别表示开发环境和生产环境。
在application-dev.yml中配置端口号:
server:
port: 8081
在application.yml中指定哪个配置文件生效:
spring:
profiles:
active: dev
此时指定为dev环境,即开发环境生效。
active属性后面的值要跟yml的命名保持一致,如active: dev,对应的yml文件名称是application-dev.yml
其中application-dev.yml的命名格式 "application-"是固定的
②也可以通过获取pom文件中的配置项来指定多环境配置文件:
在pom.xml文件中添加profiles:
<profiles>
<profile>
<id>dev</id>
<properties>
<profileActive>dev</profileActive>
</properties>
<activation>
<!--默认为dev环境打包方式-->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<profileActive>prod</profileActive>
</properties>
</profile>
</profiles>
在profile中指定dev环境为默认生效的环境配置。
在application.yml文件中修改:
spring:
profiles:
active: @profileActive@
4.springboot启动注解
springboot由@SpringBootApplication启动。
@SpringBootApplication是一个复合注解,包括元注解和@ComponentScan,和@SpringBootConfiguration,@EnableAutoConfiguration。
4.1元注解
@Target、@Retention、@Documented、@Inherited
①@Target:用于设定注解范围,即注解可以用在什么地方
②@Retention:定义了被它注解了的注解可以保留多久
其中的属性:
source:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃;被编译器忽略
class:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期
runtime:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在
生命周期:runtime>class>source
③@Documented:表明这个注解应该被 javadoc工具记录. 默认情况下,javadoc是不包括注解的. 但如果声明注解时指定了 @Documented,则它会被 javadoc 之类的工具处理, 所以注解类型信息也会被包括在生成的文档中,是一个标记注解,没有成员。
④@Inherited:如果一个类用上了@Inherited修饰的注解,那么其子类也会继承这个注解。
4.2@SpringBootConfiguration:
SpringBootConfiguration与Spring中的@Configuation的作用基本一致,只不过@SpringBootConfiguration是springboot的注解,而@Configuration是spring的注解。@Configuration等价于<Beans></Beans>
4.3@EnableAutoConfiguration:
自动扫描装配,扫描加载项目以外的bean,即pom文件中依赖的jar中的bean。
4.4@ComponentScan:
用于类或接口上主要是指定扫描路径,spring会把指定路径下带有指定注解的类注册到IOC容器中。
本文详细介绍了SpringBoot的特性,包括内嵌Servlet容器、starter简化配置、自动配置、应用监控和无XML配置。步骤涵盖了创建Maven项目、配置pom.xml、YAML文件使用,以及@SpringBootApplication注解的作用和多环境配置。
571

被折叠的 条评论
为什么被折叠?



