用@value注解的时候遇到过两次问题,下面说一下两次的解决思路
spring框架可以直接读取,前提是properties文件里有这些值

    jdbc_driver=com.mysql.jdbc.Driverjdbc_url=jdbc:mysql://localhost:3306/xxxjdbc_username=rootjdbc_password=root
  import org.springframework.stereotype.Service;@Service(value = "sqlService")public class SqlServiceImpl implements SqlService {@Value("${jdbc_driver}")private String jdbcDriver;@Value("${jdbc_url}")private String jdbcUrl;@Value("${jdbc_username}")private String jdbcUsername;@Value("${jdbc_password}")private String jdbcPassword;@Overridepublic void fun(){}}

第一次:是核心包没有引

<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version><scope>test</scope></dependency>

第二次:后来在另外一个工程里取不到值了,试了很多次,发现是在spring-mvc.xml中的如下代码中有错误,代码如下

    <!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 --><context:component-scan base-package="com.xxx.xxx" />

正确代码如下,扫描controller包下的所有类时,controller包的地址没有写完整。

<!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 -->
<context:component-scan base-package="com.xxx.xxx.web.controller" />

【出错原因】是【无法识别占位符,就是在加载过程中直接把${jdbc_driver}当做字符串处理了】

整理一下错误流程:

我的工程里有一个spring-application.xml和spring-mvc.xml,前者先执行,spring-application.xml有如下代码:

  <bean id="decryptedPropertyPlaceholderConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="order" value="1"/><property name="ignoreUnresolvablePlaceholders" value="true" /><property name="locations"><list><value>classpath:*.properties</value><value>classpath*:application.properties</value><value>classpath*:globalconst.properties</value></list></property></bean><!-- 自动扫描 --><context:component-scan base-package="com.xxx.xxx"><context:exclude-filter type="annotation"expression="org.springframework.stereotype.Controller" /><context:exclude-filter type="annotation"expression="org.springframework.web.bind.annotation.ControllerAdvice" /></context:component-scan>

里面配置了数据库配置文件application.properties,并且自动扫描工程包下的所有文件,包括controller层和service层(带value注解的方法是写在service层里),在这时候是能正确的解析@value注解并且取到properties的值的;后来执行spring-mvc.xml,由于扫描的路径填错成 base-package=”com.xxx.xxx” ,它又把service层的@value注解扫描了,由于这个文件没有配置数据库配置文件,导致取不到值,把@value注解中的占位符当作字符串处理。

@value读取不到数据库配置文件里的值的解决办法相关推荐

  1. STM32H7并行读取AD7606数据以及片内AD值不准解决办法

    一.硬件 先了解一下AD7606,16位,单电源,200k采样率,8路,除了贵没有其他缺点,数据相当的稳,一个5V供电,不用运放的情况下采集电压精度可以达到1mv,非常Nice 与单片机相连 单片机 ...

  2. mysql数据库死锁的产生原因及解决办法

    该文章为转载,如有侵权请及时联系 这篇文章主要介绍了mysql数据库锁的产生原因及解决办法,需要的朋友可以参考下 数据库和操作系统一样,是一个多用户使用的共享资源.当多个用户并发地存取数据 时,在数据 ...

  3. eclipse中用maven多模块管理,然后主项目无法调用其他被依赖项目里的方法,解决办法

    eclipse中用maven多模块管理,然后主项目无法调用其他被依赖项目里的方法,解决办法 参考文章: (1)eclipse中用maven多模块管理,然后主项目无法调用其他被依赖项目里的方法,解决办法 ...

  4. LYNC客户端不显示通讯组里的用户的解决办法。

    LYNC客户端不显示通讯组里的用户的解决办法 错误图如下: 解决办法:ISA代理服务器的问题,把代理服务器高级里加上lync服务器的名字就可以了. 转载于:https://blog.51cto.com ...

  5. [经验] 新版SkyIAR、Easy Image X在有些PE里不能运行的解决办法

    [经验] 新版SkyIAR.Easy Image X在有些PE里不能运行的解决办法 xxwl2008 发表于 2013-1-26 11:58:38 https://www.itsk.com/threa ...

  6. 使用MySQL Workbench导出数据库脚本以及出错时的解决办法

    使用MySQL Workbench导出数据库脚本以及出错时的解决办法 正常做法 打开workbench,选择左上角的菜单栏,选择Server->Data 之后出现如下界面 一般情况下,这样就导出 ...

  7. mysql 数据库表被锁住了_mysql数据库锁的产生原因及解决办法

    数据库和操作系统一样,是一个多用户使用的共享资源.当多个用户并发地存取数据 时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性 ...

  8. mysql数据库什么情况下会锁表_mysql数据库锁的产生原因及解决办法

    数据库和操作系统一样,是一个多用户使用的共享资源.当多个用户并发地存取数据 时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性 ...

  9. yum mysql 启动失败_Linux下MySQL数据库yum升级后无法启动解决办法 | 系统运维

    说明: 操作系统:CentOS 5.8 Web运行环境:Apache+MySQL+PHP(全部使用yum命令在线安装) Apache版本:2.2.3 MySQL版本:5.0.95 PHP版本:5.1. ...

最新文章

  1. 收藏! Linux 服务器必备的安全设置
  2. MySQL服务器参数介绍
  3. idea的plugins无法使用marketplace plugins are not loaded
  4. 【BZOJ1880】[Sdoi2009]Elaxia的路线 最短路+DP
  5. 管理员信息模块php,管理员模块功能代码
  6. 如何去除字符串中的 “\n“ ?80% 的同学错了!
  7. Apache2.4.29+Tomcat 8.5.29负载均衡群集最强解析
  8. Git 删除所有文件
  9. openstack horizon dashboard_OpenStack最新版本:Ussuri发布亮点
  10. 学计算机的学后感,计算机学习心得体会(通用10篇)
  11. Kali linux新手入门视频教程Kali linux安装
  12. cacti 文件服务器,免费的服务器和网络监控工具-CactiEZ
  13. RGB、HSL、Hex网页色彩码,看完这篇全懂了
  14. 用matlab s函数 阶梯,Matlab S函数使用介绍
  15. c语言两矩阵相乘算法,用c语言实现两个矩阵相乘怎么做?
  16. qq游戏ie服务器在哪个文件夹,IE的缓存文件夹在哪个文件夹?
  17. 第三方统计分析埋点工具对比,神策、Ptmind、GrowingIO、国双,还有谷歌分析,谁更好?...
  18. SDM660 开机xbl中配置I2C
  19. 计算机主机的cpu作用,cpu的作用是什么?cpu的主要功能详解
  20. 解决Android Studio 安装APK时device support,but apk only supports armeabi-v7 问题

热门文章

  1. 【软考-中级】系统集成项目管理工程师-【1信息化知识】
  2. There is no getter/setter for property named ‘XXX‘ in ‘class com.XXX‘
  3. 绿茶和枸杞不可同饮 zt
  4. Git生成公钥及查看公钥
  5. 案例 | 重新定义“一个人的小酒”,RIO如何微醺营销击中00后的心?
  6. 集创北方IPO被终止:曾拟募资60亿 小米华为vivo是股东
  7. 恐怖袭击新方式:用笔记本电脑炸飞机
  8. CAD中怎么绘制攒尖屋顶?CAD设计攒尖屋顶技巧
  9. Python networkx 根据节点坐标来画网络图
  10. 【报告分享】2020年短视频及电商直播趋势报告-飞瓜数据(附下载)