cde*_*egu 5 spring static code-injection
我有一个使用静态块来初始化静态Hashtable的类.这是通过读取属性文件,解析文件的内容,然后将适当的值设置到Hashtable中来完成的.
但是,我不想指定文件的位置,而是使用Spring注入位置,基本上是为了消除类中的任何硬编码值.我确实在其他地方看到它实际上可以注入静态变量,但是它将涉及使用非静态setter.
所以我的问题是 - 在执行静态块之前是否会调用setter,或者在Spring调用setter之前是否先执行静态块(这会在我的代码中导致异常)?
谢谢!
在任何代码被授予对类的访问权限之前,静态初始化程序由类加载器作为加载类的一部分执行。由于 Spring 必须实例化该类(这肯定需要加载该类),然后才能在该实例上调用 setter,因此静态初始化块已经运行。
| 归档时间: |
|
| 查看次数: |
1299 次 |
| 最近记录: |