《Spring 高手系列》(@Value)笔记

参考链接

官方文档

这些问题你都知道吗?

  1. @Value的用法
  2. @Value数据来源
  3. @Value动态刷新的问题

@Value的用法

源码

@Target({
   ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Value {
   
	String value();
}

修饰范围:字段,方法,方法参数,注解。

案例1 解析默认配置文件内容

@Component
public class DbConfig {
   

    @Value("${jdbc.url}")
    private String url;

    @Value("${jdbc.username}")
    private String username;

    @Value("${jdbc.password}")
    private String password;
    
	//省略

如果application.yml和properties同时存在会解析properties。

案例2 指定配置文件解析

valued1.properties

jdbc.url=v1Url
jdbc.username=v1Name
jdbc.password=v1password
@Component
@PropertySource("classpath:valued1.properties")
public class DbConfig {
   

    @Value("${jdbc.url}")
    private String url;

    @Value("${jdbc.username}")
    private String username;

    @Value("${jdbc.password}")
    private String password;

	//省略
}

PropertySource

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Repeatable(PropertySources.class)
public @interface PropertySource {
   

	String name() default "";

	String[] value();

	boolean ignoreResourceNotFound() default false;

	String encoding() default "";
	
	Class<? extends PropertySourceFactory> factory() default PropertySourceFactory.class;
}

修饰在类型上,有@Repeatable重复使用注解。
既然允许重复,我们修改新增一个配置文件 valued2.properties

jdbc.url=v2
jdbc.username=v2name
jdbc.password=v3name

在DbConfig上面,并且修改顺序查看输出验证以哪一个配置文件为准。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值