当前位置: 首页 > 面试题库 >

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

任昊阳
2023-03-14
问题内容

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


 类似资料:
  • 我知道如何单独使用自动元件扫描和构造器注入。http://www.mkyong.com/spring/spring-auto-scanning-components/http://www.dzone.com/tutorials/java/spring/spring-bean-constructor-injection-1.html 是否可以将自动组件扫描与构造函数注入结合使用?使用自动组件扫描时,

  • 问题内容: 我正尝试升级我的spring mvc项目,以利用新的注释并摆脱我的xml。以前,我通过以下行将静态资源加载到我的计算机中: 现在,我在没有任何xml文件的情况下利用该类和批注来启动我的服务,但是似乎无法弄清楚如何加载我的资源。 是否有注释或新配置可将这些资源拉回而无需使用xml? 问题答案: 对于spring3和4: 一种方法是让你的配置类extension ,然后像这样重写以下方法:

  • 本文向大家介绍Spring HttpMessageConverter的作用及替换解析,包括了Spring HttpMessageConverter的作用及替换解析的使用技巧和注意事项,需要的朋友参考一下 相信使用过Spring的开发人员都用过@RequestBody、@ResponseBody注解,可以直接将输入解析成Json、将输出解析成Json,但HTTP 请求和响应是基于文本的,意味着浏览器

  • 问题内容: 我在测试中使用Wiremock,并具有以下代码行: 我想切换到Junit5。因此,我添加了下一个依赖项(使用gradle): 但是当我尝试导入@Rule注释时没有任何建议。我是否需要添加另一个junit依赖模块?还是Junit5不支持规则?如果没有,我该如何替换@Rule批注以使测试再次起作用?谢谢。 问题答案: 从总体上看,你做了什么和JUnit 4中应该做和该关联提供的JUnit

  • 我需要添加另一个JUnit依赖的模块吗?或者规则在JUnit5中不受支持?如果没有,如何替换注释以使测试再次工作?

  • 我的asp中有以下WebClient。net mvc web应用程序: 那么,有人可以建议我如何将它从WebClient更改为HttpClient吗?