Java Spring数据库配置问题

Java Spring数据库配置问题,java,xml,spring,hibernate,spring-mvc,Java,Xml,Spring,Hibernate,Spring Mvc,我是springmvc新手,我正在尝试创建一个springmvc项目,该项目在controller中使用annotation,并创建数据库 应用程序运行良好,当我在spring dispatcher servlet.xml文件中编写所有xml代码时,但是当我分离spring数据库连接xml和spring servlet xml文件时,它停止工作 下面的代码成功地在数据库中创建了表,但它无法加载控制器,当我尝试点击任何控制器时,它给了我404notfound页面。 如果我在我的web.xml文件中

我是
springmvc
新手,我正在尝试创建一个
springmvc
项目,该项目在
controller
中使用
annotation
,并创建
数据库

应用程序运行良好,当我在
spring dispatcher servlet.xml
文件中编写所有
xml
代码时,但是当我分离
spring数据库连接xml
spring servlet xml
文件时,它停止工作

下面的代码成功地在数据库中创建了表,但它无法加载控制器,当我尝试点击任何控制器时,它给了我
404notfound
页面。 如果我在我的
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>
    <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>
<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>

org.springframework.web.context.ContextLoaderListener
上下文配置位置
/WEB-INF/spring.xml
春季调度员
org.springframework.web.servlet.DispatcherServlet
1.
春季调度员
/
违约
*.css
Spring.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>
    <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>
<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>

Spring dispatcher servlet.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>
    <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>
<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>

/WEB-INF/tiles.xml
/WEB-INF/
.jsp

您需要在dispatcher servlet xml中添加上下文:component scan base package=“controller package”以使其正常工作。
需要组件扫描来扫描包并注册控制器类

您需要在dispatcher servlet xml中添加上下文:Component scan base package=“controller package”以使其正常工作。
组件扫描是扫描软件包和注册控制器类所必需的

谢谢兄弟,现在工作正常:)有没有地方可以让我学习这些
SpringXML
相关内容您可以参考SpringMVC文档。谢谢兄弟,现在工作很好:)有没有什么地方我可以学习这些
springxml
相关的东西你可以参考springmvc文档。