[英]Creating applicationContext bean in java based spring configuration
我正在尝试使用Java配置从头开始构建基于Spring的应用程序,但是我收到警告,我完全不明白...有人可以告诉我那里出了什么问题吗?
错误:警告:上下文初始化期间遇到异常-取消刷新尝试org.springframework.beans.factory.BeanCreationException:创建名称为'applicationContext'的bean时出错:bean的实例化失败; 嵌套的异常是org.springframework.beans.BeanInstantiationException:无法实例化[org.springframework.context.ApplicationContext]:指定的类是一个接口
应用初始化器:
public class SpringWebAppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext();
appContext.register(ApplicationContext.class);
ServletRegistration.Dynamic dispatcher = servletContext.addServlet("SpringDispatcher", new DispatcherServlet(appContext));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
servletContext.addListener(new ContextLoaderListener(appContext));
}
}
应用程序上下文配置:
@Configuration
@ComponentScan("pl.wybornie.entity.*")
@EnableTransactionManagement
public class ApplicationContextConfig {
@Bean(name = "viewResolver")
public InternalResourceViewResolver getViewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/pages/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
@Bean(name = "dataSource")
public DataSource getDataSource() {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/wyborniedb");
dataSource.setUsername("root");
dataSource.setPassword("root123");
return dataSource;
}
@Autowired
@Bean(name = "sessionFactory")
public SessionFactory getSessionFactory(DataSource dataSource) {
LocalSessionFactoryBuilder sessionBuilder = new LocalSessionFactoryBuilder(dataSource);
//sessionBuilder.addAnnotatedClasses(User.class);
sessionBuilder.scanPackages("pl.wybornie.entity", "pl.wybornie.entity.cookBook");
return sessionBuilder.buildSessionFactory();
}
@Autowired
@Bean(name = "transactionManager")
public HibernateTransactionManager getTransactionManager(SessionFactory sessionFactory) {
HibernateTransactionManager transactionManager = new HibernateTransactionManager(sessionFactory);
return transactionManager;
}
}
这些只是整个项目的2个配置类。
完整的代码可以在以下位置找到: https : //github.com/annweg/wybornie.pl/tree/new_build/project_workspace/wybornie
我是Spring的新手,也许那里缺少一些配置...我正在使用Spring 4.1.6,Tomcat 7和Java 7。
编辑:我已经尝试从Spring和我自己的配置类-ApplicationContextConfig-注册ApplicationContext-错误是相同的。 我已经删除了Tomcat服务器并创建了一个新服务器,重新打开了Eclipse,并且仍然相同。 将项目导入为新项目(删除所有设置和.project文件)都无济于事,所以也许错误出在配置中?
问题出在我的Eclipse设置上。 我已经删除了所有项目内容,更改了工作区,仅复制/粘贴了所有类和库,错误消失了。
好吧,这种类型的错误通常与缺少的jar和/或类路径错误有关。 检查是否有一些库未添加到类路径中,或者项目是否需要一些先前存在但已删除的库。 有时我将jar添加到classpath并将其删除,并且可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.