본문 바로가기
Spring/Spring Boot

1. Spring Boot 이전의 Spring을 생성시 필요한 의존성

by leek94 2024. 9. 22.
 

Spring Boot 이전에는 전통적인 Spring Framework 프로젝트를 설정하기 위해 여러 가지 설정 파일과 빌드 도구를 사용해야 했습니다. 이 과정을 조금 더 자세히 설명하면 다음과 같습니다:

1. pom.xml (Maven) 또는 build.gradle (Gradle)

  • Spring 프로젝트는 Maven 또는 Gradle을 빌드 도구로 사용합니다.
  • 프로젝트 의존성을 관리하기 위해 pom.xml(Maven) 또는 build.gradle(Gradle) 파일을 설정합니다.
     
    build.gradle (Gradle) 기본 설정 예시
plugins {
    id 'java'
}

group 'com.example'
version '1.0.0'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework:spring-context:5.3.9'
    // 기타 의존성들 추가
}

 

 

pom.xml (Maven) 기본 설정 예시:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>spring-app</artifactId>
    <version>1.0.0</version>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.9</version>
        </dependency>
        <!-- 기타 의존성들 추가 -->
    </dependencies>
</project>

2. web.xml (배포 설명자)

  • web.xml은 전통적인 Spring MVC 애플리케이션에서 필수적이었으며, 서블릿을 구성하는 데 사용되었습니다.
  • 이 파일은 WEB-INF/web.xml 경로에 위치하며, 서블릿 맵핑, 필터, 리스너 등을 설정합니다.
     
  • web.xml 기본 예시:
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

3. Spring 설정 파일 (applicationContext.xml 등)

  • Spring에서 빈(Bean)과 의존성 주입을 설정하기 위한 XML 설정 파일인 applicationContext.xml이 필요했습니다.
  • 이 파일에서 데이터베이스 연결, 트랜잭션 관리, AOP 설정, 기타 빈 설정 등을 정의할 수 있었습니다.
     
  • applicationContext.xml 예시:
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
        <property name="username" value="root"/>
        <property name="password" value="password"/>
    </bean>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="packagesToScan" value="com.example.domain"/>
    </bean>

</beans>

4. 기타 설정

  • log4j.xml 또는 logback.xml과 같은 로그 설정 파일이 필요했습니다.
  • 데이터베이스를 사용할 경우 jdbc.properties와 같은 설정 파일도 추가로 필요할 수 있습니다.

결론

Spring Boot가 등장하기 전에는 설정 파일과 의존성 관리를 수동으로 처리해야 했기 때문에 프로젝트 설정이 복잡하고 시간이 많이 걸렸습니다. Spring Boot는 이러한 복잡성을 줄이고, 많은 기본 설정을 제공하여 빠르게 개발을 시작할 수 있게 해줍니다.