study/Spring
1_Spring(흐름, root-context 설정)
스파이크12
2020. 2. 19. 08:42
@ handlerMapping(요청받은 URL로 어떤 Controller?->method() 지정) 연결
root-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<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 https://www.springframework.org/schema/beans/spring-beans.xsd">
<!--
root-context.xml 파일은 서버 구동 시 web.xml을 거쳐 바로 로딩 되는 즉,
pre-loading 되는 설정 파일이다.
따라서 서버 구동 시 바로 셋팅 해야 되는 내용들을 작성하는 설정 파일로 보통
DB연결 설정, 트랜잭션 처리, AOP 관련, 내 외부 모듈 연동 등등 스프링에서
제공하는 서비스들에 대한 설정을 관리한다.
-->
<!-- Root Context: defines shared resources visible to all other web components -->
<!--
1. DataSource 등록
- DataSourece는 서버 구동 시 동시에 연결이 되어야 하며
연결 정보 설정 시 root-context 제일 위쪽이 작성
-> 그래야지만 아래 작성되는 설정들에서 DataSource를
참조해서 사용 가능!
-->
<!-- destroy-method="close"
-> 주어진 세션을 자동으로 close 하라는 의미 -->
<!--
dbcp:database connection pool
class="org.apache.commons.dbcp.BasicDataSource"
-> 다운받은 dbcp 라이브러리의 기본데이터소스 등록
destroy-mehtod : "close" 자동으로 session.close해라
bean : spring객체로 ioc(제어의역전)
-->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
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="spring"/>
<property name="password" value="spring"/>
<property name="defaultAutoCommit" value="false"/>
</bean>
<!-- 마이바티스 SqlSession 등록하기 (xml 방식으로 bean 등록)-->
<!-- SqlSessionFactoryBean: MyBatis 설정파일을 바탕으로
SqlSessionFactory를 생성한다. Spring Bean으로 등록해야 한다. -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- mybatis-config.xml 설정 불러오기 -->
<property name="configLocation"
value="classpath:mybatis-config.xml"/>
<property name="dataSource" ref="dataSource"/>
<!-- 위에 만들어진 dataSource를 참조 -->
<!-- 속성2가지로 sqlSessionFactoryBean을 만듬 -->
</bean>
<!-- SqlSessionTemplate :
SQL 실행이나 트랜잭션 관리 역할(Spring bean으로 등록해야함.)-->
<!-- 우리가 사용하던 SqlSession과 같음 -->
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg ref="sqlSessionFactoryBean"/>
</bean>
</beans>