繁体   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