当前位置: 首页 > 知识库问答 >
问题:

在基于java的spring配置中创建applicationContext bean

勾学博
2023-03-14

我正在尝试使用Java配置从头开始构建基于spring的应用程序,但我得到了一个我完全不理解的警告。。。有人能告诉我哪里出了什么问题吗?

错误:警告:上下文初始化期间遇到异常-正在取消刷新尝试组织。springframework。豆。工厂BeanCreationException:创建名为“applicationContext”的bean时出错:bean实例化失败;嵌套异常为org。springframework。豆。BeanInstationException:未能实例化[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;
}
  }

整个项目只有两个配置类。

整个代码可以在以下位置找到:https://github.com/annweg/wybornie.pl/tree/new_build/project_workspace/wybornie

我是spring的新手,可能缺少一些配置。。。我使用的是Spring 4.1.6、Tomcat 7和Java 7。

编辑:我尝试从Spring注册Application Context和我自己的配置类-Application ContextConfig-错误是一样的。我删除了Tomcat服务器并创建了新服务器,重新打开了Eclipse,仍然如此。要么将项目导入为新(删除所有设置和. project文件)都没有帮助,所以可能错误在配置中的某个地方...?

共有2个答案

郏扬
2023-03-14

好吧,这种类型的错误通常与缺少jar和/或类路径错误有关。检查您是否有一些库没有添加到类路径中,或者项目需要一些以前存在但后来删除的库。有时我将jars添加到类路径并删除它们,它就可以工作了。

马峻
2023-03-14

问题在于我的Eclipse设置。我删除了所有项目内容,更改了工作区,只需复制/粘贴所有类和库,错误就消失了。

 类似资料:
  • 问题内容: 我尝试不使用任何xml。 像这样一个:转换为@Bean 问题在这里。 尝试将“ com.cloudlb.domain.User”转换为Class []无效。 错误:投放问题。 先感谢您。 问题答案:

  • 我有,我认为一个非常简单的Spring MVC设置。我的应用程序上下文.xml是这样的: 我目前的web.xml是: 我正试图将这个设置转换为纯基于Java的配置。我在网上搜索了一下,到目前为止,我找到了一些解释(一些什么)如何进行Java配置的东西,但是没有解释如何向环境(即web上下文)注册Java配置。 到目前为止,我在@Configuration方面是这样的: 如何将其注册到web容器?我

  • Spring引导2.3.4,Spring安全,固定REST控制器(endpoint)。

  • 本文向大家介绍spring boot基于Java的容器配置讲解,包括了spring boot基于Java的容器配置讲解的使用技巧和注意事项,需要的朋友参考一下 spring容器是负责实例化、配置、组装组件的容器。 容器的配置有很多,常用的是xml、Java注解和Java代码。 在spring中Ioc容器相关部分是context和beans中。其中context-support保存着许多线程的容器实

  • 我试图将我现有的基于XML的spring批处理项目转换为基于java的配置。@Autowired对象返回null,尽管我已经在基本包中提到了componentscan。

  • 问题内容: 我有一个我认为非常简单的Spring MVC设置。我的applicationContext.xml是这样的: 我的web.xml当前是这样的: 我正在尝试将此设置转换为基于Java的纯配置。我已经在网上搜索过,到目前为止,我已经提出了一些东西(这些东西可以解释)如何进行Java配置,但是没有解释如何在环境(即Web上下文)中注册该Java配置。 到目前为止,我对@Configurati