Spring数据库配置问题

时间:2016-03-15 13:38:32

标签: java xml spring hibernate spring-mvc

我是Spring-MVC的新用户,我正在尝试创建一个Spring-MVC项目,该项目在annotation中使用controller并创建databases

当我在xml文件中编写所有spring-dispatcher-servlet.xml代码时,应用程序运行正常,但当我将spring database connection xmlspring servlet xml文件分开时,它将停止工作。

以下代码在数据库中成功创建表,但无法加载控制器,当我尝试命中任何控制器时它会给我404 not found页面。 如果我在<listner>文件中注释web.xml代码,它会成功加载所有控制器,但不会执行任何数据库操作。

请指导我在这里做错了什么。

的web.xml

<!--  JPA  -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring.xml</param-value>
    </context-param>



<!--  Servlet Dispatcher  -->
    <servlet>
        <servlet-name>spring-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring-dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.css</url-pattern>
    </servlet-mapping>

Spring.xml

    <mvc:annotation-driven />

    <context:annotation-config />
    <context:component-scan base-package="com.evantage.models" />
    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/springDB" />
        <property name="username" value="root" />
        <property name="password" value="" />
    </bean>
    <!-- This produces a container-managed EntityManagerFactory; rather than 
        application-managed EntityManagerFactory as in case of LocalEntityManagerFactoryBean -->
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"/>

    <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>
    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="persistenceProviderClass" value="org.hibernate.ejb.HibernatePersistence"/>
        <property name="dataSource" ref="dataSource"/>
        <property name="persistenceUnitName" value="persistenceUnit"/>
        <property name="persistenceXmlLocation" value="/WEB-INF/persistence.xml" />
    </bean>



   <jpa:repositories base-package="com.evantagesoft.springmvctiles.repository"
                      entity-manager-factory-ref="entityManagerFactory"
                      transaction-manager-ref="transactionManager"/>

    <tx:annotation-driven transaction-manager="transactionManager" />

</beans>

弹簧调度-servlet.xml中

<context:component-scan base-package="com.evantage.controllers" />
 <mvc:annotation-driven /> 
<bean id="tilesConfigurer"
    class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
    <property name="definitions">
        <list>
            <value>/WEB-INF/tiles.xml</value>
        </list>
    </property>
    <property name="preparerFactoryClass"
        value="org.springframework.web.servlet.view.tiles2.SpringBeanPreparerFactory" />
</bean>

<!-- View Handler -->
<bean
    class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
    <property name="favorPathExtension" value="true" />
    <property name="mediaTypes">
        <map>
            <entry key="xml" value="text/xml" />
            <entry key="json" value="application/json" />
            <entry key="html" value="text/html" />
            <entry key="less" value="text/html" />
        </map>
    </property>
    <property name="viewResolvers">
        <list>
            <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
                <property name="viewClass"
                    value="org.springframework.web.servlet.view.tiles2.TilesView" />
            </bean>
            <bean
                class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                <!-- <property name="prefix" value="/"/> -->
                <property name="prefix">
                    <value>/WEB-INF/</value>
                </property>
                <property name="suffix">
                    <value>.jsp</value>
                </property>
            </bean>
        </list>
    </property>
</bean>

1 个答案:

答案 0 :(得分:2)

您需要添加上下文:component-scan base-package =&#34; controller package&#34;在调度程序servlet xml中使其工作。 扫描包并注册控制器类

需要组件扫描