Spring整合注解随笔2

74 阅读2分钟

注入组件的方式:

自动装配流程: 1.按照类型,找到这个组件,名字无所谓 2.如果找到多个,再按照名称去找,变量名就是名字(新版) 3.找不到就报错,NoSucnBean。。

原理:Spring调用容器的getBean()

拿多个组件

image.png

拿多个,并且用组件名称作为Key

image.png

image.png

image.png

使用Qualifier精准使用名称

如果容器中这样的组件存在多个,则使用@Qualifier精确指定组件名

也可以只用@Primary来指定主组件,要是要用其他的,就需要搭配Qulaifier来精确指定

image.png

@Resource 和@Autowired的区别

image.png

构造器注入

image.png

@Autowired是注入组件,不是基本属性

@Value 属性赋值

image.png

1.在@value里面直接写,是直接赋值(用得少)

2.@Value("${}") 动态从配置文件中取出某一项的值

如果取不到,可以加:XXX,使用默认值

image.png

3.@Value("#{SpEL}"),表达式

image.png

因为UUID是静态方法获取,所以要加T()

image.png

截取:

要注意双引号会有协议(要不转义,要不用单引号)

image.png

@PropertySource //配置属性来源

image.png

image.png

获取资源

image.png

注册Bean

@Bean注解用于标记一个方法,告诉Spring容器该方法返回的对象需要被管理。通过在方法上添加@Bean注解,Spring会将该方法返回的对象注册为一个Bean,供其他组件通过依赖注入使用。

@Bean这个注解,我记得是在配置类中用的,比如在@Configuration类里定义方法,然后用@Bean注解标注这些方法。这样,Spring容器就会知道这些方法返回的对象需要被管理,也就是注册为Bean

@Configuration
public class AppConfig {
    
    @Bean
    public UserService userService() {
        return new UserService();
    }
}

多数据源使用 @Profile("环境标识")

image.png

若要使用环境标识,则需要

1:先定义环境标识

2:激活标识环境,明确告诉Spring当前处于什么环境

image.png

image.png

image.png

组件的生命周期

image.png

@Data是帮助该类生成get/set方法,还有tostring,hash等

image.png