Intro
snap shot 버전은 테스트 버전이기 때문에 피한다.
generate 해서 zip 파일을 받고 이클립스에서 existing maven project로 import하면 된다.
java 버전이 1.8이고 이클립스를 사용하는 경우 pom.xml에서 오류가 나는데
해결 법은 pom.xml에서
<properties>
<java.version>1.8</java.version>
<maven-jar-plugin.version> 3.1.1 </maven-jar-plugin.version>
</properties>
으로 수정하고 maven update를 한다.
근데 나는 자바 버전을 11로 해놔서 오류는 없었음.
이전과 다르게 프로젝트가 아니라 클래스 파일을 선택해야 함
이게 나오면 성공
REST Controller
Server Port already in use
라는 오류가 나오는 경우
엑스 아이콘 두 개짜리 클릭하고 왼쪽에 빨간 네모 terminated를 누르고 다시 실행 ㄱㄱ
장점은 congfiguration 을 일일히 할 필요 없이 쉽게 시작할 수 있다는 점
dependency conflict 가 없다는 점
내장된 HTTP 서버가 있어서 쉽게 시작 가능
maven wrapper files
mvnw는 무슨 역할을 할까?
maven을 설치할 필요가 없고 경로에 제공할 필요가 없다.
maven에 자동적으로 맞는 버전 라이브러리를 다운로드하고 실행한다.
maven.cmd는 윈도우를 위한 파일이며
내용은 mvnw clean compile test 이다
만약에 maven이 설치되어 있으면 삭제해도 된다.
autoconfigure.SpringBootApplication은
Auto configuration, Component Scanning, Additional configuration 을 가능하게 한다.
@EnableAutoConfiguration @ComponentScan @Configuration 이다.
SpringApplication은 application context를 생성하고 모든 beans를 등록하며 embedded server를 실행한다.
Component Scanning을 하려면 Main Spring Boot application class의 서브 패키지에 둬야 한다.
패키지 이름은 아무 이름 넣어도 됨
스캔할 base package list를 명시할 수도 있다.
static 폴더에는 HTML, CSS, JavaScript, images 등등 파일이 있다.
application.properties 이 파일에 정보를 쓰고
그냥 블러서 쓰면 된다.
어플리케이션이 JAR 파일로 package 되더라도 src/main/webapp directory 를 사용하지 말 것
maven directory 이지만 WAR packaging 으로 작동한다.
JAR를 생성해도 빌드툴에 의해 무시된다.
template 엔진에 따라 auto configuration을 포함한다.
FreeMarker, Thymeleaf, Mustache 등등
Spring Boot가 resource/templates 폴더에서 불러온다.
Spring boot unit test class 는 Spring Initializer 에 의해 생성된다.
Spring Boot Starter Parent
maven 설정 기본값 java 버전이나 utf-encoding 등등
기본 컴파일러 레벨은 java 8
오버라이드해서 버전 12로 고칠 수 있음
UTF-8 소스 인코딩
dependencies 에서 spring-boot-starter-* 가 붙은 건 버전을 적지 않아도 된다.
parent에서 버전을 설정하면 상속받기 때문
Spring boot dev tool
코드가 업데이트되면 어플리케이션을 자동 재시작
Spring boot acuator
어플리케이션 상태 관찰과 관리할 때 사용
어플리케이션 모니터링을 위해 endpoint
1. pom.xml 에 spring-boot-starter-acuator를 추가한다.
2. /health 와 /info
3. application.properties를 수정한다.
2021년 5월 20일 이후로 스프링 부트 2.5에서 /info endpoint가 더 이상 기본으로 나타나지 않음
그래서 설정해줘야 함
management.endpoints.web.exposure.include=health,info
을 application.properties에 추가한다.
실행 로그를 보면 추가 된 걸 볼 수 있다.
/info를 봤는데 없다.. 추가해주자.
/actuator/beans
모든 스프링 빈 리스트
spring boot internal beans 뿐만 아니라 custom beans
/actuator/threaddump
어플리케이션에서 작동하는 모든 스레드 리스트
/actuator/mappings
request mapping 리스트
어떤 request mapping이 가능한 지 찾을 때 유용하다.
Spring Security
모든 정보를 보여주고 싶지 않을 때 security를 이용한다.
1. pom.xml에서 security를 추가한다.
2. actuator endpoint 에 관한 security 인증
어플리케이션을 작동하면 로그인 페이지가 나온다.
아까 스프링 부트 프로젝트를 작동하면서 받은 패스워드를 넣는다.
이제서야 홈페이지로 넘어간다.
3. disable endpoint
application.properties 에 위와 같이 구성한다.
작동 안한다.
스프링부트 공식 문서 페이지
Spring Boot Reference Documentation
'컴퓨터공학 > Spring & Hibernate' 카테고리의 다른 글
Spring> Spring Boot> Application property (0) | 2021.10.06 |
---|---|
Spring> Spring Boot> Command line (0) | 2021.10.06 |
Spring> Spring REST> CRUD Database 2 (0) | 2021.09.22 |
Spring> Spring REST> CRUD Database (0) | 2021.09.21 |
Spring> Spring REST> Exception Handling (0) | 2021.09.21 |