2929 <body >
3030 <section name =" SqlSessionFactoryBean" >
3131 <p >
32- 在基本的 MyBatis 中,session 工厂可以使用 SqlSessionFactoryBuilder 来创建 。而在
33- MyBatis-Spring 中,则使用 SqlSessionFactoryBean 来替代 。
32+ 在基础的MyBatis中,通过SqlSessionFactoryBuilder来创建SqlSessionFactory 。而在
33+ MyBatis-Spring中,则使用SqlSessionFactoryBean来创建 。
3434 </p >
3535
3636 <subsection name =" Setup" >
3737 <p >
38- 要创建工厂 bean,放置下面的代码在 Spring 的 XML 配置文件中:
38+ 要创建工厂bean,将下面的代码放到Spring的XML配置文件中:
3939 </p >
4040 <source ><![CDATA[
4141<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
4242 <property name="dataSource" ref="dataSource" />
4343</bean>]]> </source >
44- < p >
45- 要注意 SqlSessionFactoryBean 实现了 Spring 的 FactoryBean 接口(see < a href = " https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#beans-factory-extension-factorybean " >the Spring documentation(Core Technologies -Customizing instantiation logic with a FactoryBean-)</ a >)
46- 这就说明了由 Spring 最终创建的 bean 不是 SqlSessionFactoryBean 本身,。
47- 而是工厂类的 getObject()返回的方法的结果 。这种情况下, Spring 将会在应用启动时为你
48- 创建 SqlSessionFactory 对象,然后将它以 SqlSessionFactory 为名来存储。在 Java 中,
49- 相同的代码是 :
50- </p >
44+
45+ < p >
46+ 需要注意的是SqlSessionFactoryBean实现了Spring的FactoryBean接口(可查看官方文档< a href = " https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#beans-factory-extension-factorybean " >通过工厂bean自定义实例化逻辑</ a >)。这意味着由Spring最终创建的bean并不是SqlSessionFactoryBean本身,
47+ 而是工厂类(SqlSessionFactoryBean)的 getObject()方法的返回结果 。这种情况下, Spring
48+ 将会在应用启动时为你创建SqlSessionFactory的bean对象,然后将其名字设为sqlSessionFactory。
49+ 在 Java 中的等效代码如下 :
50+ </p >
5151
5252 <source ><![CDATA[
5353@Bean
@@ -58,47 +58,40 @@ public SqlSessionFactory sqlSessionFactory() {
5858}]]> </source >
5959
6060 <p >
61- 在一般的 MyBatis-Spring 用法中,
62- 你不需要直接使用 SqlSessionFactoryBean 或和其对
63- 应的 SqlSessionFactory。相反,session 工厂将会被注入到 MapperFactoryBean 或其它扩
64- 展了 SqlSessionDaoSupport 的 DAO(Data Access Object,数据访问对象,译者注)中。
61+ 在通常的MyBatis-Spring 用法中,你不需要直接使用SqlSessionFactoryBean或对
62+ 应的SqlSessionFactory。相反,session的工厂bean将会被注入到MapperFactoryBean或其它扩
63+ 展了SqlSessionDaoSupport的DAO(Data Access Object,数据访问对象,译者注)中。
6564 </p >
6665 </subsection >
6766
6867 <subsection name =" 属性" >
6968
7069 <p >
71- SqlSessionFactory 有一个单独的必须属性,就是 JDBC 的 DataSource 。这可以是任意
72- 的 DataSource,其配置应该和其它 Spring 数据库连接是一样的 。
70+ SqlSessionFactory有一个唯一的必要属性:用于JDBC的DataSource 。这可以是任意
71+ 的DataSource对象,它的配置应该和其它Spring数据库连接是一样的 。
7372 </p >
7473
7574 <p >
76- 一个通用的属性是 configLocation,它是用来指定 MyBatis 的 XML 配置文件路径的。
77- 如果基本的 MyBatis 配置需要改变,
78- 那么这就是一个需要它的地方。
79- 通常这会是<code >< settings> </code >
75+ 一个通用的属性是configLocation,它用来指定MyBatis的XML配置文件路径。
76+ 如果需要修改MyBatis的基础配置,那么它就有用了。通常这会是<code >< settings> </code >
8077或<code >< typeAliases> </code >的部分。
8178 </p >
8279
8380 <p >
84- 要注意这个配置文件不需要是一个完整的 MyBatis 配置 。确切地说,任意环境, 数据源
85- 和 MyBatis 的事务管理器都会被忽略。SqlSessionFactoryBean 会创建它自己的 ,使用这些
86- 值定制 MyBatis 的 Environment 时是需要的 。
81+ 需要注意的是,这个配置文件并不需要是一个完整的MyBatis配置 。确切地说,任何环境, 数据源
82+ 和MyBatis的事务管理器都会被忽略。SqlSessionFactoryBean会创建它自己的 ,使用这些
83+ 值定制MyBatis的Environment时是需要的 。
8784 </p >
8885
8986 <p >
90- 如果 MyBatis 映射器 XML 文件在和映射器类相同的路径下不存在,那么另外一个需要
91- 配置文件的原因就是它了。使用这个配置,有两种选择。第一是手动在 MyBatis 的 XML 配
92- 置文件中使用< mappers> 部分来指定类路径。第二是使用工厂 bean 的 mapperLocations 属
93- 性。
87+ 如果MyBatis在映射器类对应的路径下不存在与之相应的映射器XML文件,那么此时也需要配置文件。
88+ 有两种方式来使用配置:第一种是是手动在MyBatis的XML配置文件中使用< mappers> 部分来
89+ 指定类路径;第二种是使用工厂bean的mapperLocations属性。
9490 </p >
9591
9692 <p >
97- mapperLocations 属性使用一个资源位置的 list。
98- 这个属性可以用来指定 MyBatis 的 XML
99- 映射器文件的位置。
100- 它的值可以包含 Ant 样式来加载一个目录中所有文件,
101- 或者从基路径下
93+ mapperLocations属性使用list来表示资源位置。这个属性可以用来指定MyBatis的XML
94+ 映射器文件的位置。它的值可以包含Ant样式来加载一个目录中所有文件,或者从基路径下
10295递归搜索所有路径。比如:
10396 </p >
10497
@@ -109,17 +102,16 @@ mapperLocations 属性使用一个资源位置的 list。
109102</bean>]]> </source >
110103
111104 <p >
112- 这会从类路径下加载在 sample.config.mappers 包和它的子包中所有的 MyBatis 映射器
113- XML 文件。
105+ 这会从类路径下加载在sample.config.mappers包和它的子包中所有的MyBatis映射器XML文件。
114106 </p >
115107
116108 <p >
117- 在容器环境管理事务中,一个可能需要的属性是 transactionFactoryClass。请参考
118- 第四章(4.2 节)中来查看有关部分 。
109+ 在容器环境管理事务中,一个可能需要的属性是transactionFactoryClass。请参考第四章(4.2 节)中来查看有关部分。
110+ 如果你正在使用多数据库功能,那么就需要设置databaseIdProvider属性 。
119111 </p >
120112
121113 <p >
122- In case you are using the multi-db feature you will need to set the <code >databaseIdProvider</code > property:
114+ 如果你使用了多数据库,那么需要设置 <code >databaseIdProvider</code >属性:
123115 </p >
124116
125117 <source ><![CDATA[
@@ -142,9 +134,9 @@ XML 文件。
142134
143135 <p >
144136 <span class =" label important" >NOTE</span >
145- Since 1 .3.0, <code >configuration</code > property has been added.
146- It can be specified a <code >Configuration</code > instance directly without MyBatis XML configuration file.
147- For example :
137+ 自1 .3.0版本开始添加 <code >configuration</code >属性。
138+ 它能够在没有MyBatis对应的XML配置文件的情况下直接指定 <code >Configuration</code >实例。
139+ 举个栗子 :
148140 </p >
149141
150142 <source ><![CDATA[
0 commit comments