当前位置: 首页 > 知识库问答 >
问题:

导入一个。属性文件转换为java。util。通过注释在配置类中设置属性类型变量

孟谭三
2023-03-14

我正在将我的java应用程序从Spring迁移到Spring Boot,同时我想根除基于xml的配置,完全转向基于注释的配置

我想按原样将属性文件加载到java中。util。属性类型变量。

@Configuration
public class ApplicationConfig
{
  // inject the file into this variable
  private Properties myOtherProp;
}

在基于xml的配置中,这是通过以下方式一行完成的:

<util:properties id="myOtherProp" location="classpath:myOtherProperties.properties"/>

我目前实现这一目标的方法是这样做:

@Configuration
public class ApplicationConfig
{
  private Properties myOtherProp;

  private void myMethodToInitialiseMyOtherProp()
  {
    myOtherProp = new Properties();
    myOtherProp.load(getClass().getClassLoader().getResourceAsStream("myOtherProperties.properties"));
  }

  @Bean
  public myClass beanWhichUsesTheOtherProp()
  {
    myMethodToInitialiseMyOtherProp();
    return new myClass(myOtherProp);
  }
}

我正在寻找一种解决方案,可以像@Value处理原始数据类型一样,在一行中完成这项工作。或者至少能够调用我的方法-MyMethodToInitializeMyOtherProp(),在这里我声明了Properties变量,这样我就可以消除在第一次使用变量之前记住调用函数初始化变量的开销。

我知道如何注入声明的个别字段在myAnywhere Properties.properties但这不是我试图在这里实现的。我希望将整个文件加载到属性类型的变量-myAnywhere Prop中。

大概是这样的:

@Configuration
public class ApplicationConfig
{
  // inject the file into this variable
  @Something-Like-Value-Annotation-To-Inject-The-File-In-One-Line
  // OR //
  @Some-Way-To-Call-myMethodToInitialiseMyOtherProp()
  private Properties myOtherProp;
}

共有1个答案

宋唯
2023-03-14

你可能想参考这个。这对你有帮助。链接:https://www.baeldung.com/properties-with-spring

将属性声明为:

@Configuration
@PropertySource("classpath:foo.properties")
public class PropertiesWithJavaConfig {
    //...
}

在其他类中使用它们:示例1:

@Value( "${jdbc.url}" )
private String jdbcUrl;

例2:

@Autowired
private Environment env;
...
dataSource.setUrl(env.getProperty("jdbc.url"));

注意:代码片段来自答案中提供的链接。归功于贝尔东。

 类似资料:
  • 我是Spring Security的新手。我看过很多关于如何通过外部属性文件的注释注入值的文章。我尝试了很多方法,但最终都是用java。lang.IllegalArgumentException:无法解析占位符“val.id”异常。 你能给我一些提示如何处理这个例外吗? 我的java类如下所示: 我的属性文件名为val.properties,位于WEB-INF下,其内容为val.id=xyz 我将

  • 我有一个Spring配置类,我正在使用它从属性文件中读取并创建bean。 在xml文件中 我能够设置和属性,但无法将属性设置为,因为我们需要注入及其。请让我知道如何在方法中注入bean。

  • 例如,我有一个bean类 我想设置这个属性的值。 在Xml配置中,我可以 我如何实现同样的事情,即设置属性的值使用Java注释?现在我已经读到,我们可以使用@Value注释使用一些属性文件,但它不能不使用属性文件,做的方式,我通过xml文件?或者使用属性文件是必要的? 我可以通过包含

  • 任务控制器 创造jsp 在控制器中,我用相同的错误(以及不同的格式,如“yyyy/MM/dd”)编写了以下内容 我还尝试在类中添加注释(以及使用不同的格式),但出现了相同的错误

  • 我们在应用程序中定义了属性。属性,将该属性拉入一个springboot@Configuration注释类以用于初始化正在创建的bean是否合适。请参阅下面的代码片段 最简单的例子是创建一个在应用程序中配置了url、驱动程序、用户名和密码的数据源实例。性质 是否恰当?继续以这种方式使用可能产生什么后果?

  • 问题内容: 是否可以通过读取另一个bean的属性来设置一个bean的属性?例如,假设我有: 我希望Spring实例化这两个类,并调用A的setList方法,并传入调用B的getList方法的结果。Spring配置可能类似于: las,这种伪造的XML不起作用。 为什么不将B注入A?因为我不想引入额外的依赖关系。A仅依赖列表,而不依赖B。 问题答案: 如果你使用的是spring 3.0,还可以使用新