Spring - @Value 赋值的几种方式

一、从配置文件获取值

  •     1、获取配置值

     获取配置值,配置不存在时抛异常

@Value("${jdbc.name}")
private String name
  •     2、获取配置值,配置不存在时使用指定的默认值 

    获取配置值,不存在时赋值为空串

@Value("${jdbc.name:}")
private String name

    获取配置值,不存在时赋值为指定字符串;字符串无需加引号包裹

@Value("${jdbc.name:root}")
private String name

    获取配置值,不存在时赋值为空null;null需要使用#{}包裹

@Value("${jdbc.name:#{null}}") 
private String name

二、通过SpEL表达式赋值

    赋值为指定数字

@Value("#{10}")  
private int number; 

    赋值为指定字符串;字符串需要加引号包裹

@Value("#{'Spring Demo'}") 
private String title;

    赋值为指定对象的属性的值

@Value("#{jdbcConfig.url}")
private String jdbcUrl; 

    赋值为指定对象的属性的值,并指定为空时的默认值

@Value("#{jdbcConfig.name ?: 'root'}")
private String name;

三、其他用法

    指定字符串值

@Value("Static Message!")
private String msg;

    注入本地资源

@Value("classpath:comm/about.txt")
private Resource locSrc;

    注入远程资源

@Value("https://www.abc.com/about.txt")
private Resource retSrc;

    注入系统属性

@Value("#{systemProperties['os.name']}")
 private String sysOsName

四、附

    SpEL为注解属性赋值

@Document(indexName = "#{elasticConfig.indexName}", type = "_doc")

Spring中使用注解方式对属性进行动态赋值,主要使用的注解有以下几种: 1. `@Value` 注解 `@Value` 注解可以用来将配置文件中的属性值注入到类的属性中。注解方式的格式为:`@Value("${属性名}")`。 例如,定义一个属性 `db.url` 并在配置文件中进行配置: ``` db.url=jdbc:mysql://localhost:3306/test ``` 在类中使用 `@Value` 注解将该属性值注入到类的属性中: ``` @Component public class MyComponent { @Value("${db.url}") private String dbUrl; } ``` 2. `@ConfigurationProperties` 注解 `@ConfigurationProperties` 注解可以将配置文件中的属性值注入到类的属性中,并且支持批量注入。使用该注解需要在类上加上 `@Component` 注解。 例如,在配置文件中定义了一个属性: ``` myconfig.name=John myconfig.age=20 ``` 在类中使用 `@ConfigurationProperties` 注解将该属性值注入到类的属性中: ``` @Component @ConfigurationProperties(prefix="myconfig") public class MyConfig { private String name; private int age; // getter and setter methods } ``` 3. `@PropertySource` 注解 `@PropertySource` 注解可以用来加载指定的配置文件。使用该注解需要在类上加上 `@Configuration` 注解。 例如,定义一个配置文件 `app.properties`,并在类中使用 `@PropertySource` 注解加载该配置文件: ``` @Configuration @PropertySource("classpath:app.properties") public class AppConfig { // ... } ``` 然后在类中使用 `@Value` 注解将配置文件中的属性值注入到类的属性中。 ``` @Component public class MyComponent { @Value("${db.url}") private String dbUrl; } ``` 以上就是Spring注解属性动态赋值的三种方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值