簡體   English   中英

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屬性是此類的方法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標記的P​​ermissionsList屬性中設置結果?

您應該能夠將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM