[英]Xml - Inject result of method in a bean property
我正在使用Apache Camel,並且在blueprint.xml文件中有一個bean標記,如下所示:
<bean id="shiroPolicy" class="org.apache.camel.component.shiro.security.ShiroSecurityPolicy">
<argument value="shiro.ini"/>
<property name="permissionsList" >
<list>
.......
</list>
</property>
</bean>
PermissionsList屬性是此類的方法perm()的結果:
public class testshiro{
public List<Permission> perm()
{
List<Permission> permissionsList = new ArrayList<Permission>();
Permission permission = new WildcardPermission("zone");
permissionsList.add(permission);
return permissionsList;
}
....
我怎樣才能調用此方法並在bean標記的PermissionsList屬性中設置結果?
您應該能夠將testshiro
作為工廠實例化,然后將perm()
作為工廠方法實例化以創建列表。 然后將對列表的引用傳遞給您的Shiro策略:
<bean id="permissionsFactory" class="your.package.testshiro"/>
<bean id="permissions" factory-ref="permissionsFactory" factory-method="perm" />
<bean id="shiroPolicy" class="org.apache.camel.component.shiro.security.ShiroSecurityPolicy">
<argument value="shiro.ini"/>
<property name="permissionsList" ref="permissions" />
</bean>
本教程很好地概述了如何在Blueprint中使用工廠。
<bean id="permissionsFactory" class="com.ngt.shiropermission.testshiro"/>
<bean id="permissions" factory-ref="permissionsFactory" factory-method="perm" />
<bean id="shiroPolicy" class="org.apache.camel.component.shiro.security.ShiroSecurityPolicy">
<argument value="shiro.ini"/>
<property name="permissionsList" ref="permissions" />
</bean>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.