SpringBoot 组件注入方式
# 组件注入方式
| 实验 | 内容 | 目标 |
|---|---|---|
| 实验1 | @Autowired | 理解自动装配 |
| 实验2 | @Qualifier | 理解类型/具名注入 |
| 实验3 | @Primary | 理解多组件注入方式 |
| 实验4 | @Resource | 扩展其他非Spring注解支持 |
| 实验5 | setter方法注入 | 理解setter方法注入 |
| 实验6 | 构造器注入 | 理解构造器注入 |
| 实验7 | xxxAware | 理解感知接口 |
| 实验8 | @Value | 理解配置文件取值 |
| 实验9 | SpEL | 理解Spring表达式基本使用 |
| 实验10 | @PropertySource | 理解 properties文件注入 |
| 实验11 | @Profile | 理解多环境 |
- @Autowired和@Resource区别
- @Autowired 是Spring生态的,必须引入Spring包
- @Resource 是jdk包下的,具有更强的通用性 但是现在是Spring一家独大,所以都是用@Autowired
@Value 使用$取值 @Value("${user.name}") 动态从配置文件中取出某一个参数的值
SpEL Spring Expression Language;Spring 表达式语言,使用#
- @Value("#{10*20}") 直接计算
- @Value("#{T(java.util.UUID).randomUUID().toString()}") 静态方法调用前面加T
- @Value("#{'Hello World!".substring(0, 5)}") 其他方法都可以直接写
@Value("#{10*20}")
private Integer age
@Value("#{T(java.util.UUID).randomUUID().toString()}")
private String uuid;
@Value("#{'Hello World!".substring(0, 5)}")
private String hello;
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- @PropertySource 将属性文件中的属性导入到类属性中
- classpath:user.properties;从自己的项目类路径下找
- classpath*:Log4j-charsets.properties;从所有包的类路径下找
@PropertySource('classpath:user.properties")
@Data
public class user{
@Value("${user.name:zhangsan}") //默认值为张三
private String name;
@Value("${user.age:20}")
private String age;
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Last Updated: 2025/10/22, 08:25:28