1、SpringBoot
1.1 和Spring对比
1.2 SpringBoot自动装配
springboot的自动装配实际上就是为了从spring.factories文件中获取到对应的需要进行自动装配的类,并生成相应的Bean对象,然后将它们交给spring容器来帮我们进行管理
原理
@SpringBootApplication
这个注解是springboot启动类上的一个注解,是一个组合注解,也就是由其他注解组合起来,它的主要作用就是标记说明这个类是springboot的主配置类,springboot应该运行这个类里面的main()方法来启动程序
主要有三个注解组成
@SpringBootConfiguration:表明是一个配置类
@EnableAutoConfiguration:开启自动化配置的核心注解,通过@Import注解导入对应的配置选择器。内部就是读取了该项目和该项目引用的Jar包的classpath路径下META-INF/spirng.factories文件中所配置的类的全类名。在这些配置类中所定义的Bean会根据条件注解所指定的条件来决定是否需要将其导入到Spring容器中。
@ComponentScan:扫描当前包和子包的bean
1.3 读取配置数据
①:使用@Value注解
使用 @Value("表达式")
注解可以从配合文件中读取数据,注解中用于读取属性名引用方式是:${一级属性名.二级属性名……}
②:自定义对象
SpringBoot 还提供了将配置文件中的数据封装到我们自定义的实体类对象中的方式。具体操作如下:
- 将实体类 bean 的创建交给 Spring 管理。
在类上添加@Component
注解 - 使用
@ConfigurationProperties
注解表示加载配置文件
在该注解中也可以使用 prefix 属性指定只加载指定前缀的数据 - 在 BookController 中进行注入
例如:
@Component
@ConfigurationProperties(prefix = "enterprise")
public class Enterprise {
private String name;
private int age;
private String tel;
private String[] subject;
public String getName() {
return name;
}
2、SpringCloud
2.1 SpringCloud的5大组件
SpringCloudAlibaba
- 注册中心/配置中心:Nacos
- 负载均衡:Ribbon
- 服务调用:Feign
- 服务保护:sentinel
- 服务网关:Gateway