13

重複の可能性:
<constructor-arg> を Spring Annotation に置き換えます

XML applicationContext 構成を注釈に置き換えたいと思います。

単純な Bean を固定されたコンストラクター引数に置き換える方法は?

例:

<bean id="myBean" class="test.MyBean">
    <constructor-arg index="0" value="$MYDIR/myfile.xml"/>
    <constructor-arg index="1" value="$MYDIR/myfile.xsd"/>
</bean>

@Value の説明を読んでいますが、固定値を渡す方法がよくわかりません...

Web アプリケーションのデプロイ時にこの Bean をロードすることはできますか?

ありがとうございました。

4

1 に答える 1

17

私はあなたが求めているのはこれだと思います:

@Component
public class MyBean {
    private String xmlFile;
    private String xsdFile;

    @Autowired
    public MyBean(@Value("$MYDIR/myfile.xml") final String xmlFile,
            @Value("$MYDIR/myfile.xsd") final String xsdFile) {
        this.xmlFile = xmlFile;
        this.xsdFile = xsdFile;
    }

    //methods
}

また、これらのファイルをシステムプロパティを介して構成できるようにすることもできます。アノテーションを使用して、、および構文@Valueを使用してシステムプロパティを読み取ることができます。PropertyPlaceholderConfigurer${}

これを行うには、アノテーションでさまざまなString値を使用できます。@Value

@Value("${my.xml.file.property}")
@Value("${my.xsd.file.property}")

ただし、システムプロパティには次のプロパティも必要です。

my.xml.file.property=$MYDIR/myfile.xml
my.xsd.file.property=$MYDIR/myfile.xsd
于 2012-12-05T14:20:41.633 に答える