오늘은 MyBatis를 통해서 DB와 소통할때 어떤 순서로 흐름이 돌아가는지 보여주고자 한다.
1. /~~~형태로 request가 들어오게 되고 그것을 ~Controller에서 대응한다.
2. ~Controller(@Controller)는 ~ServiceImpl(@Service)을 호출한다.
3. ~ServiceImpl(@Service)은 ~DAO(@Repository)를 호출한다.
4. ~DAO(@Repository)는 ~-mapper.xml을 호출해서 수행한다.
5. 반대방향으로 쭉 돌아오는 것이다.
<?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: defines shared resources visible to all other web components -->
<bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://[DB주소]/[DB이름]"/>
<property name="username" value="DB아이디"/>
<property name="password" value="DB비밀번호"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<property name="mapperLocations" value="classpath:mappers/*-mapper.xml"/>
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
</beans>