簡體   English   中英

在基於Java的Spring配置中創建applicationContext bean

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM