我无法运行Spring和MyBatis应用程序

时间:2016-11-20 09:59:34

标签: java spring spring-mvc mybatis spring-mybatis

当您尝试使用错误运行瀑布时:

org.springframework.beans.factory.BeanCreationException: Error creating bean  with name 'sqlSessionFactory' defined in class path resource [application- context.xml]: Error setting property values; nested exception is  org.springframework.beans.PropertyBatchUpdateException; nested  PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'dataSource' threw exception; nested exception is java.lang.NoClassDefFoundError: org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy

application-context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath:db.properties</value>
        </list>
    </property>
</bean>

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${db.driver}"/>
    <property name="url" value="${db.url}"/>
    <property name="username" value="${db.user}"/>
    <property name="password" value="${db.password}"/>
</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="typeAliasesPackage" value="com.rest.service.entity" />
</bean>

<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
    <property name="mapperInterface" value="com.rest.service.mapping.UserMapper" />
    <property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>

我不明白有什么问题,请执行以下说明:http://www.mybatis.org/spring/getting-started.html

初始化上下文:     公共类ApplicationInitializer实现WebApplicationInitializer {

private static final String DISPATCHER = "dispatcher";


public void onStartup(ServletContext servletContext) throws ServletException {
    XmlWebApplicationContext appContext = new XmlWebApplicationContext();
    appContext.setConfigLocation("classpath:application-context.xml");
    ServletRegistration.Dynamic dispatcher =
            servletContext.addServlet(DISPATCHER, new DispatcherServlet(appContext));
    dispatcher.addMapping("/");
    dispatcher.setLoadOnStartup(1);
   }
}

可能有什么相关问题?

1 个答案:

答案 0 :(得分:0)

我刚刚将其添加到我的pom.xml中,这是有效的:

   <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
    </dependency>