
17. 외부로부터 설정 받기(property)
Github에 프로젝트를 올릴때 데이터 베이스 접속 연결과 같은 민감한 정보는 다른 사람이 열람해서는 안되는 정보라 형상관리에서 제외한 상태로 올리게 된다.
.gitignore
| **/application-mysql.yml**/application-mysql.properties
 
 | 
데이터베이스 접속을 위한 properties 만들기
application-mysql.properties
| spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.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());
 }
 }
 
 |