java - 用 Spring 注入(inject)字符串的快捷方式

标签 java spring

我通过执行以下操作在我的 spring 配置中注入(inject)字符串:

<bean class="java.lang.String">
    <constructor-arg type="java.lang.String" value="Region" />
</bean>

有没有更短的方法?

更新: 我正在使用 Spring 3.0.3。

这些实际上是用来填充列表的:

        <list>
            <bean class="java.lang.String">
                <constructor-arg type="java.lang.String" value="Region" />
            </bean>
            ...

好像这样有效:

<list>
   <value>Region</value>
   <value>Name</value>
   ....

但我同意这应该最终进入属性并被传递的建议。

最佳答案

你不应该有 String bean。直接使用它们的值即可。

创建一个属性文件strings.properties并放到classpath中

strings.key=Region

声明一个PropertyPlaceholderConfigurer

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location">
        <value>strings.properties</value>
    </property>
</bean>

然后将实例字段Strings注解为

@Value("${strings.key}")
private String key;

Spring 会将 strings.properties 文件中的值注入(inject)到这个 key 字符串中。

这显然假设 @Value 注释出现的类是一个在与 PropertyPlaceholderConfigurer 相同的上下文中管理的 bean。

关于java - 用 Spring 注入(inject)字符串的快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18596235/

相关文章:

java - 使用代理请求时为 `java.net.SocketException: Connection reset`

java - Caused by : java. lang.IllegalStateException : Ambiguous mapping found. Cannot map 'appController' bean method

java - spring-boot-starter-mail 使用后的 "Application failed to start"

java - 如何使用 Spring MVC 返回文本文件?

java - Spring boot 中的错误映射(Whitelabel 错误页面)

java - 使用 Java Stream API 对 BigDecimals 进行分组和相加

java - 无法对非静态方法进行静态引用

Java Spring Security - User.withDefaultPasswordEncoder() 已弃用?

java - 使用 Java 8 安装 Dynamic Code Evolution VM (DCE) 时出错

java - Netbeans 平台和菜单