在Spring启动时在应用程序启动时从数据库中获取全局值

时间:2015-04-09 22:24:00

标签: spring hibernate jpa

我正在编写一个Spring Boot / JPA应用程序。我有一些值需要对整个应用程序可见,这些值位于数据库中。我应该在哪里获取这些值?我应该在包含@SpringBootApplication的班级中获取它们吗?

如何让应用程序看到它?我用Spring读过,我们可以使用@Bean类来保存全局变量。那么我是否必须使用Bean类映射我的@Entity类并在任何我想要的地方自动装配Bean类?我是Spring / JPA的新手,所以如果问题是基本的,我会道歉。

感谢。

1 个答案:

答案 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> {
}