티스토리 뷰
728x90
스프링에 대해 학습하다보니 내가 "웹 체스 미션"에서 사용하고 있는 스프링 부트는 그냥 스프링과 어떻게 다른 것인지 궁금해졌다. 최범균님의 "초보 웹 개발자를 위한 스프링5 프로그래밍 입문"과 스프링 부트 공식 문서로 학습한 내용을 짧게 정리했다. 스프링 부트에 대해 깊게 학습했다기보다는 "스프링 부트의 @SpringBootApplication 어노테이션이 이런 기능을 해주는거구나~" 정도로 학습한 내용을 정리한 것으로 앞으로 추가적으로 학습해야하는 부분들이 참 많아 보인다..😅
스프링 부트는 최소한의 작업으로 스프링 프로젝트를 시작할 수 있도록 돕는다.
@SpringBootApplication 어노테이션을 사용해 이러한 스프링 부트의 핵심 기능을 사용할 수 있다.
@SpringBootApplication
Many Spring Boot developers like their apps to use auto-configuration, component scan and be able to define extra configuration on their "application class".
필요한 설정을 자동으로 등록한다.
SpringApplication.run()을 이용해서 이 어노테이션을 붙인 클래스를 실행하면 여러 필요한 설정을 자동으로 등록해준다.
@SpringBootApplication
public class SpringChessApplication {
public static void main(final String[] args) {
SpringApplication.run(SpringChessApplication.class, args);
}
}
- spring-boot-starter-web 모듈을 사용하면 웹 관련 자동 설정 기능을 활성화한다.
- spring-webmvc, JSON, Validator, 내장 톰캣 등 웹 개발에 필요한 의존을 설정한다.
- DispatcherServlet, 디폴트 서블릿, Jackson 등 스프링 MVC를 위한 다양한 구성 요소에 대한 설정을 자동 생성한다.
- spring-boot-starter-jdbc 모듈을 사용하면 DB관련 자동 설정 기능을 활성화한다.
- JDBC 연결에 필요한 DataSource, JdbcTemplate, 트랜잭션 관리자 등을 자동으로 설정한다.
- DataSource를 생성할 때 필요한 JDBC URL 정보는 application.properties 파일에서 읽어온다.
build.gradle 파일
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
runtimeOnly 'mysql:mysql-connector-java'
}
컴포넌트 스캔 기능을 활성화한다.
@Component, @Controller, @RestController, @Service, @Repository 등 컴포넌트 스캔 대상 어노테이션을 붙인 클래스를 빈으로 자동 등록한다.
application.properties
application.properties 파일에 설정 정보를 담을 수 있다. JDBC URL, 웹 캐시 시간과 같은 설정을 변경하고 싶을 때 이 설정 파일에 설정을 추가해주면 된다.
앞으로 좀 더 학습하게 되는 내용이 있으면 꼭 추가하자!!😎
728x90
댓글
공지사항
최근에 올라온 글