13강(프로퍼티 로컬, 개발, 운영 설정값 클래스로 관리)
Resourse 폴더에 신규폴더(globals)를 만든다. global-local.propertis 파일 생성
GolobalConfig 클래스를 만들고 ApplicationContext, ResourceLoader 클래스 추가
getActiveProfiles()는 String[] 배열인데, 일단 1(index 0)번째만 가져와서 씀. ActiveProfiles가 null, length값이 없을 수도 있기 때문에 디폴트 값은 local로 지정하고, isNotEmpty를 사용하면 된다.
이제 프로퍼티 파일을 읽어오기 위해 경로를 만듦.
String.format을 사용해서 activeProfile을 추가, resourceLoader.getResource를 활용. PropertiesLoaderUtiles 클래스를 사용.
Private String uploadFilePath를 추가한다. 그럼 프로퍼티의 uploadFile.path를 간단하게? 변수에 저장됨.
public(접근제한이 없는) get 메소드를 만듭시다.
FileController? 뜬금없이 새로운 클래스가 등장한다. 어디에서 찾아야하나.. 강의에선 알려주지 않은 클래스다. 편집하다 소스 부분을 빠트렸다고 한다.
강의 댓글에 소스가 올라와 있는데 현재 단계에는 없는 것들이 너무 많다 어캐저캐 찾아서 수정을 해야 할 듯..
정확하진 않지만 이게 지금 단계의 FileController 같다. 이제 다시 강의를 따라해보자.
java.io.FileNotFoundException: class path resource [globals/globals-local.properties] cannot be opened because it does not exist
오류가 뜬다. Properties 파일이 없다라고 하는데
한참 찾은 결과 오타가 문제였다. global인데 globals라고 적혀 있었음. 근데 이렇게 해도 결과값에 원하는 로그가 나오지 않는다.
한참 삽질한 결과 로그가 떴다.. 업로드 부분에서 실행을 해야 하는데 엄한 곳을 건드리고 있었다.
현재는 local로 서버가 올라와서 local 경로가 나온다.
개발 서버가 경로로 나오게 만들기
요렇게 잘 뜬다.
한 가지 더 강사님이 사용하는 방식
로컬, 개발, 운영환경 동일하게 구현한 소스가 있는데 개발, 로컬에서는 동작하지 않고 운영에서 동작해야 할 때. Spring에서 제공하는 기능도 있지만
강사님 같은 경우는 있는 클래스를 활용한다.
Local, dev, prod 각각 activeProfile을 비교한다.
메소드를 만들고 필요한 곳에서 is메소드를 활용하여 조건처리 하면 됨.