<util:properties>在基于java的spring配置中等效

2022-09-01 15:50:26

在基于java的配置中,基于XML的弹簧配置中的等效物是什么

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

然后能够在代码中使用此特定属性对象,例如:

@Resource(name = "mapper")
private Properties myTranslator;

看着文档,我看着

@PropertySource

注释,但在我看来,特定的属性文件将无法从环境对象单独访问。


答案 1

很简单,声明一个属性工厂Bean

@Bean(name = "mapper")
public PropertiesFactoryBean mapper() {
    PropertiesFactoryBean bean = new PropertiesFactoryBean();
    bean.setLocation(new ClassPathResource("com/foo/jdbc-production.properties"));
    return bean;
}

在这里的文档中,您会注意到在他们制作之前,他们曾经使用过这样的<util:properties>PropertiesFactoryBean

<!-- creates a java.util.Properties instance with values loaded from the supplied location -->
<bean id="jdbcConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
  <property name="location" value="classpath:com/foo/jdbc-production.properties"/>
</bean>

如上所示,将其转换为Java配置非常容易。


答案 2

在Spring Boot 5+中,src/main/resources下的appplication.properties是约定。我发现,如果您需要放置自己的自定义属性,例如“student.class.name”,那么Spring将在Eclipse中自动验证它,并用警告标记该条目,并可以选择为其创建元数据。单击它,它将在META-INF下创建一个JSON文件。使用它。然后,您可以使用@Value(“${student.class.name}”注释注入属性。


推荐