목차
아래와 같이 접속정보가 Java코드 내에 있어 git으로 공유되면 여러 문제가 발생할 수 있다.
@Bean(destroyMethod = "close")
public HikariDataSource dataSource() {
HikariDataSource dataSource = new HikariDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test");
dataSource.setUsername("testuser");
dataSource.setPassword("test1234");
return dataSource;
}
DB 접속정보를 다른 파일에 저장하기
db.properties파일 생성
src/main/resources/db.properties 파일을 생성하고 데이터베이스 접속 정보를 입력한다.
db.driver=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
db.url=jdbc:log4jdbc:mysql://localhost:3306/test
db.username=testuser
db.userpassword=test1234
이때 앞의 속성 명은 자유롭게 변경해도 무관하다. 이후에 찾아서 쓰기 쉽도록 설정하자!
참고로 username등은 PC의 username등과 혼동되어 에러가 날 수 있으니 가급적 스프링이 착각할 수 없도록 속성명을 설정하자.
properties파일을 빈으로 등록하기
//property 설정
@Bean
public static PropertySourcesPlaceholderConfigurer property() {
PropertySourcesPlaceholderConfigurer property = new PropertySourcesPlaceholderConfigurer();
property.setLocations(new ClassPathResource("db.properties"));
return property;
}
Config파일에 DB 접속정보를 담을 필드 생성
public class MVCConfig implements WebMvcConfigurer{
//DB접속정보
@Value("${db.driver}")
private String driver;
@Value("${db.url}")
private String url;
@Value("${db.username}")
private String username;
@Value("${db.userpassword}")
private String userpassword;
... ...
}
@Value Annotation을 사용하여 아까 설정한 속성값들을 필드에 맵핑한다.
이때 @Value annotation은 롬복의 @Value가 아니라 spring의 value이니 주의하자
Datasource에 properties파일로 만든 필드를 사용해서 DB 접속정보 입력하기
@Bean(destroyMethod = "close")
public HikariDataSource dataSource() {
HikariDataSource dataSource = new HikariDataSource();
dataSource.setDriverClassName(driver);
dataSource.setJdbcUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(userpassword);
return dataSource;
}
.gitignore에 properties파일을 추가하기
.gitignore로 해당 파일이 깃에 등록되지 못하게 한다!
'컴퓨터공학 > 스프링' 카테고리의 다른 글
Spring Project 생성하고 환경설정까지! (0) | 2023.12.11 |
---|---|
Spring의 처리 흐름 (0) | 2023.12.11 |
[Slf4j] 스프링의 디버깅 도구 Slf4j Library (1) | 2023.12.10 |
[log4j.xml] 스프링의 디버깅 로그 자세히 띄우기 (1) | 2023.12.10 |
테스트 도구 Junit (0) | 2023.12.07 |