5-1. Spring Boot Properties

khs·2022년 3월 7일
0

Java Spring Boot

목록 보기
22/34
post-custom-banner

1. 설정 파일 작성

지금까지 개발을 했을 때 본인읜 컴퓨터 내부에서 모든 것이 진행된다. jdk, mysql, intelliJ 등을 갖춰서 본인의 컴퓨터에 세팅을 한다. 여기에 맞춰서 어떤 데이터베이스를 사용할 지 등을 정한다.

그러나 실제 서비스를 상용단계로 가는 경우에는 다른 방식으로 적용을 한다.

첫번째로는 서버 컴퓨터에 jdk를 활용해서 자바를 실행하는 방법이 있고 두번째로는 도커를 활용해서 컨테이너로 애플리케이션을 만들어서 활용하는 방법, 세번째로는 (요즘은 거의 다) 클라우드 서비스를 활용한다.

=> 어디에서 어떤 식으로 애플리케이션을 실행하느냐에 따라서 설정이 바뀐다.

참고

2. Spring Boot Profiles

yml 파일을 살펴보자. 아래와 같이 수정을 했는데

먼저 가장 위 부분은 어떤 profile을 사용할 것인지 지정을 하는 역할을 한다. 위의 코드에서 test이면 on-profile이 test인 설정으로 실행된다. 위와 같이 하나의 파일에 여러 설정들을 실행시킬 수 있다.

우리의 프로젝트에는 아직 h2와 관련된 라이브러리가 없기 때문에 build.gradle에서 dependencies를 추가해준다. (19번째 줄)

그리고 실행하면 아래와 같이 정상적으로 profile이 설정되는 것을 알 수 있다.

위처럼 profile이 docker 컨테이너일 때 실행하는 것을 기준으로 설정도 가능하다. 즉 하나의 파일에서 여러 설정이 가능하다.

그리고 파일 분리도 가능하다.

이렇게 디렉토리를 나누고

application-local.yml 에서는 아래와 같이 작성하고

application-test.yml 에서는 아래와 같이 작성하고

application.yml 에서는 아래와 같이 작성한다면

active 에 작성된 profile명을 이름으로 갖고 있는 yml파일의 설정으로 실행된다. (파일 이름을 application-profile명.yml로 짓는다.)

프로젝트 실행 시 오른쪽 탭에서 Gradle을 누르고 아래와 같은 항목에서 boot.jar를 더블클릭하면


왼쪽 프로젝트에 build\libs\jpa-0.0.1-SNAPSHOT.jar 파일이 생기고

java -jar .\build\libs\jpa-0.0.1-SNAPSHOT.jar

터미널에서 위와 같이 명령어를 입력하면 프로젝트를 실행시킬 수 있다.

가장 기초적인 스프링부트를 배포할 때는 jar파일을 만들어서 다른 컴퓨터에 실행하는 방식을 취한다.

3. Configuration을 통한 bean 생성

지금까지 스프링 부트에 전달을 해준 bean들은 전부 class의 형태로 제작되어 왔다.

만약 외부에 있는 라이브러리(또는 본인이 직접 만든 class)를 ioc 컨테이너의 관리를 받게하기 위해서 bean으로 등록하려면 과정이 복잡하고 무엇보다 귀찮다..

그래서 스프링에서는 두 가지 방법이 있는데 @Configuration과 @Bean이 있다.

먼저 외부 라이브러리인 구글 라이브러리 gson을 가지고 온다. build.gradle 에 18번째 줄 추가.

새로운 클래스인 DemoConfig.java를 만들고 아래와 같이 작성한다.

그러면 이제 gson()함수의 반환값인 Gson()은 스프링 ioc컨테이너에 넘겨주게 된다.

그렇다면 controller에서 @Autowired를 통해서 가져올 수 있다.

@Configuration : 설정파일을 만들기 위한 애노테이션 or Bean을 등록하기 위한 어노테이션이다.
개발자가 직접 개발한 클래스를 Bean으로 등록하고자 하는 경우에는 @Component 어노테이션을 활용하면 된다.




지금까지 다룬 설정들은 스프링부트가 필요로 하는 설정들이다. 마지막으로 스프링부트가 사용하는 설정이 아니라 어플리케이션을 진행하기 위해서 필요한 설정들을 넣는 방법에 관련한 사진을 첨부하면서 마친다.

application.yml 에 추가

profile
권혁상입니다. 행복코딩^_^
post-custom-banner

0개의 댓글