[英]Inject value in a spring bean from constants java file
我有一个应用程序,其中在spring bean中,从属性文件中注入值。 我想从constants.java文件中注入值。 我需要进行哪些更改。
春豆
@Value("${resetPassword.email.key}")
private String resetPassword;
属性文件
resetPassword.email.key = RESET_PASSWORD
Constants.java
public static final String resetPassword_email_key = "RESET_PASSWORD";
您不能在属性文件中引用java常量。 而且您不需要Spring注入。 你干嘛
private String resetPassword = Constants.resetPassword_email_key;
如果需要在多个子项目(一个项目的模块)之间共享Constants
类,则可能需要将该类提取到可能包含在其他项目中的库中。
您不能将值插入静态属性。 但是您可以按以下方式分配给非静态设置器:
@Component
public class GlobalValue {
public static String DATABASE;
@Value("${mongodb.db}")
public void setDatabase(String db) {
DATABASE = db;
}
}
来自https://www.mkyong.com/spring/spring-inject-a-value-into-static-variables/
您可以使用@Value
从属性文件或Spring bean中注入值。
要使用属性文件,请使用util:properties
标记对其进行声明:
<util:properties id="jdbcProperties" location="classpath:org/example/config/jdbc.properties"/>
在春季豆做:
private @Value("#{jdbcProperties.url}") String jdbcUrl;
private @Value("#{jdbcProperties.username}") String username;
private @Value("#{jdbcProperties.password}") String password;
或者,您可以注入另一个spring bean的值,例如:
@Value("#{strategyBean.databaseKeyGenerator}")
public void setKeyGenerator(KeyGenerator kg) { … }
有关更多信息,请参见http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/new-in-3.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.