我正在编写一个Spring Boot / JPA应用程序。我有一些值需要对整个应用程序可见,这些值位于数据库中。我应该在哪里获取这些值?我应该在包含@SpringBootApplication
的班级中获取它们吗?
如何让应用程序看到它?我用Spring读过,我们可以使用@Bean
类来保存全局变量。那么我是否必须使用Bean类映射我的@Entity
类并在任何我想要的地方自动装配Bean类?我是Spring / JPA的新手,所以如果问题是基本的,我会道歉。
感谢。
答案 0 :(得分:0)
创建一个用applicationContext实例化的bean,并在实例化之后使用init-method运行一些代码。
我的头脑解决方案:
在applicationContext.xml中:
<bean class="com.example.DbConfigLoader" init-method="init">
在启动时加载配置实体的类:
public class DbConfigLoader {
@Autowired
private DbConfigRepository repository;
private DbConfig dbConfig;
public void init(){
dbConfig = repository.findOne(1L);
}
public DbConfig getDbConfig() {
return dbConfig;
}
}
代表您的配置的类:
@Entity
public class DbConfig {
@Id
private Long id;
private String someSetting;
public String getSomeSetting() {
return someSetting;
}
}
用于轻松访问数据库的Spring Data存储库:
public interface DbConfigRepository extends JpaRepository<DbConfig, Long> {
}