ex12 a - mybatis와 spring
ex12 b -
<!-- Mybatis SqlSessionFactory 준비하기 -->
<bean id="sqlSessionFactory"
class="com.eomcs.spring.ioc.ex12.b.SqlSessionFactoryFactoryBean">
<property name="configLocation"
value="com/eomcs/spring/ioc/ex12/b/mybatis-config.xml"/>
</bean>
여기서 id=sqlSessionFactory는
@Override
public SqlSessionFactory getObject() throws Exception {
InputStream in = Resources.getResourceAsStream(configLocation);
return new SqlSessionFactoryBuilder().build(in);
}
여기서 getObject가 리턴한 값을 그 이름(sqlSessionFactory)으로 저장한다는 뜻이다.
자바쓰면 스프링은 기본탑재
mybatis-spring은 config.xml에서 내가 직접 설정한 파일을 쓰지 않는다.
SqlSessionFactoryBean이 만드는건 SqlSessionFactory객체이다. SqlSession이 아니다!
database connection pool : dbcp
ex12 d - dao구현체를 드디어 없앴다.
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- DAO 인터페이스가 선언된 패키지를 지정한다. -->
<property name="basePackage"
value="com.eomcs.spring.ioc.ex12.d" />
</bean>
얘가 바로 인터페이스를 주면 Dao구현체를 알아서 만들어주는 코드이다.
ApplicationContext iocContainer = //
new AnnotationConfigApplicationContext(AppConfig.class); config class대신ㄴ 경로를 string으로 직접 지정할 수 있다.
하지만 경로를 string으로 직접 지정할 경우 @Configuration애노테이션을 Appconfig자바 파일에 붙여주어야 한다.
AppConfig.class
으로 지정할 땐 @Configuration를 붙이지 않아도 된다.
프록시 객체 만들기
이제 드디어 자바프로젝트에서 dao구현체 없앤당
where절 조건이 마지막 방문일이 오늘날짜보다 작을때만 오늘날짜로 업데이트한다.