应用程序启动期间从数据库加载数据

时间:2016-09-12 07:34:32

标签: java spring

DB(Oracle)中有一个表存储"代码"及其"描述"。我需要在应用程序启动期间加载此表数据并将其存储在变量(可能是Map对象)中,以便我可以查找每个请求的代码描述,而无需为每个请求命中数据库。最好的方法是什么?

Application是一个基于Spring框架的独立Java应用程序。

感谢。

2 个答案:

答案 0 :(得分:0)

我不确定,但Spring事件可能有所帮助。例如,您可以使用ContextRefreshedEvent - 只要启动或刷新Spring Context,就会发布此事件。

请检查:running-code-on-spring-boot-startupbetter-application-events-in-spring-framework-4-2

答案 1 :(得分:0)

您可以创建一个选择应用程序启动方法的类。 在Spring中,您可以使用ApplicationReadyEvent事件实现ApplicationListener接口。

此时您的应用程序已准备好与数据库通信 并将自动执行您的代码。

 @Component
   public class AppBootstrapListener implements     ApplicationListener<ApplicationReadyEvent> {
// Inject Service or repository if you have.

/**
* Executes on application ready event
* Check's if data exists & calls to create or read data
*/
@Override
public void onApplicationEvent(ApplicationReadyEvent event) {
    // code here
 }
}

如有任何澄清,请添加评论