首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring数据库配置问题

Spring数据库配置问题
EN

Stack Overflow用户
提问于 2016-03-15 13:38:32
回答 1查看 733关注 0票数 0

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

当我用xml文件编写所有spring-dispatcher-servlet.xml代码时,应用程序工作得很好,但是当我分离spring database connection xmlspring servlet xml文件时,它就停止工作了。

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

请告诉我我在这里做错了什么。

web.xml

代码语言:javascript
复制
<!--  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

代码语言:javascript
复制
    <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>

Spring-dispatcher-servlet.xml

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-15 13:50:33

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36012951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档