我的項目中創建了一個資源文件。我想從資源文件中注入值到spring bean中。我在applicacationContext.xml中定義了資源文件的佔位符。彈簧注入在資源文件中找不到變量
<context:property-placeholder location="file:///${MRAPOR_PROPPATH}mRapor.properties" />
我可以注入值,這是宣佈在applicationContext.xml如豆類:
<bean
id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean" >
<property
name="jndiName"
value="${database.jndiName}" />
<property
name="lookupOnStartup"
value="false" />
<property
name="cache"
value="true" />
<property
name="proxyInterface"
value="javax.sql.DataSource" />
</bean>
這種運作良好。但是,如果我用spring註釋聲明bean,我不能注入值。
@Component("SecurityFilter")
public class SecurityFilter implements Filter {
public static final String USER = "USER_SESSION_KEY";
public static final String CENTRIFY_USERNAME_KEY = "REMOTE_USERNAME";
@Value("${url.logout}")//I get error here !!!!
private String logoutUrl;
//proper setters and getters.
}
你有什麼想法,爲什麼我不能訪問使用註釋聲明的bean內部的值。
這裏是我的例外
weblogic.application.ModuleException:
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1510)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:482)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
Truncated. see log file for complete stacktrace
Caused By: java.lang.IllegalArgumentException: Could not resolve placeholder 'url.logout' in string value [${url.logout}]
at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:173)
at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:125)
at org.springframework.beans.factory.config.PropertyPlaceholderConfigurer$PlaceholderResolvingStringValueResolver.resolveStringValue(PropertyPlaceholderConfigurer.java:255)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:748)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:745)
我知道區別。不過,我已經在應用程序上下文中聲明瞭我的資源文件。你知道任何方式通過@Value註釋注入它嗎? – erencan
看我的編輯和參考。 Spring表達語言:http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/new-in-3.html#new-feature-el –
不幸的是。 ı得到「找不到字段或屬性」錯誤。 Spring試圖在上下文中注入一些bean。然而,application.url.logout不是一個spring bean。 – erencan