我有一个Spring MVC应用程序,使用Hibernate进行实体持久性管理。我能够在一些应用服务器上构建,部署和运行它,例如glashfish或tomcat,一切都很好。
现在,我想将其转换为Spring Boot应用程序。我添加了以下课程:
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
ConfigurableApplicationContext context =
SpringApplication.run(Application.class, args);
}
}
并添加 spring-boot , spring-boot-autoconfigure 和 spring-boot-starter-tomcat 依赖于我的pom。
唉,在尝试运行应用程序时,我收到以下错误:
BeanCurrentlyInCreationException: Error creating bean with name
'MyClassDAO': Bean with name 'MyClassDAO' has been injected into
other beans [MyOtherClassDAO] in its raw version as part of a circular
reference, but has eventually been wrapped. This means that said other
beans do not use the final version of the bean. This is often the result
of over-eager type matching - consider using 'getBeanNamesOfType' with
the 'allowEagerInit' flag turned off, for example.
我不知道如何使用' getBeanNamesOfType'并设置 allowEagerInit (我不使用XML配置)。当然,我不确定这会解决我的问题。
关于如何解决此问题的任何想法?
答案 0 :(得分:0)
如果确实是一些导入问题,那么我相信您必须将您的类放在其他软件包中,并且由于某些缓存问题,它不包含要在容器中扫描的类路径中的那些类,因此可以手动执行此操作@springbootapllication下方的注释是@EnableComponentScan(“输入未初始化的类的包名称”),也可以在dao类上放置@service或@component注释,以使应用程序随后包含在容器中