Spring的@Value获取不到值的问题
来源:互联网 发布:淘宝怎么进行实名认证 编辑:程序博客网 时间:2024/05/01 01:02
一、问题背景
这两天做东西的时候发现一个问题,在SpringMVC中使用@Value的时候,无法获取@Value对应的值。在网上查阅了各种资料之后,总结一下。
二、@Value注解的作用。
为了减小耦合度,通常,将一些固定的常量放在配置文件***.properties中。
properties内容定义形式:名称=值
SAY_COUNT=10TITLE_COUNT=10MESSAGE_COUNT=10BACK_COUNT=10
当需要这些常量的时候,通过加载properties文件,在需要的位置使用这些常量,当需要修改这些常量值的时候,只要在配置文件中修改就可以了。
在没有使用spring之前,想使用配置文件当中的数据必须得自己手工写代码加载配置文件。但是在使用spring的时候,这种操作可以通过在spring中添加一个配置来完成。
<context:property-placeholder location="classpath:resource/resource.properties"/>在需要使用的地方,通过使用@Value注解,就可以自动完成注入。
@Value("${INDEX_TITLE}")private Integer INDEX_TITLE;
三、获取不到值的情况。
1)当SpringMVC与Spring整合使用的时候,在Controller中无法获取@Value对应的值。(刚开始我就是这种情况,,,,)
产生原因: 只在applicationContext中添加了扫描,没有在SpringMVC对应的配置文件中扫描。
applicationContext加载的是父容器,,父容器在项目启动的时候就被加载了。SpringMVC对应的配置文件加载的是子容器,子容器可以访问父容器的对象,但是不能访问加载的配置文件。所以,如果想在SpringMVC中使用加载的配置文件,需要在SpringMVC对应的配置文件中添加相应的配置即可。
2)在service或者dao层无法获取@Value的数值。
可能情况:有多个applicationContext.xml文件,里面有多个context:property-placeholder,在web容器启动的时候同时加载了这些配置文件,这时候只会有一个配置文件中的context:property-placeholder会被加载,其他的不会被加载。
那么,当需要加载多个properties的时候,如何解决?可以用下面的方法<context:property-placeholder location="classpath:resource/*.properties"/>这样,将所有需要加载的properties放在一个目录之下,通过*.properties就可以加载所有的properties文件。
ps:渣渣一枚,如有不对请指正。
- Spring的@Value获取不到值的问题
- spring的value获取不到值
- Spring boot @Value的值取不到
- Spring @Value注入属性获取不到值
- @Value注解获取不到pom配置的值
- spring结合disconf时@Value注解获取不到值
- ajax获取不到Ueditor值的问题
- 关于spring value注解取不到值问题。
- 【初识Spring MVC】问题(1)jsp界面获取不到controller传过来的值
- springboot Configuration 获取不到@value配置问题
- 关于VS05里checkboxlist用JS获取不到value值的解决方法
- 关于VS05里checkboxlist用JS获取不到value值的解决方法[转]
- [转载]关于VS05里checkboxlist用JS获取不到value值的解决方法
- FF下innerHTML获取不到input标签中value的值解决办法
- controller中取不到@Value配置的值——spring父子容器
- Spring @value 遇到的问题
- Spring之@Value 注解获取properties值(Spring 3的@value简化配置文件的读取)
- Ext.Net GroupCheckBox获取不到值的问题
- 实验6:图的实验1
- springmvc自定义参数绑定实现日期参数绑定
- sql(join on 和where的执行顺序)
- cenos7操作-未完待续
- CentOS下通过yum安装svn及配置
- Spring的@Value获取不到值的问题
- RecyclerView 滚动到指定position,并置顶
- H(n) UVA
- 玫瑰花
- 我的电路实践
- ELK之安装与部署
- 找出数组中重复的数字
- 4.1.2Groovy理解闭包
- jdk环境配置