前言
写程序要遵守基本法 哈哈哈,逗逼结束进入正题!
今天在写程序的时候犯了一个低级错误.具体状况如下:
我需要从属性文件中加载配置,然后根据配置文件构造出多个数据源.在需要该数据源的时候直接获取数据源.
这就需要在配置对象创建好之后就完成数据源的创建工作.
貌似这个创建工作只能在构造函数内进行啊.
于是属性文件通过@Configuration去自动加载,然后注入到数据源创建类,在创建类的初始化方法中,读取属性文件进行数据源构造,
运行,空指针异常!
然后,不对啊为啥会这样呢?
是啊类都没创建完成呢,属性往哪里注入呢?
于是找了一圈 发现 @PostConstruct注解和 构造函数注入两种方式.
@PostConstruct需要定义一个初始化函数.并且是在Servlet 初始化时执行的.
而构造函数注入就感觉合理很多了.只需在构造函数上添加要注释属性作为参数,并增加@Autowired注解即可感觉更为优雅
参考文章:
https://www.oschina.net/question/1437736_2148918?sort=time
https://www.cnblogs.com/acm-bingzi/p/springAutowired.html