简单的内部常量,不应该外部化到属性:
object InternalConstant {
val CONSTANT_ONE: Byte = 21
val CONSTANT_TWO: Byte = 42
}
Run Code Online (Sandbox Code Playgroud)
像Java一样注入它们:
<bean id="daBean" class="my.package.DaClass">
<constructor-arg>
<util:constant static-field="my.package.InternalConstant.CONSTANT_TWO"/>
</constructor-arg>
</bean>
Run Code Online (Sandbox Code Playgroud)
得到一个 java.lang.NoSuchFieldException: CONSTANT_TWO
(包路径正确)
那是因为在幕后InternalConstant编译成一个类,静态CONSTANT_ONE()方法返回21,而不是字段.在Spring中使用SpEL可以调用静态方法:
<constructor-arg value="#{T(my.package.InternalConstant).CONSTANT_TWO()}"/>
Run Code Online (Sandbox Code Playgroud)
虽然没有测试过.
| 归档时间: |
|
| 查看次数: |
251 次 |
| 最近记录: |