개발자 끄적끄적

Spring Boots First Application 본문

웹프레임워크

Spring Boots First Application

햏치 2024. 5. 22. 17:02

<Spring Boot Maven Plugin>
- Spring Boot Maven Plugin은 다음과 같은 Spring Boot 지원을 제공한다
  1. 프로젝트를 실행가능한 jar 파일이나 war 파일로 패키지(package)
  2. Spring Boot 애플리케이션 실행
  3. Build 정보 생성
  4. 통합 테스트를 하기 전에 Spring Boot 애플리케이션을 시작




<Goals>
- Spring Boot Plugin은 다음과 같은 goal들을 가지고 있다
  - spring-boot:build-image : OCI imae로 패키지
  - spring-boot:build-info : build-info.properties 파일 생성
  - spring-boot:repackage : Repackage, Jar 나 War 파일로 재패키지
  - spring-boot:run : 현재 위치에서 애플리케이션을 실행
  - spring-boot:start : Spring 애플리케이션을 시작, "run" goal과 달리 애플리케이션 작동을 block하지 않고 다른 goal들을 허용
  - spring-boot:stop : "start" goal로 시작된 애플리케이션을 종료





<Packaging>
- "repackage" goal로 프로젝트를 실행가능한 jar/war 파일로 패키지한다






<Component Scan>
- 설정 정보(AppConfig.class)없이 자동으로 스프링 빈을 등록하는 컴포넌트 스캔 기능을 제공한다
- 스프링 빈을 등록할 때는 의존관게를 자바 코드로 직접 등록하는 방법과 컴포넌트 스캔과 자동 의존관계 설정하는 @Autowired를 사용하는 방법이 있다

- ex) @ComponentScan은 탐색 위치에 @Component가 붙은 모든 클래스를 스프링 빈으로 등록한다
@SpringBootApplication(
scanBasePackages={”kr.ac.hansung.cse.hellospringboot”,
“com.mypackage.springapp”, 
                          “kr.ac.hansung.iot”}  )
public class HelloSpringBootApplication {
    public static void main(String[] args) {
        SpringApplication.run(HelloSpringBootApplication.class, args);
    }
}






<Templates>
- 템플릿(Templates)은 자바 코드를 삽입할 수 있는 HTML형식의 파일이며, 일반적으로 많이 사용하는 방식이다
- 스프링부트에서 사용할 수 있는 템플릿 엔진에는 Thymeleaf, Mustache, Groovy, Freemarker, Velocity등이 있다





<템플릿 엔진>
- 코드 제너레이션 또는 시스템에서 만들어 놓은 이메일 템플릿에 파라미터만 넣어 변경하는 등 여러 가지 상황에 맞게 사용할 수 있다





<Application Properties>
- By default, Spring Boot will load properties from ☆"application.properties"
- ex)
# Can add Spring Boot properties
server.port=9000

# set context path
server.servlet.context-path=/helloSpringBoot  -->http://localhost:9000/helloSpringBoot/customer


# logging.level.<logger-name>=<level>
logging.level.kr.ac.hansung=debug
//logging level : trace, debug, info, warn, error

# add our own custom properties
app.professor=Namyun Kim
app.course=Web Framework
-> custom은 객체에 있는 필드에 바인딩 해준다

ex) 
#configure my props

app.professor= Namyun Kim
app.course=Web Framework
일 때, ☆"@Value"라는 Annotation을 사용

@RestController
public class HelloWorldController {

    @Value("${app.professor}")
    private String professorName;

    @Value("${app.course}")
    private String courseName;

    …
}


'웹프레임워크' 카테고리의 다른 글

Spring data JPA  (0) 2024.05.29
Spring Boot  (1) 2024.05.16
RestAPI와 예외상황 처리  (0) 2024.05.08