2019. 4. 20. 19:49ㆍ[공부] 영상/스프링 부트 강의
스프링 부트에서도 설정 파일을 XML로도 불러들일 수 있는데, 자바 기반의 설정 파일을 사용하는 것을 권장한다. XML 을 가능하면 쓰지말자.
- XML을 사용하는 방식은 XML 파일을 만들고(ex. myConfiguration.xml) MainApplication에 @ImportResource("myConfiguration.xml") 을 해주면된다.
- 자바 기반의 설정 파일 등록은 MyConfiguration 클래스에 @Configuration 를 달아주고 MainApplication에 @EnableAutoConfiguration 또는 @SpringBootApplication을 달아주면 된다.
* @EnableAutoConfiguration의 기능
exclude : 특정 configuration을 부르지 않게 할 수 있다.
Bean을 정의 하는 방법은 스프링에서 제공하는 모든 기능을 사용할 수 있다. @Component, @Service, @Repository, @Controller는 자동으로 빈으로 등록해준다. 빈의 @Autowired는 1. 생성자 주입, 2. Setter 주입, 3. 필드 주입 가능하면 1번을 사용하자. 생성자 주입을 사용하면 Autowired 받는 멤버 변수에 final을 사용 할 수 있다. 이 때 Lombok의 @ArgsConstructor를 사용하면 좋다.
@SpringBootApplication
@ComponentScan + @EnableAutoConfiguration + @SpringBootConfiguration ... 등을 하도 많이 쓰니까 하나로 모아둔 Annotation
@SpringBootTest
@SpringBootApplication이 달려있는 클래스를 알아서 찾아서 @ComponentScan, @EnalbueAutoConfiguration들을 수행하여 @Autowired를 성공적으로 할 수 있도록 해준다.
Jar 기반의 패키징 방법
방법 1. IDE에서 실행 하기 : MainApplication 클래스의 main method를 실행.
방법 2. java -jar taret/myapplication-0.0.1-SNAPSHOT.jar
빌드 방법에대한 이야기이므로 넘어가자
Maven dependency optional
<dependency>
...
<optional> true </optional>
...
</dependency>
내 프로젝트를 누군가가 모듈로서 추가할 때 해당 의존성 모듈을 추가할지 말지를 선택할 수 있다.
안써도 되는 기능들
Spring-boot-devtools
- 기본 설정 : 1. H2 DB tool을 자동으로 띄워준다.
- 기본 설정 : 2. develop 환경에서 Cache 기능 disable : 캐시가 production으로 동작할 때는 굉장히 도움 되지만, 개발 환경에서 사용하기에는 변경사항이 즉시 반영이 안되므로 불편하다. 개발 환경에서는 자동으로 disable 되도록 해준다.
- Restart : class path에 있는 파일들을 모니터링 해서 값이 변할 때마다 application 을 restart 하지 않아도 자동으로 restart 하도록 도와준다. (class path에 없는 파일을 수정하더라도 application이 restart 하게 할 수도 있다.) 더불어 application 을 restart 되면 어떤 리소스가 변경되었는지 log를 찍어준다.
- Reload : 스프링 부트 restart는 2개의 base class loader, restart class loader를 이용해서 restart한다. restart가 충분히 빠르지 않다면 Reloading 을 사용하는 것을 추천한다.
- Global setting : spring-boot-devtools.properties를 이용하여 devtools에 변경사항을 반영할 수 있다. class path에 있는 모든 파일에 로딩된다.
- Remote Application : 원격으로 Application을 실행 할 수 있다. 메이븐 패키징 할 때 dev tool 이 자동으로 빠지는데 remote application을 사용하려면 pom.xml에 빌드 관련 설정을 넣어줘야한다. Remote application 은 Security hole 이 될 수 있으므로 이 설정은 실제 production 환경에서 쓰지 않는 것을 권장한다.
'[공부] 영상 > 스프링 부트 강의' 카테고리의 다른 글
스프링 부트 강의 정리 (13~14 : HttpMessageConverter, Static content) (0) | 2019.04.21 |
---|---|
스프링 부트 강의 정리 (11~12 : Profile, Log) (0) | 2019.04.21 |
스프링 부트 강의 정리 (8~10 : Properties 읽어들이기) (0) | 2019.04.21 |
스프링 부트 강의 정리 (6~7 : SpringApplication) (0) | 2019.04.20 |
스프링 부트 강의 정리 (1~3 : 인트로, Jar, MainApplication) (0) | 2019.04.20 |