第六章:【springboot】框架springboot原理、springboot父子工程与Swagger
SpringBoot
原理
配置优先级
SpringBoot
中支持三种格式的配置文件
application.properties
(优先级最高)application.yml
(推荐配置)application.yaml
(优先级最低)
SpringBoot
除了支持配置文件属性配置,还支持java系统属性和命令行参数的方式进行配置
SpringBoot
支持通过java
系统属性的方式进行配置,通过-D
进行配置,例如:-Dserver.port=8080
- 运行jar包时配置
java -jar xxx.jar --server.port=8080
Bean
管理
从IOC
容器中获取bean
对象
默认情况下,Spring
项目在启动时,会自动创建IOC
容器,并将Bean
对象放入容器中。可以通过如下方式获取bean
对象
- 根据
name
获取bean
对象Objet getBean(String name)
- 根据类型获取
bean
对象Object getBean(Class<?> requiredType)
- 根据
name
获取bean
(带类型转换):<T> T getBean(String name, Class<T> requiredType)
public class Test {//获取被ioc容器管理的bean对象//注入ioc容器对象@Autowiredprivate ApplicationContext applicationContext;@Testpublic void test01() {//默认获取出来是一个Object 类型,需要进行强制转换//根据bean的名称获取bean对象UserMapper userMapper1 = (UserMapper) applicationContext.getBean("userMapper");//根据bean的类型获取bean对象UserMapper userMapper2 = applicationContext.getBean(UserMapper.class);//根据bean的名称和类型获取bean对象UserMapper userMapper3 = applicationContext.getBean("userMapper", UserMapper.class);}
}
Bean
的作用域
- 从
IOC
容器中获取出来的bean
对象默认是单例的只有一个
Spring
支持五种作用域,后三种在web
环境才生效
作用域 | 说明 |
---|---|
singleton | 单例,默认值,一个IOC 容器中只有一个实例 |
prototype | 原型,每次获取都是新的实例 |
request | 每一次请求都会创建一个新的实例 |
session | 每一个会话都会创建一个新的实例 |
application | 全局唯一实例 |
@Scope("prototype")
@Lazy
@PostMaping("/depts")
public class User {