[SPRING] 모든 BeanPostProcessors가 처리 할 수없는 클래스
SPRING모든 BeanPostProcessors가 처리 할 수없는 클래스
Maven에서 Spring + Spring Data JPA + QueryDSL + JPA 2.0 + Hibernate의 구성을 설정하는 데 많은 어려움을 겪고 있습니다. 나는 이미 많은 문제를 풀었지만,이 문제는 나에게 두통을주고있다. /.
다음과 같은 예외가 발생합니다.
Bean 'dataSource' of type [class org.springframework.jdbc.datasource.DriverManagerDataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
나는 구글에서 한 번 훑어 보았고, 대부분이 문제는 "@ 트랜잭션"이라는 어노테이션이 없기 때문에 발생했다. 내 방법에 주석을 달았지만 아무 것도 해결하지 못했습니다. 나는 그것이 어디서 왔는지 = 전혀 모른다.
내 테스트 코드는 다음과 같습니다.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="/applicationContext.xml")
public class BaseTest {
public BaseTest() {
}
@Before
public void setUp() throws IOException {
Dataset.loadDatabase();
}
@Test
public void load(){}
}
DataSet 클래스는 작동하는지 확인하기 위해 db에 일부 저장을 수행합니다.
내 ApplicationContext.xml :
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/data/jpa
http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
<context:annotation-config/>
<jpa:repositories base-package="com.ae.repository" />
<context:component-scan base-package="com.ae.service" />
<!-- Data Source -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
<property name="url"><value>jdbc:mysql://localhost:3306/academia</value></property>
<property name="username"><value>root</value></property>
<property name="password"><value>root</value></property>
</bean>
<!-- JPA EntityManagerFactory -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="jpaProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>
<prop key="hibernate.id.new_generator_mappings">true</prop>
</props>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<tx:annotation-driven mode="aspectj" transaction-manager="transactionManager" />
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
</beans>
내 의존성이 올바르게 설정되었는지 잘 모르겠습니다.
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<!-- hibernate + jpa -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.1.6.Final</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.6</version>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.3.2.1</version>
<scope>test</scope>
</dependency>
<!-- Spring JPA -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.sql</groupId>
<artifactId>jdbc-stdext</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
</dependency>
<!-- MySQL Connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
<!-- Query DSL -->
<dependency>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>2.7.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>2.7.2</version>
</dependency>
<!-- Spring Framework -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
<!-- Apache commons lang -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<!-- Apache commons IO -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<!-- Other -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.1.2.RELEASE</version>
<scope>test</scope>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
</dependencies>
읽어 주셔서 감사합니다 ;)
해결법
-
==============================
1.이 경고는 아무런 의미가 없습니다. 데이터 소스에 후 처리기를 적용 할 필요가 없으므로 걱정할 필요가 없습니다.
이 경고는 아무런 의미가 없습니다. 데이터 소스에 후 처리기를 적용 할 필요가 없으므로 걱정할 필요가 없습니다.
기술적으로 그것은 어떤 콩 포스트 프로세서 (트랜잭션적인 것 같군요)가 당신의 데이터 소스에 의존한다는 것을 의미합니다. 따라서 포스트 프로세서가 데이터 소스 초기화를 가로 챌 수 없도록 데이터 소스가 완전히 초기화되어야합니다.
후 처리기를 적용하고자하는 bean에 대한 경고를 받으면 걱정할 필요가 있습니다.
from https://stackoverflow.com/questions/12358783/class-not-eligible-for-getting-processed-by-all-beanpostprocessors by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Jackson : 각 값에 대해 올바른 유형의 Map <String, Object>에 비순환 (0) | 2019.06.07 |
---|---|
[SPRING] maven-spring-boot-plugin을 사용할 때 Spring Boot 명령 행에 classpath 추가 시작 (0) | 2019.06.07 |
[SPRING] Servlet 또는 @Controller를 사용해야하는 경우 (0) | 2019.06.06 |
[SPRING] Spring WebClient를 사용하여 여러 개의 호출을 동시에 수행하는 방법? (0) | 2019.06.06 |
[SPRING] 사용자가 자신의 프로필 만 업데이트하도록 스프링 부트 보안을 구성하는 방법 (0) | 2019.06.05 |