发布时间:2023-05-08 13:30
1.自动装配原理:重要
自动配置:
pom.xml
spring-boot-dependencies: 核心依赖在父工程中。
我们在写或者引入一些SpringBoot依赖的时候,不需要指定版本,就因为有这些版本仓库
启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
启动器:说白了就是Springboot的启动场景
比如说spring-boot-starter-web ,它就会帮助我们自动导入web环境所有的依赖
SpringBoot会将所有的功能场景,都变成一个个的启动器
我们要使用什么功能,就只需要找到对应的启动器。starter
@SpringBootConfiguration: springboot的配置
@Configuration: spring 配置类
@Componet: 说明这也是一个spring的组件
@EnableAutoConfiguration :自动配置
@AutoConfigurationPackage: 自动配置包
@Import(AutoConfigurationPackages.Register.class) 自动配置“包注册”
@Import(AutoConfigurationImportSelector.Register.class) 导入选择器
List configurations = getCandidateConfiguration(annotationMetadata, attributes);
SpringApplication
这个类主要做以下事情
1)推断应用的类型是普通的项目还是web项目
2)查找并加载所有可用初始器,设置到initializers属性中
3)找出所有的应用程序监听器,设置到listeners属性中
4)推断并设置main方法的定义类,找到运行的主类
SpringBoot的理解:
自动装配
run(); 全面接管SpringMVC的配置
SpringBoo配置文件到底配置哪些东西?
官方配置太多了
SpringBoot使用一个全局的配置文件,配置文件名称都是固定的
1)application.properties
语法结构: key=value
2)application.yml
语法结构:key: 空格 value
配置文件的作用: 修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了。
server:
port:8080
yaml可以直接给实体类赋值
ConfigurationProperties作用:
将配置文件中哦配置的每一个属性的值,映射到这个组件中;
告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定
参数 prefix=“persion”:将配置文件中的person下面的所有属性一一对应
只有这个组件是容器中的组件,才能使用容器提供的@ConfigurationProperties功能
SpringBoot的多环境配置,可以选择激活那一个配置文件
自动装配的原理
1)SpringBoot启动会加载大量的自动配置类
2)我们看我们需要的功能有没有在SpringBoot默认写好的自动配置类中
3)我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件存在其中,我们就不需要再手动配置了)
4)给容器中自动配置类添加组件的时候,会从properties类中获取某些属性,我们只需要在配置文件中指定这些属性的值即可。
xxxAutoConfiguration: 自动配置类:给容器中添加组件
xxxProperties: 封装配置文件中相关属性
可以通过 debug:true 来调试是否生效
SpringBoot Web开发
jar: webapp
自动装配
1)创建应用,选择模块
2)
模板引擎
结论: 只要需要使用thymeleaf,只需要导入对应的依赖就可以了。我们将html放在我们的templates即可。
public static final String DEFAULT_PREFIX=“classpath:/templates/”;
public static final String DEFAULT_SUFFIX=“.html”;
在SpringBoot中,有非常多的 xxxx Configuration帮助我们进行扩展配置,只要看见了这个东西,我们就要注意了。
POST、DELETE、PUT、GET的含义及区别
POST、DELETE、PUT、GET就对应着数据库中的增、删、改、查
使用标准
POST /uri 创建
DELETE /uri/xxx 删除
PUT /uri/xxx 更新或创建
GET /uri/xxx 查询
GET请求,用于向服务器发生查询数据的请求,只是查询,不会增加、修改数据,不会影响服务器上资源的内容。无论进行多少次执行后的结果都是一样的,具有幂等性。
PUT请求,是用于向服务器发送数据,从而改变数据,修改数据内容。但是不会增加数据的种类。无论进行多少次操作,其结果也都一样,具有幂等性。
POST请求,与PUT请求类似。都是向服务端发送数据,但是改请求会增加数据的种类,创建新的内容,不具有幂等性。
DELETE请求,用来删除某一资源。
PUT与POST的区别?
PUT和POST都是向服务器发送数据
但是POST主要是在一个集合资源之上(url),PUT主要作用在一个具体的资源之上(url/xxx)