Avr*_*gon 6 java spring spring-boot
我有一个字符串列表,我想在 beans.xml 中定义它。
<util:list id="myFractions" value-type="java.lang.String">
<value>#{ T(com.myapp.longname.verylong.WelcomeController).RED_FRACTION }</value>
<value>#{ T(com.myapp.longname.verylong.WelcomeController).BLUE_FRACTION }</value>
<value>#{ T(${my.prefix}).GREEN_FRACTION }</value>
</util:list>
Run Code Online (Sandbox Code Playgroud)
它工作正常,但每次我都需要编写完整的限定常量名称com.myapp.longname.verylong.WelcomeController。我只想写一次。我发现的一个解决方案是将其替换为类似的属性my.prefix,这样我就可以只写我的短前缀而不是真正的完整路径。但随后我需要用只需要一次的属性来污染全局“命名空间”。我想仅为该列表或至少仅为该 beans.xml 文件定义一个占位符。我已经尝试直接在 beans.xml 中定义一个属性并且PropertyPlaceholderConfigurer它有效,但是我所有的初始属性都不再可用。
那么如何避免com.myapp.longname.verylong.WelcomeController每次都在列表中作为前缀写入并且只定义一次呢?理想情况下是这样的
<util:list id="myFractions" value-type="java.lang.String">
<define-local-placeholder name="my.prefix" value="com.myapp.longname.verylong.WelcomeController" />
<value>#{ T(${my.prefix}).RED_FRACTION }</value>
<value>#{ T(${my.prefix}).BLUE_FRACTION }</value>
<value>#{ T(${my.prefix}).GREEN_FRACTION }</value>
</util:list>
Run Code Online (Sandbox Code Playgroud)
请尝试一下这个
<context:property-placeholder properties-ref="shorthandHelperConstants"/>
<util:properties id="shorthandHelperConstants">
<prop key="my.prefix">com.myapp.longname.verylong.WelcomeController</prop>
</util:properties>
<util:list id="myFractions" value-type="java.lang.String">
<value>#{ T(${shorthandHelperConstants['my.prefix']}).RED_FRACTION }</value>
<value>#{ T(${shorthandHelperConstants['my.prefix']}).BLUE_FRACTION }</value>
<value>#{ T(${shorthandHelperConstants['my.prefix']}).GREEN_FRACTION }</value>
</util:list>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
616 次 |
| 最近记录: |