2016-03-15 111 views
0

我是新来Spring-MVC,我试图创建在controller使用annotation一个Spring-MVC项目,也创造databases春季数据库配置问题

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

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

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

的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> 

回答

2

你需要添加上下文:组分扫描基包=“控制器封装”在调度的servlet XML,使其工作。 扫描软件包并注册您的控制器类需要组件扫描

+0

感谢兄弟,它现在的工作很好:)有什么地方可以学习这些'Spring-xml'相关的东西 – Kirmani88

+1

您可以参考spring mvc文档。 http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html – Rahul