danbibibi
article thumbnail

web.xml

  • 설정을 위한 설정파일 (여러 xml파일을 인식하도록 각 파일을 가리켜 줌)
  • 최초로 WAS가 최초로 구동될 때, 각종 설정을 정의 ( 서블릿, 한글 인코딩 등)
<!-- 404 에러 발생시 보여줄 페이지 정의 -->
<error-page>
    <error-code>404</error-code>
    <location>/error/404</location>
</error-page>

<!-- STS 에서 기본적으로 제공해주는 설정 파일 외에 추가로 XML 파일 지정 -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>

<!-- 한글 인코딩 -->
<filter>
    <filter-name>encoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encoding</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<!-- Processes application requests -->
<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/appServlet/servlet-context.xml
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping> <!-- URL을 서블릿 이름에 연결 -->
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<!-- ContextLoaderListener 로드 -->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

 

servlet-context.xml

  • 요청과 관련된 객체를 정의
  • 웹 관련 설정 ex) view, 파일 업로드 등

* 다음과 같은 설정들이 들어간다!!

<!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven />

<!-- component-scan -->
<context:component-scan base-package="com.danbi.test.controller, 
		com.danbi.test.interceptor" />
        
<!-- 경로 매칭 -->
<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>
    
<!-- /regist 요청에 대해 sessionInterceptor를 등록 -->
<interceptors>
    <interceptor>
        <mapping path="/regist" />
        <beans:ref bean="sessionInterceptor" />
    </interceptor>
</interceptors>

<!-- multipart resolver (file upload 처리) -->
<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <beans:property name="defaultEncoding" value="UTF-8"></beans:property>
</beans:bean>

namespace에서 사용하고자 하는 것들을 체크해주면 자동완성이 된다~!

 

root-context.xml

  • view와 관련되지 않은 객체를 정의
  • 비웹 관련 설정 ( Service, Repository(DAO), DB등 비즈니스 로직 관련 설정 )

* 다음과 같은 설정들이 들어간다!! (주로 DB 관련!!)

<!-- model scan (DB관련 : repo, service 등) -->
<context:component-scan base-package="com.danbi.test.model"/>

<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/DBNAME?serverTimezone=UTC"/>
    <property name="username" value="ID"/>
    <property name="password" value="PWD"/>
</bean>

<!-- Transaction 처리를 위한 transactionManager를 등록 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <constructor-arg ref="dataSource"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>

<!-- MyBatis를 사용하기 위한 sqlSessionFactory를 등록 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="mapperLocations" value="classpath*:mappers/**/*.xml" />
    <!-- mapper에서 사용할 DTO들의 기본 패키지를 등록 -->	
    <property name="typeAliasesPackage" value="com.danbi.test.model.dto"/>
</bean>
<!-- mybatis에서 제공하는 scan 태그를 통해 repository interface들의 위치를 지정 -->
<mybatis:scan base-package="com.danbi.test.model.dao"/>

 

위 내용을 한 눈에 쉽게 확인할 수 있는 그림인 거 같아서 가져왔다!

'WEB > back-end' 카테고리의 다른 글

REST API 실습  (0) 2023.04.26
REST(Representational State Transfer) API  (0) 2023.04.26
Spring-MyBatis 실습  (0) 2023.04.24
MyBatis, MyBatis-Spring 설정  (0) 2023.04.24
Spring File Upload (Apache Commons FileUpload)  (1) 2023.04.24
profile

danbibibi

@danbibibi

꿈을 꾸는 시간은 멈춰 있는 것이 아냐 두려워하지 마 멈추지 마 푸른 꿈속으로