java - Spring:属性文件中的值不会 Autowiring

标签 java spring

我使用的是Spring 4。我的配置是:

web.xml

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:contexts/root/spring-root-context.xml
        classpath:contexts/security/security-context.xml</param-value>
</context-param>

spring-root-context.xml

<context:property-placeholder location="classpath:credentials.properties" />

security-context.xml

<beans:bean id="myCustomFilter" class="filters.MyCustomFilter">
    <beans:property name="authenticationManager" ref="authenticationManager" />
</beans:bean>

credentials.properties

ClientSecret=qwerty

MyCustomFilter.java

public class MyCustomFilter extends AbstractAuthenticationProcessingFilter {

    @Value("${ClientSecret}")
    private String clientSecret;

}

属性文件已加载

INFO RMI TCP Connection(3)-127.0.0.1 support.PropertySourcesPlaceholderConfigurer:172 - Loading properties file from class path resource [credentials.properties]

clientSecret的值没有被注入(inject)。

最佳答案

看起来您没有<context:annotation-config>在你的spring-root-context.xml .

从另一边,如果配置 MyCustomFilter作为<bean>只需使用它的属性:

<beans:bean id="myCustomFilter" class="filters.MyCustomFilter">
    <beans:property name="authenticationManager" ref="authenticationManager" />
    <beans:property name="clientSecret" value="${ClientSecret}" />
</beans:bean>

如果您有setter当然,为此。

关于java - Spring:属性文件中的值不会 Autowiring ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24573395/

相关文章:

java - 如何编写自定义 CrudRepository 方法(@Query)来过滤我的结果

java - 试图理解Spring的@RunWith、@ContextConfiguration;和 Ant

java - 从Java文件写入jsp文件

java - 如何在标准 Mac JDK6 上使用 BGGA 闭包原型(prototype)?

java - 使用流和子字符串的 HashMap

java - Android模拟器排队点击?

java - 带空格的 URL rest api 参数

java.lang.ClassCastException : [B cannot be cast to [Ljava. lang.Object;使用 JPA 2.2 query.getResultStream().findFirst() 时

java - 端口 80 :installing apache for php as well as for java

java - 仅带有 websocket 客户端的 Spring Boot 应用程序