繁体   English   中英

从常量java文件在spring bean中注入值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM