Spring Boot Directory 구성

2021. 4. 19. 22:38개발/Spring

반응형

build.gradle

plugin, dependencies 등을 정의하여 build 구성을 나열하는 곳이다.

자세한 내용은 What it Gradle? 를 참고하면 좋다.

간단하게 요약하면, Build Automation 을 도와주는 녀석이다.

 

 

src 폴더

spring boot에서 initializing project 를 진행하면 2개의 폴더가 자동으로 생겨난다.

- src/main
- src/test

main은 말 그대로 현재 프로젝트의 main이 되는 코드를 넣는 곳이고,

test에는 프로젝트를 테스트해 볼 수 있는 코드가 담기는 공간이다.

 

 

 

main 아래에는 2개의 폴더로 다시 나뉘게 된다.

/src/main/java
/src/main/resources

java에는 java package가 담기게되고,

resources에는 static resource를 담는 곳이다.

 

 

 

/src/main/java/com/example/demo/Application.java

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Demo1Application {
    public static void main(String[] args) {
        SpringApplication.run(Demo1Application.class, args);
    }
}

java package 내부의 application.java 를 확인해보면, 위와 같이 담겨져있다.

 

 

 

 

@SpringBootApplication 라는 낯선 annotation이 붙어있다.

컨트롤 마우스왼쪽버튼을 눌러 뭐하는 녀석인지 찾아보면 아래와 같이 나온다.

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
		@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {

3개의 Annotation이 눈에 띄어 찾아보았다.

 

@SpringBootConfiguration 스프링부트의 설정을 나타내는 Annotation
@EnableAutoConfiguration 자동 설정을 도와주는 Annotation
@ComponentScan @Component, @Service, @Repository, @Controller Annotaion이 달린 class들을 자동으로 Scan하여 Bean으로 등록해주는 역할을 한다.

 

 

정리해보면, application.java는 spring boot를 시작하기위한 설정을 단 몇줄안에 끝내두었다.

 

 

 

반응형