목록전체 글 (19)
탐구개발

@Transactional 방식 코드에서 아래와 같이 수정해줍니다. @Transactional(readOnly=true) 대신 사용할 수 있는 @TransactionalSlave 어노테이션을 추가했습니다. TransactionalSlave @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface TransactionalSlave { } RoutingDatabaseAspect.java @Aspect @Component public class RoutingDatabaseAspect { @Before("@annotation(TransactionalSlave)") public void setCurrentDataSourceN..

TransactionManager 설정 필요여부 master, slave 분기를 위한 데이터베이스 설정 시 DataSource 뿐 아니라 JpaTransactionManager도 함께 설정하는 예제가 많았습니다. @EnableTransactionManagement @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class}) @EnableJpaRepositories(basePackages = {"com.test.somoimapi"}) (생략) @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory(@Qualifier("dataSource") DataSource da..

Docker MySQL 1대 추가 - 3307포트 docker run --name mysql-container-slave -e MYSQL_ALLOW_EMPTY_PASSWORD=true -d -p 3307:3306 mysql:8.0.22 MySQL 데이터베이스 서버간의 Replication 설정은 따로 하지 않았고 데이터베이스 서버 2대를 띄워놓기만 했습니다. Application.java 수정 spring: datasource: master: driver-class-name: com.mysql.cj.jdbc.Driver jdbc-url: "jdbc:mysql://localhost:3306/somoim_db?autoReconnect=true&useUnicode=true&characterEncoding=UT..