[英]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.