fix: TransactionManager Bean 충돌 해결 (egovframework 기본 설정 사용)

DatabaseConfig에서 중복 TransactionManager Bean 제거

## 문제
- DatabaseConfig.transactionManager와 EgovConfigTransaction.txManager 충돌
- "expected single matching bean but found 2" 에러 발생

## 해결
- DatabaseConfig에서 transactionManager Bean 제거
- egovframework의 txManager Bean 사용
- DatabaseConfig는 MapperScan만 담당

## 최종 설정
- DataSource: egovframework.config.DataSourceProxyConfig
- TransactionManager: egovframework.config.EgovConfigTransaction.txManager
- MapperScan: DatabaseConfig

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
internalApi
박성영 1 month ago
parent c8bf89b2e7
commit 8757eb9e95

@ -1,57 +1,21 @@
package go.kr.project.api.config;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
/**
*
* MyBatis Mapper
*
* <p> .
* Spring Boot ,
* TransactionManager .</p>
* <p> MyBatis Mapper .</p>
*
* <ul>
* <li>DataSource: application.yml </li>
* <li>DataSource: egovframework (DataSourceProxyConfig)</li>
* <li>TransactionManager: egovframework (EgovConfigTransaction.txManager)</li>
* <li>SqlSessionFactory: MyBatis Spring Boot Starter </li>
* <li>TransactionManager: </li>
* <li>MapperScan: go.kr.project mapper </li>
* <li>MapperScan: go.kr.project egovframework mapper </li>
* </ul>
*/
@Configuration
@EnableTransactionManagement
@MapperScan({"go.kr.project.api.internal.mapper", "go.kr.project.**.mapper", "egovframework.**.mapper"})
public class DatabaseConfig {
/**
* .
*
* <p>DataSourceTransactionManager JDBC .
* @Transactional .</p>
*
* <p> (Propagation), (Isolation),
* @Transactional .</p>
*
* <p>:</p>
* <pre>
* {@code
* @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED)
* public void saveData() {
* // 트랜잭션 처리가 필요한 로직
* }
* }
* </pre>
*
* @param dataSource Spring Boot DataSource
* @return PlatformTransactionManager
*/
@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
}

Loading…
Cancel
Save