恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Spring MVC 项目中使用 @Value 注解读取 Properties 配置的完整指南

  • 首页
  • 资讯中心
  • /
  • Spring MVC 项目中使用 @Value 注解读取 Properties 配置的完整指南

相关资讯

智能眼镜隐私争议与技术评估:从AI识别到数据安全 2026/8/14 1:19:24
工程仿真软件安装与许可配置全流程指南:从环境检查到稳定运行 2026/8/14 1:19:24
67845 2026/8/14 1:14:23

最新资讯

整理开发人员容易忽略的问题:个人微信API开发有哪些常见误区?
macOS Big Sur降级Catalina实战指南:原理、风险与三种安全方案详解
Skillsbase:构建个人技能仓库,告别知识碎片化
计算机毕业设计之基于Spark的哔哩哔哩数据分析及推荐系统
面了30场Java开发,我发现面试官翻来覆去就问这20题
企业内部网站建设不仅是展示窗口更是数字化的核心引擎

今日推荐

青岛煜鹏网站建设公司如何帮助传统企业实现数字化转型破局与增长路径
内蒙古生产建设兵团四师三十四团知青网站:承载岁月记忆与青春荣耀的精神家园
梅州市住房与城乡建设局官网:获取权威建筑信息、政策解读与民生服务的最佳平台入口

本周热门

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁
如何快速生成中国车牌图片:Python开源工具完整指南
当 LLM 遇见大文档:主流开源项目如何处理上下文超限

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Spring MVC 项目中使用 @Value 注解读取 Properties 配置的完整指南

发布时间:2026/8/14 1:19:24
Spring MVC 项目中使用 @Value 注解读取 Properties 配置的完整指南 问题背景最近在 Spring MVC 项目中集成邮件发送功能时遇到了通过Value注解从*.properties文件读取配置值的问题。在单元测试junit中可以正常获取但在业务代码中却获取到null。解决方案使用 Value 注解读取配置Spring 除了传统的 XML 配置方式外还可以通过Value注解来获取*.properties文件中的配置值。1. 配置实体类Value注解需要 Spring 的注解扫描支持因此需要在 Spring 配置中扫描实体类所在的包并在实体类上添加Component注解。Component public class MailBean { // 实体类添加 Component让 Spring 扫描并管理默认单例模式 // 功能从 data.properties 资源文件中读取邮件配置 Value(#{configProperties[emailhost]}) private String emailHost; Value(#{configProperties[emailform]}) private String emailFrom; Value(#{configProperties[emailname]}) private String emailUsername; Value(#{configProperties[emailpassword]}) private String emailPassword; // Getter 方法 public String getEmailHost() { return emailHost; } public String getEmailFrom() { return emailFrom; } public String getEmailUsername() { return emailUsername; } public String getEmailPassword() { return emailPassword; } }2. Spring 配置文件在applicationContext.xml中配置组件扫描和属性文件加载!-- 自动扫描 com.myweb 包将带有注解的类纳入 Spring 容器管理 -- context:component-scan base-packagecom.myweb/context:component-scan !-- 引入配置文件 -- bean idconfigProperties classorg.springframework.beans.factory.config.PropertiesFactoryBean property namelocations list valueclasspath:data.properties/value valueclasspath:application.properties/value /list /property /bean bean idpropertyConfigurer classorg.springframework.beans.factory.config.PreferencesPlaceholderConfigurer property nameproperties refconfigProperties / /bean3. 属性文件配置data.properties文件内容emailhost邮箱的网关 emailname你的用户名 emailpassword你的密码 emailform发件邮箱 // 具体值需根据自身情况配置问题现象与排查单元测试正常通过 JUnit 测试可以正常获取配置值Test public void test() { ApplicationContext appContext new ClassPathXmlApplicationContext(applicationContext.xml); MailBean connInfo appContext.getBean(MailBean.class); System.out.println(connInfo.getEmailHost()); System.out.println(connInfo.getEmailFrom()); System.out.println(connInfo.getEmailUsername()); // 可以正常获取 }业务代码中获取 null但在具体业务代码中使用时获取到的却是null。问题原因与解决方案问题原因在业务代码中仍然使用new MailBean()来创建对象。但MailBean已经通过Component注解加入了 Spring 容器的管理并且默认是单例模式。直接new创建的对象不会被 Spring 管理因此Value注解不会生效。正确做法在业务类中通过依赖注入的方式获取MailBean实例Resource private MailBean mailBean;同时业务类本身也需要交给 Spring 管理添加相应的注解如Controller、Service、Repository或Component。在 JUnit 测试中通过appContext.getBean(MailBean.class)获取的是 Spring 容器管理的 Bean所以能正常取值。在业务代码中必须通过Resource或Autowired注入否则无法获取到正确的 Bean。常见警告及处理在 Spring 配置文件中添加上述配置时可能会遇到以下警告警告Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKey ...该警告是由于写入注册表时权限不足引起的。解决方法打开命令窗口输入regedit打开注册表管理器导航到HKEY_LOCAL_MACHINE\Software\JavaSoft\在JavaSoft下创建Prefs项即可总结通过Value注解读取*.properties配置时需要注意实体类需要添加Component等 Spring 管理注解Spring 配置中需要扫描实体类所在的包在业务代码中必须通过依赖注入获取 Bean不能直接new创建遇到注册表权限警告时手动创建相应的注册表项即可解决

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号