Xml - 在 bean 中注入方法的结果 属性
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 属性 是此 class:
方法 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>
这篇 tutorial 很好地概述了如何在 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>
我正在使用 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 属性 是此 class:
方法 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>
这篇 tutorial 很好地概述了如何在 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>