SpringBoot에서 Mysql Datasource 세팅하기.
필자는 JPA, Gradle로 진행했다.(Mybatis같은 환경도 아래 세팅으로 사용가능 할 듯)
Gradle.build
dependencies {
...
implementation ("mysql:mysql-connector-java")
implementation "org.springframework.boot:spring-boot-starter-data-jpa"
...
}
JPA 사용시에만 JPA 의존을 추가하자
DatabaseConfig.java
@Slf4j
@EnableJpaAuditing
@Configuration
public class DatabaseConfig {
@Bean
public PasswordEncoder passwordEncoder() {
return PasswordEncoderFactories.createDelegatingPasswordEncoder();
//return NoOpPasswordEncoder.getInstance();
}
// public DataSource dataSource() {
// log.info("dataSource setup...");
// EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
// EmbeddedDatabase db = builder
// .setType(EmbeddedDatabaseType.H2)
// .build();
// return db;
// }
@Bean
public DataSource dataSource() {
log.info("dataSource setup...");
DataSource dataSource = DataSourceBuilder.create()
.url("jdbc:mysql://DB_HOST_IP:PORT/DB명?useUnicode=yes&characterEncoding=UTF-8")
.username(ID)
.password(PASSWORD)
.build();
return dataSource;
}
...
}
기존에 사용하던 embeded datasource를 비활성화하고 datasource 정보를 작성해준다.
url과 username, password은 각자의 환경에 맞게 설정한다.
?useUnicode=yes&characterEncoding=UTF-8 부분은 mysql utf-8설정에 대응하기 위한 설정
The server time zone value xxxx is unrecognized or represents more than one time zone 등과 같은 에러가 나오는 분은 lteawoo.tistory.com/32
위의 글 참고하여 세팅하고 해결하자. 시스템시간을 인식 못하여서 발생하는 것.
위의 세팅까지 마쳤으면 테스트해보면 동작하는 것을 볼 수 있다.
'Spring' 카테고리의 다른 글
Querydsl Tech Talk 정리 (0) | 2021.08.10 |
---|---|
Thymeleaf - 표준 표현식 (0) | 2021.01.27 |
Spring Cloud Gateway - API Gateway 맛보기 (5) | 2020.10.19 |
Spring Security OAuth2 - Authorization endpoint (0) | 2020.10.07 |
Spring Jpa - Query DSL + Gradle 6 설정 (3) | 2020.09.21 |