2

私のXmlファイル:

  <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="filterBySlic" class="ca.ups.tundra.msg.FilterMessagesBySlic">
        <property name="slicList">
            <list><value>4196</value><value>1101</value><value>2795</value></list>
        </property>
        <property name="messageList">
            <list><value>7762</value><value>7765</value><value>7766</value><value>7767</value><value>7768</value></list>
        </property>
        <property name="serviceLevelList">
            <list><value>E1</value><value>E3</value><value>E4</value><value>29</value></list>
        </property>
        <property name="serviceTypeList">
            <list><value>029</value><value>096</value></list>
        </property>
    </bean>

</beans>

これは私が私のクラスで使用しているものです:

ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"spring-pred-filter.xml"});

FilterMessagesBySlic filterConfig = (FilterMessagesBySlic)context.getBean("filterBySlic");

値のリストにアクセスするための私の条件。

filterConfig.getSiteList().contains(msgSlic)

これは正常に機能しています。代わりに@Autowired、これらの値のリストにアクセスするために使用する必要があります。なにか提案を

4

1 に答える 1

1

リストを匿名の内部 Bean から通常の Bean に変更し、次のように他の Bean に注入できます。

xml 構成:

<util:list id="slicList" value-type="java.lang.String">
    <value>4196</value>
    <value>1101</value>
    <value>2795</value>
</util:list>

Bean に slicList を注入する:

public class Foo {
    @Resource(name = "slicList")
    List<String> messageList;
}

これはもちろん、のインスタンスがFooスプリングによって管理されることを意味します。

それはあなたが探しているものですか?

于 2012-12-05T14:45:53.857 に答える