17. 외부로부터 설정 받기(property)
Github에 프로젝트를 올릴때 데이터 베이스 접속 연결과 같은 민감한 정보는 다른 사람이 열람해서는 안되는 정보라 형상관리에서 제외한 상태로 올리게 된다.
.gitignore
**/application-mysql.yml **/application-mysql.properties
|
데이터베이스 접속을 위한 properties 만들기
application-mysql.properties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/{테이블}serverTimezone=UTC&characterEncoding=UTF-8 spring.datasource.username={Username} spring.datasource.password={Password}
|
TransactionManagementConfigurer은 Spring에서 데티어베이스 연결을 지원한다.
DBConfig.java
@Configuration @PropertySource(value = "classpath:/application-mysql.properties") public class DBConfig implements TransactionManagementConfigurer {
@Value("${spring.datasource.driver-class-name}") private String driverClassName;
@Value("${spring.datasource.url}") private String url;
@Value("${spring.datasource.username}") private String username;
@Value("${spring.datasource.password}") private String password;
@Bean public DataSource dataSource(){ return DataSourceBuilder.create() .driverClassName(driverClassName) .url(url) .username(username) .password(password) .build(); }
@Override public TransactionManager annotationDrivenTransactionManager() { return new DataSourceTransactionManager(dataSource()); } }
|