Spring 4, интеграция MVC и JPA - PullRequest
       1

Spring 4, интеграция MVC и JPA

0 голосов
/ 14 октября 2018

Я немного ржавый весной.У меня есть проект, использующий упорство JPA, и мне нужно сделать так, чтобы он возвращал JSON для остальных API.

web.xml

<display-name>display name</display-name>

 <!-- Spring -->
<context-param>
    <description>Spring context file</description>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:/META-INF/spring/applicationContext.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

applicationContext.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"
       xmlns:jdbc="http://www.springframework.org/schema/jdbc"
       xmlns:jpa="http://www.springframework.org/schema/data/jpa"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd
                        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
                        http://www.springframework.org/schema/tx
                        http://www.springframework.org/schema/tx/spring-tx.xsd
                        http://www.springframework.org/schema/context 
                        http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">


    <context:annotation-config/>
    <context:load-time-weaver/>
    <!-- escanea las clases del package services buscando componentes -->
    <context:component-scan base-package="cl"/>

    <tx:annotation-driven transaction-manager="transactionManager"/>
    <!-- MYSQL -->
    <bean id="datasource"
          class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    </bean>

    <bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect">
        <!--  <property name="databasePlatform" value="org.eclipse.persistence.platform.database.H2Platform" /> -->
        <!-- <property name="showSql" value="true" />  -->
    </bean>
    <!--  Entity Manager Factory -->
    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="datasource"></property>
        <property name="persistenceUnitName" value="persistenceUnit"></property>
        <property name="jpaDialect" ref="jpaDialect"/>
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter"/>
        </property>
        <!--
       <property name="jpaPropertyMap">
           <map>
               <entry key="eclipselink.weaving" value="false" />
           </map>
       </property>
        -->
    </bean>

    <!--  Transaccion manager -->
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory"></property>
    </bean>

    <!-- JPA Repositories -->
    <jpa:repositories base-package="cl.repositories"></jpa:repositories>
    <!-- traductor de excepciones de repo -->
    <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>


    <!-- Velocity -->

</beans>

Класс обслуживания

@Service
public class CalculatorService {

    private transient Logger logger = LoggerFactory.getLogger(CalculatorService.class);

    @Autowired
    RubroRepository rubroRepo;
 ...

Я создал RestController, следуя множеству руководств в Интернете, но всегда возникал проблемы, например,autowired к классу CalculatorService не работает.

Какой лучший способ включить сервлет отдыха в это приложение?Спасибо

1 Ответ

0 голосов
/ 15 октября 2018

Ну, в конце концов я понял это, я помещал applicationContext.xml вне папки ресурсов, поэтому у меня никогда не было компонента bean-объекта services.Мне потребовалось много времени, чтобы понять это, так что я думаю, что я могу пропустить некоторые важные записи журнала.Я только смотрю выход Tomcat на этом.поэтому любая помощь в этом отношении будет принята.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...