카테고리 없음

SPRING Framework 초기 설정 관련 자료

최종군 2024. 10. 3. 21:44

 

pom.xml : 경로 /프로젝트/pom.xml - 

groupId -> 프로젝트가 속한 그룹이나 조직을 식별하는 고유한 ID 
artifactId -> 프로젝트 자체를 식별하는 이름을 이야기한다. 
name -> 주로 프로젝트의 설명이나 이름을 명시한다. 
version -> 프로젝트의 버전을 이야기한다. 
packaging-> 패키징 유형을 선택 [war]

 


<modelVersion>4.0.0</modelVersion>
<groupId>com.kh</groupId>
<artifactId>spring</artifactId>
<name>springProject</name>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

 

<properties>
<java-version>11</java-version>
<org.springframework-version>5.3.33</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>

 

자주 사용되 것들을 변수처럼 정의해두고 다른 곳에서 재사용하는 것 

 

Dependencies : 

태그 안에서 이 프로젝트가 사용하는 다양한 외부 라이브러리들을 선언한 것 

 

Build 설정 <build> 태그에서는 프로젝트의 빌드와 관련된 설정이 포함

 

<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java-version}</source>
<target>${java-version}</target>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.3</version>
</plugin>
</plugins>
</build>

web.xml :   경로 : spring/src/main/webapp/WEB-INF/web.xml

 

  • Spring 컨텍스트 초기화:
    • <context-param> 요소를 통해 Spring의 루트 애플리케이션 컨텍스트를 정의합니다. 여기서 root-context.xml과 spring-security.xml 파일을 불러옵니다.
    • <listener> 요소는 ContextLoaderListener를 사용하여 Spring 컨텍스트를 초기화합니다.
  • DispatcherServlet 설정:
    • <servlet> 요소에서 DispatcherServlet을 정의하고, 해당 서블릿이 사용할 컨텍스트 설정 파일인 servlet-context.xml을 지정합니다. 이 서블릿은 HTTP 요청을 처리하는 주요 컴포넌트입니다.
    • <load-on-startup> 요소는 서블릿이 애플리케이션 시작 시 즉시 로드되도록 설정합니다.
  • URL 매핑:
    • <servlet-mapping> 요소를 통해 DispatcherServlet이 모든 URL 경로(/*)를 처리하도록 설정합니다.
  • 인코딩 필터 설정:
    • <filter> 요소는 CharacterEncodingFilter를 정의하여 요청과 응답의 문자 인코딩을 UTF-8로 설정합니다.
    • 이 필터는 모든 요청(/*)에 대해 적용됩니다.
  • 기타 기능:
    • forceEncoding 파라미터는 인코딩 충돌 시에도 강제로 UTF-8로 설정하도록 합니다.

 

<!-- 옵션1. 인코딩방식을 UTF-8 -->
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>

<!-- 옵션2. 혹시 충돌이 나더라도 강제로 인코딩방식을 UTF-8 -->
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>

 

 

 

root-context.xml :  경로 /프로젝트명/src/main/webapp/WEB-INF/spring/root-context.xml

데이터베이스 연결 설정 :  

BasicDataSource 빈을 통해서 Oracle 데이터베이스에 연결하기 위한 설정을 정의한다. 

driverClassName, 

url,

username,

password 

속성을 사용해 데이터베이스 연결 정보를 제공한다. 

 

 <bean class="org.apache.commons.dbcp.BasicDataSource" id="dataSource" destroy-method="close">
  <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
  <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/>
  <property name="username" value="c##spring"/>
  <property name="password" value="spring"/>
 </bean>

 

예시) 

MyBatis 설정:

<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory">
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<property name="dataSource" ref="dataSource"/>
</bean>

 

 

SqlSessionTemplate: MyBatis에서 

SQL을 실행하고 매퍼 인터페이스와 상호 작용할 때 사용하는 클래스

<bean class="org.mybatis.spring.SqlSessionTemplate" id="sqlSession">
<constructor-arg ref="sqlSessionFactory"/>
</bean>

constructor-arg: 위에서 설정한 sqlSessionFactory 빈을 생성자 인자로 전달하여 
MyBatis가 데이터베이스와 상호작용할 수 있도록 한다. 
* property : setter를 통한 주입
 * constructor-arg : 생성자를 통한 주입 

 

servlet-context.xml : 

/프로젝트명/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml

 

주요 역할 : 

XML 네임스페이스 및 스키마 정의 

 

Spring MVC 어노테이션 기반 컨트롤러 활성화 : 

Spring MVC의 @Controller 애노테이션을 활성화하는 설정

 

 

<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <beans:property name="prefix" value="/WEB-INF/views/" /> <beans:property name="suffix" value=".jsp" /> </beans:bean>

 

<context:component-scan>

태그는 특정 패키지 내의 빈(Bean)들을 자동으로 검색하여

스프링 컨테이너에 등록하는 설정

 

 

 

<context:component-scan base-package="com.kh.spring"/>

 

Component Scan

  • <context:component-scan> 태그는 특정 패키지 내의 빈(Bean)들을 자동으로 검색하여 스프링 컨테이너에 등록하는 설정입니다.
  • 여기서는 com.kh.spring 패키지 내에서 컴포넌트(@Controller, @Service, @Repository 등)들을 자동으로 스캔하여 등록합니다.