我希望在应用运行时访问ORM层以创建新用户或虚拟数据。在Rails中有这样的功能。 Spring Boot Application是否可行?
答案 0 :(得分:3)
Spring没有提供任何类似的命令行界面。 Spring提供了许多功能来插入您的实现来创建这样的虚拟数据。 Spring启动 - 使用jdbc启动程序只需在类路径中选择名称为schema.sql和data.sql的sqls。这些名称也可以覆盖。
您也可以注册ApplicationListeners,如下所示。
public class EndpointsListener implements ApplicationListener {
@Override
public void onApplicationEvent(ApplicationEvent event) {
if (event instanceof ContextRefreshedEvent) {
ApplicationContext applicationContext = ((ContextRefreshedEvent) event).getApplicationContext();
YourDaoRepository repo = applicationContext.getBean(YourDaoRepository.class);
// Do what ever u want here.
}
}
}
要填充数据或进行任何其他类型的初始化,您可以使用这些。
答案 1 :(得分:2)
如果您确实需要命令行访问权限,那么您可以查看CRaSH。但请注意,it's deprecated and will be removed with Spring Boot 2.0。
如果您想在创建bean上下文后直接执行某些操作,请尝试CommandLineRunner界面。