generate 하기
intelliJ 실행
- 아까 다운받고 압축풀었던 폴더의 Build.gradle을 Open한다.
main 문 실행
8080 포트가 열렸다.
package hello.hellospring;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HelloSpringApplication {
public static void main(String[] args) {
SpringApplication.run(HelloSpringApplication.class, args);
}
}
일단, HelloSpringApplication 은 프로젝트의 메인 클래스로서 SpringApplication.run()
으로 인해 내장 WAS(Web Application Server)를 실행한다. 스프링 부트 자체 내부에 톰켓이 설치가 되어있으므로 스프링부트로 만들어진 .jar 파일
을 그대로 실행시키면 알아서 html로 변환이되어 서버가 실행이 된다.
Java Annotation인 @SpringBootApplication
는 무슨 일을 할까?
프로그램을 돌리기 위해 필요한 객체를 만들어야하는데(빈으로 등록하고 (Spring IoC 컨테이너가 관리하는 자바 객체를 빈(Bean)이라고 함)) 그러기위한 annotation을 묶어둔것이 @SpringBootApplication
이다.
들어가보면 아래와 같이 나온다.
@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) })
여기서 가장 중요한 3가지는 @SpringBootConfiguration
, @EnableAutoConfiguration
, @ComponentScan
인데 @SpringBootApplication
을 없에고 이 3가지를 붙여도 작동을 한다.
결론
프로그램에 필요한 객체들을 빈
으로 등록하기 위해서 해야할 설정들을 해주는 annotation
이다.
참고
https://velog.io/@kjh950330/TIL-DAY-5-%ED%86%B0%EC%BA%A3%EC%9D%B4%EB%9E%80https://velog.io/@kjh950330/TIL-DAY-5-%ED%86%B0%EC%BA%A3%EC%9D%B4%EB%9E%80
https://ssons.tistory.com/62#:~:text=%EB%82%B4%EC%9E%A5%20WAS%EB%9E%80%20%EB%B3%84%EB%8F%84%EB%A1%9C%20%EC%99%B8%EB%B6%80,%ED%8C%8C%EC%9D%BC%EB%A1%9C%20%EC%8B%A4%ED%96%89%ED%95%98%EB%A9%B4%20%EB%90%A9%EB%8B%88%EB%8B%A4.
https://mungto.tistory.com/447