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