java - 如何在 Spring 应用程序启动时调用自定义数据加载器

标签 java spring web-applications spring-roo

我正在尝试在应用程序启动时将一些数据加载到我的数据库中。我有一个为此目的定义的 bean

applicationContext.xml

<bean class="com.project.loader.DataLoader" 
id="DataLoader" 
depends-on="entityManagerFactory" 
scope="singleton"/>

类别:

@RooJavaBean
@RooConfigurable
public class DataLoader implements InitializingBean

它正在执行,但是在调用第一个 persist() 方法时,Spring 抛出以下错误:

Caused by: java.lang.IllegalStateException: Entity manager has not been injected (is the Spring Aspects JAR configured as an AJC/AJDT aspects library?)
at com.project.lib.model.extensions.i18n.Locale_Roo_Jpa_ActiveRecord.entityManager_aroundBody0(Locale_Roo_Jpa_ActiveRecord.aj:19)
at com.project.lib.model.extensions.i18n.Locale_Roo_Jpa_ActiveRecord.ajc$interMethod$com_project_lib_model_extensions_i18n_Locale_Roo_Jpa_ActiveRecord$com_project_lib_model_extensions_i18n_Locale$entityManager(Locale_Roo_Jpa_ActiveRecord.aj:1)
at com.project.lib.model.extensions.i18n.Locale.entityManager(Locale.java:1)

以前,当我通过以下方式定义 DataLoader 时它可以工作:

@Component
@Configurable
public class DataLoader implements ApplicationListener

但是使用原始类型不是一个好习惯,所以我想切换

我怎样才能让它发挥作用?

Spring 版本:3.1

最佳答案

我过去已经通过将组件扫描定义移动到应用程序上下文的末尾来解决这个问题,如建议的 here 所示。

关于java - 如何在 Spring 应用程序启动时调用自定义数据加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13283058/

相关文章:

JavaFX 按钮垃圾邮件 MouseExit 和 MouseEntered

java - ORMLite SQLite w/Plain Java 错误 : "SQL error or missing database"

Java Swing : Why does the mouse cursor not update for the first paint?

Spring Security session 超时 - 清除浏览器缓存

web-applications - Web 应用程序和客户端/服务器应用程序之间有什么区别?

c# - mvc.net 4 的管理 UI 界面

java - 面向对象的类接口(interface)

使用@Valid 进行 Spring 验证

spring - 如何解决错误: Spring 退出值非零为1?

java - 在多个 war 之间切换链接