title: springBoot
categories: 框架
SpringBoot四大核心
自动配置,起步依赖,Actuator,命令行界面
原理初探:pom.xml
·spring-boot-dependencies:核心依赖在父工程中!
·我们在写或者引入一些springboot的依赖时无需指定版本,由父依赖统一管理
启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
启动器就是springboot的启动场景;
比如spring-boot-start-web,它就会帮我们自动导入web环境所有的依赖
springboot会将所有的功能场景,都变成一个个的启动器
一把我们需要什么功能,就只需要找到对应的启动器start就可以了
主程序
- 首先可以看到springboot注解标志着这个类是一个springboot的应用
- 下面的main方法通过反射加载相关类的对象来启动方法
1.核心配置文件
- properties格式配置文件
springboot默认情况下设置了许多默认选项,例如访问端口默认为8080.并且不设置上下文根,如果我们需要,就需要在properties文件中手动设置,我们约定俗称,配置文件的命名必须是application
#用来设置tomcat访问的端口号
server.port=8081
#m内嵌的tomcat默认是没有上下文根的,如果需要我们需要手动配置
#必须以/开头
server.servlet.context-path=/springboot
- yml或者yaml格式配置文件
yml或者yaml配置文件只是格式不同,功能上和上述文件一样
格式要求:层级式展开,同时要求,key的冒号后面一定要有空格
server:
port: 8081
servlet:
context-path: /yml
- 如果两种配置文件同时存在,那么框架就会默认使用properties配置文件
- 在我们的项目从开发到落地过程中,可能经过开发,测试,准生产,生产等环境,每个阶段的端口号和用户名,密码可能都不一样,所以一个配置文件可能无法满足生产所需,所以通常我们创建多个配置文件,令application配置文件为主配置文件
如图所示,多配置文件前缀必须以application开头,如果我们想使用其中一个配置文件只需在主配置文件中声明所需要使用的配置文件
//例如我们想使用dev开发环境下的配置文件
spring.profiles.active=dev
同理我们yml同样也可以实现类似的多配置文件,在此不在重复展示
- 配置文件中的自定义属性
例如往日的jdbc.properties配置文件,我们在其中配置了url等自定义的属性,在springboot的核心配置文件中,我们也可以自定义属性,在业务层中利用$调用
1.在配置文件中以键值对存储
school.name=ZZU
student.grade=Second
2.在业务方法中利用value注解调用
@Value("${school.name}")
private String schoolName;
@Value("${student.grade}")
private String studentGrade;
- 使用映射方式,将properties中的属性值注入到bean的实体类中
首先要确定一点,如果想使用映射方式,那么我们对于properties中的key的格式是有要求的,必须含有前缀,例如:student.name,student.school,其次在实体类方法中必须要有get,set方法
@Component//将此类交给spring容器管理
@ConfigurationProperties(prefix = "student")//指名属性对应的前缀
public class Student {
private String name;
private String grade;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
}
这样我们就实现了将配置文件中的属性注入到我们的实体类中
我们在使用configurationProperties注解时,可能会上述错误,解决:在pom文件中加入下面的依赖
<!--解决使用@ConfigurationProperties注解出现警告问题-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
- 我们在开发时尽量避免在配置文件中使用中文属性,如果使用了中文属性,那么我们需要将其转化为scaii码
2.springboo