Spring VS Spring Boot

Drumj·2022년 8월 16일
0

스프링과 스프링부트의 차이점을 알아보자!

이하.
Spring Framework == Spring
Spring Boot == Boot


1. Dependency

Spring의 경우 Dependency를 설정해줄 때 설정 파일이 매우 길고, 모든 Dependency에 대해 버전 관리도 하나하나 해줘야 한다.
그래서 하나의 버전을 올리려고 할 때 다른 Dependency에도 영향을 미쳐 버전 관리에 어려움이 많았다고 한다.

코드로 한번 알아보도록 하자.

  • Spring
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.3.5</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.5</version>
</dependency>
  • Boot
implementation 'org.springframework.boot:spring-boot-starter-web'

Spring Boot Starter?
Boot 를 사용할 때 편하게 Dependency를 추가할 수 있게 하는 것!
바로 위의 코드에서도 보이는

spring-boot-starter-*

이 부분이라고 할 수 있다.
Starter의 더 자세한 설명은 민지킴님 벨로그에 있음!


2. Configuration

Spring 의 경우 Configuration 설정도 매우 길고 모든 어노테이션 및 빈 등록 등을 설정해줘야 한다고 한다.
Boot는 application.properties 파일이나 .yml 파일에 설정하면 끝!

역시 코드로 알아보자 (Thymeleaf 사용을 위해 설정하는 법)

  • Spring
@Configuration
@EnableWebMvc
public class MvcWebConfig implements WebMvcConfigurer {

    @Autowired
    private ApplicationContext applicationContext;

    @Bean
    public SpringResourceTemplateResolver templateResolver() {
        SpringResourceTemplateResolver templateResolver = 
          new SpringResourceTemplateResolver();
        templateResolver.setApplicationContext(applicationContext);
        templateResolver.setPrefix("/WEB-INF/views/");
        templateResolver.setSuffix(".html");
        return templateResolver;
    }

    @Bean
    public SpringTemplateEngine templateEngine() {
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.setTemplateResolver(templateResolver());
        templateEngine.setEnableSpringELCompiler(true);
        return templateEngine;
    }

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        ThymeleafViewResolver resolver = new ThymeleafViewResolver();
        resolver.setTemplateEngine(templateEngine());
        registry.viewResolver(resolver);
    }
}
  • Boot
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'

3. 배포

Spring으로 개발한 어플리케이션의 경우, war 파일을 Web Application Server 에 담에 배포
Boot 의 경우 jar 파일로 배포 Tomcat 이나 Jetty 같은 내장 WAS를 가지고 있기 때문


추가. Spring Boot의 AutoConfiguration

@SpringBootApplication
@ComponentScan

  • @Component, @Controller, @Repository, @Service

@EnableAutoConfiguration

이 부분은 밑의 참고 자료를 읽어보는게 좋을 것 같다!!
위 코드들과 내용도 참고자료의 내용들입니다.

참고 자료
나의 공부 저장소님의 블로그

0개의 댓글