我在@Configuration类中有以下内容
@PropertySource(name = "applicationProperties", value = {
"classpath:application.properties",
"classpath:${spring.profiles.active}.properties",
"classpath:hibernate.properties",
"classpath:${spring.profiles.active}.hibernate.properties" })
我想检索所有属性作为一个java.util.属性对象或筛选它的前缀使用@Value属性的子集。
//This works but only gives System.properties
@Value("#{systemProperties}")
private Properties systemProperties;
//I want to do this, but I can't find a way to make it work with Spring EL if there is a way.
@Value("#{application.Properties}")
private Properties appProperties;
我使用的是纯java配置,我只需要以某种方式获取由@Properties tySource配置的属性。Spring环境一次只能获取一个属性。
简而言之,我真正想要的是所有以hibernate为前缀的属性*
请参阅以下连结:
http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
如果您正在或可以使用Spring Boot,则可以执行以下操作:
@Component
@ConfigurationProperties(locations = "classpath:config/hibernate.properties", prefix = "hibernate")
public class HibernateProperties {
Properties datasource = new Properties();
public Properties getDatasource() {
return datasource;
}
}
还有冬眠。属性文件:
hibernate.datasource.initialize=false
hibernate.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
hibernate.datasource.url=jdbc:sqlserver://xxx;DatabaseName=yyy
hibernate.datasource.username=user
hibernate.datasource.password=passwd
请注意,Hibernate是前缀,数据源是属性对象的名称。所以你可以调用像datasource.get这样的属性(“初始化”)。
然后您可以在任何地方注入HibernateProperties类并调用getProperties方法来获取hibernate属性。希望这有帮助。
如何使用注释填充值映射,而不在applicationContext中定义任何内容。xml或任何其他xml文件。 我使用的是SpringBoot,它没有任何XML文件,也不需要任何XML文件,所以请不要告诉我用XML等声明任何属性读取器bean。 此外,这是一个属性注入问题-请不要建议使用数据库存储数据-这不是一个答案,对于我的情况也不可能。 此外,我也不能使用YAML(由于部署/操作需求)。 我已
问题内容: 从属性文件中为最终属性进行Spring注入的一个简单问题。 我有一个属性文件,要在其中存储文件路径。通常,当我使用属性文件时,我会使用类似以下的方法来设置类属性: 然后在我spring.xml我会像这样: 这很好用,很简单,并且使代码简洁美观。但是我不确定在尝试将属性值注入最终类属性时使用的最整洁的模式是什么? 显然是这样的: 不管用。还有另一种方法吗? 问题答案: 将值注入最终字段的
问题内容: 关于从属性文件中为最终属性进行Spring注入的一个简单问题。 我有一个属性文件,要在其中存储文件路径。通常,当我使用属性文件时,我会使用类似以下的方法来设置类属性: 然后在我spring.xml我会像这样: 这样效果很好,很简单,并且使代码更简洁。但是我不确定在尝试将属性值注入最终类属性时使用的最整洁的模式是什么? 显然是这样的: 不管用。还有另一种方法吗? 问题答案: 如果您正在寻
我是Spring Security的新手。我看过很多关于如何通过外部属性文件的注释注入值的文章。我尝试了很多方法,但最终都是用java。lang.IllegalArgumentException:无法解析占位符“val.id”异常。 你能给我一些提示如何处理这个例外吗? 我的java类如下所示: 我的属性文件名为val.properties,位于WEB-INF下,其内容为val.id=xyz 我将
问题内容: 使用诸如 可以分配具有某些属性的某些字段。 是否有更短,更简洁的形式来执行此操作? 问题答案:
我们一直在使用Spring@Value注释来注入属性值。我们有一个约定来命名属性名称,以匹配它们注入的java字段。这带来了不必要的工作,即每个ConfigBean的java字段都需要用@Value注释。 我正在寻找一种方法,用新的注释注释java类(比如说ConfigBean),让一些后处理器读取这些bean的属性名称,并自动注入属性值。 我正在寻找一些关于如何在没有@Value注释的情况下实现