JAVA/지식

[Java] Spring과 Spring Boot 의 차이점

우엥우아앙 2021. 12. 1. 01:57

IOC나 DI를 통해 의존성을 주입할 수 있기 때문에 다양한 스프링 모듈을 사용할 수 있다.

1. Spring 은?

  • web.xml
    • DispatcherServlet 클래스를 등록
    • url-pattern 태그에서는 요청에 대해서 응답받을 수 있도록 설정
    • 인코딩 타입이나 log4 설정
  • action-servlet.xml(dispatcherServlet.xml)
    • 뷰 리졸버는 컨트롤러에서 데이터를 받은 후 리턴할 때 뷰 이름을 지정해서 리턴
      <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
      	<property name="viewClass"> 
          	<value>org.springframework.web.servlet.view.JstlView</value> 
          </property> <property name="prefix" value="/browser/" /> 
          <property name="suffix" value=".jsp" /> 
      </bean> 
      <!-- URL Handler Mapping --> 
      <bean id="defaultHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
  • DataAccessContext.xml
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"> 
    <property name="driverClassName" value="${DB.driver}"/> 
    <property name="url" value="${DB.url}"/> 
    <property name="username" value="${DB.id}"/> 
    <property name="password" value="${DB.pw}"/> 
    <property name="defaultAutoCommit" value="false"/> 
</bean> 
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource"/> 
    <property name="configLocation" value="classpath:/mybatisConfig/mybatisConfiguration.xml"/> 
</bean> 

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> 
    <constructor-arg index="0" ref="sqlSessionFactory" /> 
</bean>
  • pom.xml
  • 수 많은 dependency 를 등록해주어야 한다.

2. Spring Boot 는?

  • Spring Boot Starter 로 바로 실행 가능
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-web</artifactId> 
</dependency>

spring-boot-starter-web은 다음과 같은 의존성이 추가됩니다.

🔹 starter-web

🔹 starter-webmvc

🔹 spring-boot-starter-tomcat

🔹tomcat-embed-core

🔹tomcat-embed-logging-juli

  • Embed Tomcat
    • 내장 톰캣
    • 독립적으로 실행 가능한 jar
  • AutoConfiguration
    • DispatcherServlet 같은 설정을 어노테이션을 이용하여 대신할 수 있도록 해준다.

3. 차이점

  • Embed Tomcat을 사용
  • starter을 통한 dependency 자동화
  • XML설정을 하지 않아도 됨
  • jar file을 이용해 자바 옵션만으로 손쉽게 배포가 가능
  • Spring Actuaor를 이용한 애플리케이션의 모니터링과 관리를 제공