在Controller类里面通过@Value将参数注入进来,最后的确成功了。因此基于此经验,我便在其他使用的类里面也采用这样的方式注入参数,但是发现去失效了,报错为NULL,说明参数并没有我们料想的被注入进来。

原因 这是为什么呢?为什么在Controller类就成功了?在其他类里面我尝试过@Service,@Component,@Configure,但是我没有成功,经过查询,原来,在使用这些参数生成Bean类的时候,我们注入的参数还没有生效,因此获取不到,而不是由于参数注入的问题,而在某些场景,spring可能做了优化,是的参数优先注入,再生成Bean。那么有没有好的方法可以解决这个问题呢? 方案 首先,我们的参数的直接注入是肯定不行了,那么我们就采用初始化类的方式,将配置信息集中初始化。

import lombok.extern.slf4j.Slf4j;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties; /**
* 为bean类提前注入属性
*/
@Slf4j
public class PropertyUtil { private static Properties props; static {
loadProps();
} synchronized static private void loadProps() {
log.info("start to load properties.......");
props = new Properties();
InputStream in = null;
try { in = PropertyUtil.class.getClassLoader().
getResourceAsStream("application.properties");
props.load(in);
log.info("");
} catch (FileNotFoundException e) {
log.error("properties not found!");
} catch (IOException e) {
log.error("IOException");
} finally {
try {
if (null != in) {
in.close();
}
} catch (IOException e) {
log.error("properties close Exception!");
}
}
// logger.info(props);
log.info("load properties over...........");
} public static String getProperty(String key) {
if (null == props) {
loadProps();
}
return props.getProperty(key);
}
}

使用方法:

 private static String reqIp = PropertyUtil.getProperty("reqIp");

最新文章

  1. 2013成都网络赛 J A Bit Fun(水题)
  2. curl命令行使用
  3. 51nod 循环数组最大子段和
  4. httpd.conf
  5. MySQL中删除重复数据的简单方法,mysql删除重复数据
  6. C语言标准库函数strcpy与strcmp的简单实现
  7. OO之策略模式
  8. Android Studio 使用笔记:Git 的配置和第一次提交到仓库
  9. IRP 与 派遣函数
  10. mac的svn之cornerstone简易教程
  11. H5 - 在线编辑制作
  12. 一步一步在Windows中使用MyCat负载均衡 上篇
  13. 第一章 oracle数据库基础
  14. RabbitMQ学习-1补充
  15. Jedis路由key的算法剥离
  16. Python使用plotly绘制数据图表的方法
  17. C# 创建精简版IIS
  18. go语言练习:接口
  19. 自己动手破解rar密码-ruby脚本实现
  20. 【C++】不要想当然使用resize

热门文章

  1. [Luogu] 子共七
  2. 【概率论】1-4:事件的的并集(Union of Events and Statical Swindles)
  3. postgresql 一些操作
  4. Linux之防火墙【CentOS 7】
  5. c++ 容器反转
  6. 重读APUE(6)-umask
  7. 【Java/MySql】使用JDBC访问MySql数据库的Maven工程
  8. Java同步数据结构之LinkedBlockingQueue
  9. SQL-W3School-高级:SQL DEFAULT 约束
  10. Flex 布局教程实例