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는 이러한 복잡성을 줄이고, 많은 기본 설정을 제공하여 빠르게 개발을 시작할 수 있게 해줍니다.
'Spring > Spring Boot' 카테고리의 다른 글
6. War vs Jar 사용법 및 차이점 (0) | 2024.09.22 |
---|---|
5. @ConfigurationProperties 사용법 (1) | 2024.09.22 |
4. Profiles을 나눠서 사용하는 법 (0) | 2024.09.22 |
2. Spring VS Spring Boot의 차이 (1) | 2024.09.22 |