Spring:如何用注解替换Constructor-arg?

我想用注释替换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?

谢谢。

回答:

我认为您所追求的是:

@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

以上是 Spring:如何用注解替换Constructor-arg? 的全部内容, 来源链接: utcz.com/qa/427972.html

回到顶部