gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 05:01:59 25 4
gpt4 key购买 nike

我正在尝试在应用程序启动时将一些数据加载到我的数据库中。我有一个为此目的定义的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com