@Configuration
public class JavaConfig {
@Bean
public ApplicationListener<ContextRefreshedEvent> contextInitFinishListener() {
return new ContextInitFinishListener(personRepository());
}
@Bean
public PersonRepository personRepository() {
return new PersonRepository();
}
}
4条答案
按热度按时间t30tvxxf1#
你也可以利用Spring的
DataSourceInitializer
。下面是一个Java Config的例子。vdgimpew2#
Spring已经提供了一种用内容初始化数据库的方法,使用DatabasePopulator。这是我找到的一个quick example,用于Spring Batch示例应用程序。要在该代码中查看的类是ResourceDatabasePopulator。Another example在Spring Social项目示例中。
8yparm6h3#
我会在Spring context configuration中注册一个 * ApplicationEvent * 的示例,它会监听 ContextRefreshedEvent,当应用程序上下文完成初始化或刷新时会发出信号。在此之后,您可以设置您的数据库人口。
下面你将找到实现这一点所需的ApplicationServer实现(它依赖于负责执行数据库操作的DAO)和Spring配置(Java和XML)。您需要选择特定于您的应用的配置:
基于Java的配置
XML格式
这是ContextInittershocks类的代码:
**注意:**PersonRepository只是示例中的一个通用DAO,它表示您在应用中使用的DAO
jljoyd4f4#
我在我的Spring Boot 控制台应用程序测试中使用如下。
根据应用程序或数据分层框架的类型,有不同的方法来获得数据包。
如果你使用 Spring Boot 来配置h2,你可以使用。
要通过外部配置类获取数据源,请执行以下操作
这对我来说很有效,将你需要执行的所有查询都保存在table-tables.sql中