我試圖從頭構建基於spring的應用程序,使用Java配置,但我得到的警告我完全不明白... 有人能告訴我什麼是那裏錯了?在基於java的spring配置中創建applicationContext bean
錯誤: 警告:上下文初始化過程中遇到異常 - 取消刷新嘗試 org.springframework.beans.factory.BeanCreationException:錯誤創建名爲「的applicationContext」豆芽:黃的實例化失敗;嵌套異常是org.springframework.beans.BeanInstantiationException:無法實例[org.springframework.context.ApplicationContext]:指定的類是一個接口
Aplication初始化:
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 4.1.6,Tomcat的7和Java 7。
編輯: 我試圖從Spring註冊ApplicationContext和我自己的配置類 - ApplicationContextConfig - 錯誤是一樣的。 我已經刪除了Tomcat服務器並創建了新的,重新打開Eclipse並仍然一樣。 要麼導入項目爲新(刪除所有設置和.project文件)沒有幫助,所以也許錯誤是在配置的某處...?
'ApplicationContext'和'ApplicationContextConfig'是兩種不同的類型。投票結束爲錯字。 – 2015-04-03 22:06:21
當將此ApplicationContextConfig更改爲ApplicationContext時,它顯示相同的錯誤消息...並且對我來說它沒有任何感覺,因爲整個配置位於這些ApplicationContextConfig中... – argh 2015-04-03 22:10:11
No ...更改'ApplicationContext'(**屬於的類型到Spring **)轉換爲'onStartup'方法中的'ApplicationContextConfig'(**你定義的類型**)。 – 2015-04-03 22:10:51