Spring 注释 @Value 如何读取properties文件中的配置内容

1:@Value注解的作用

该注解的作用是将我们配置文件的属性读取出来,有两种方式

@Value(“${}”)@Value(“#{}”)

${}     #{}   

2:这两种方式的区别

第一种方式@Value("${}")

我们的项目是springboot搭建的一个,配置文件是application.properties。

其中我们使用了多环境配置的方式,可以查看我的另外一个博客,里面有我当时的步骤。

其中:application.properties的内容如下:

server.port=8080
swagger.host=admin.***.net

我们要读取该文件内的swagger.host属性。

@Value("${swagger.host}")
private String host;

这样就可以使用这个host属性了。

第二种方式@Value("#{}")

我们读取server.port属性:

@Value("#{server.port}")

private String port;

这种是不行的,启动项目会报错:

org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field ‘server’ cannot be found on object of type ‘org.springframework.beans.factory.config.BeanExpressionContext’ - maybe not public?

 

所以:这里就要说一下这两种读取方式的区别:

第一个:${} 注入的是外部配置文件对应的property,

第二个:#{} 则是SpEL表达式对应的内容。

注意二者的不同,#{}里面那个obj代表对象。

 

所以如果要用第二种#{},就要建立对应的对象,然后从对象里面获取属性。

例子:

修改controller,userBean为UserBean实体类在容器注册。修改后如下图: 

 

3:注意事项

将配置文件交给spring加载,最好不要交给springmvc加载,避免出现错误。

因为web.xml配置时spring的监听先启动,springMVC的Dispatcherservlet接收到请求时才初始化springMVC的配置文件。

如果是springBoot项目,就不牵扯这些,直接放到application.properties文件中。

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值