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>
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 |