注入组件的方式:
自动装配流程: 1.按照类型,找到这个组件,名字无所谓 2.如果找到多个,再按照名称去找,变量名就是名字(新版) 3.找不到就报错,NoSucnBean。。
原理:Spring调用容器的getBean()
拿多个组件
拿多个,并且用组件名称作为Key
使用Qualifier精准使用名称
如果容器中这样的组件存在多个,则使用@Qualifier精确指定组件名
也可以只用@Primary来指定主组件,要是要用其他的,就需要搭配Qulaifier来精确指定
@Resource 和@Autowired的区别
构造器注入
@Autowired是注入组件,不是基本属性
@Value 属性赋值
1.在@value里面直接写,是直接赋值(用得少)
2.@Value("${}") 动态从配置文件中取出某一项的值
如果取不到,可以加:XXX,使用默认值
3.@Value("#{SpEL}"),表达式
因为UUID是静态方法获取,所以要加T()
截取:
要注意双引号会有协议(要不转义,要不用单引号)
@PropertySource //配置属性来源
获取资源
注册Bean
@Bean注解用于标记一个方法,告诉Spring容器该方法返回的对象需要被管理。通过在方法上添加@Bean注解,Spring会将该方法返回的对象注册为一个Bean,供其他组件通过依赖注入使用。
@Bean这个注解,我记得是在配置类中用的,比如在@Configuration类里定义方法,然后用@Bean注解标注这些方法。这样,Spring容器就会知道这些方法返回的对象需要被管理,也就是注册为Bean
@Configuration
public class AppConfig {
@Bean
public UserService userService() {
return new UserService();
}
}
多数据源使用 @Profile("环境标识")
若要使用环境标识,则需要
1:先定义环境标识
2:激活标识环境,明确告诉Spring当前处于什么环境
组件的生命周期
@Data是帮助该类生成get/set方法,还有tostring,hash等