2.3. Spring 应用上下文设置
为了让 MyBatis 和 Spring 配合使用,你至少需要在 Spring 的应用上下文中定义如下 2 个东西:
一个 SqlSessionFactory 及至少一个映射接口。
在 MyBatis-Spring 中,一个 Sql 会话工厂 Bean 被用来创建一个 Sql 会话工厂。每个 MyBatis 应
用中心围绕着一个 Sql 会话工厂。你用 Sql 会话中心去创建一个 Sql 会话。一旦你有一个会话后,你
用它来执行语句的映射,提交或者回滚,最终,在你什么都不需要后,你就可以关闭会话。有了
MyBatis-Spring ,你不需要直接使用 Sql 会话工厂,因为你的 beans 能够被一个线程安全的 Sql 会话
所注入,能够自动地进行提交,回滚及关闭会话操作,而这些只需要 Spring 的事务配置中进行配置即
可。
为了配置工厂 bean,你需要将如下代码写到 XML 配置文件中:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation"
value="classpath:config/mybatisV3-config.xml"/>
</bean>
不知你是否注意到了 Sql 会话工厂需要一个数据源没有。它可以是任何数据源,而且应该想 Spring 的
数据源连接一样被配置。Podcastpedia.org 的数据源配置示例如下:
<!-- ========================= DATASOURCE DEFINITION via JNDI
========================= -->
<!-- When resourceRef is true, the value of jndiName will be prepended with
server’s JNDI directory. Consequently, the actual name used will be
java:comp/env/jdbc/pcmDB. -->
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"
scope="singleton">
<property name="jndiName" value="java:comp/env/jdbc/pcmDB" />
<property name="resourceRef" value="true" />
</bean>
想要了解我的 Tomcat JDBC 连接池的开发配置,或是了解数据源在开发/测试环境中配置,可以
查看我的源代码。