mybatis配置详解

<context:property-placeholder location="classpath:jdbc.properties"/>
引入外部JDBC的配置文件 classpath指向jdbc.properties 的路径
<context:component-scan base-package="com.bluethink.onegis.resource"  use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
<context:include-filter type="annotation" expression="org.springframework.stereotype.Component"/>
</context:component-scan>
base-package指向包的绝对路径
默认扫描指定包下的全部 @Component, exclude-filter 指定的不扫描,include-filter指定的扫描, include-filter和


exclude-filter 没有指定的仍然扫描。
use-default-filters用来指示是否自动扫描带有@Component、@Repository、@Service和@Controller的类。默认为true,即默


认扫描
如果想要过滤其中这四个注解中的一个,比如@Repository,设置use-default-filters="false"
 <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
exclude-filter表示除了这些都可以进行扫描;include-filter表示包含的才能够扫描


<bean id="fileDirectory" class="com.bluethink.onegis.resource.model.file.FileDirectory">
<property name="rootDirectory" value="${file.root_directory}"/>
</bean>
文件上传下载, 




<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driverClass}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="initialPoolSize" value="${cpool.initialPoolSize}"/>  
        <property name="minPoolSize" value="${cpool.minPoolSize}"/> 
        <property name="maxPoolSize" value="${cpool.maxPoolSize}"/>
        <property name="maxIdleTime" value="${cpool.maxIdleTime}"/>
        <property name="checkoutTimeout" value="${cpool.checkoutTimeout}"/>
        <property name="acquireIncrement" value="${cpool.acquireIncrement}"/>
</bean>




配置数据源 com.mchange.v2.c3p0.ComboPooledDataSource是所用的数据库连接方式
destroy-method="close"的作用是当数据库连接不使用的时候,就把该连接重新放到数据池中,方便下次使用调用.


<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.bluethink.onegis.resource.model"/>
</bean>
SqlSessionFactoryBean 实现了 Spring 的 FactoryBean 接口,这就说明了由 Spring 最终创建的 bean 不是 


SqlSessionFactoryBean 本身。而是工厂类的 getObject()返回的方法的结果。这种情况下,Spring 将会在应用启动时为你创建 


SqlSessionFactory 对象,然后将它以 SqlSessionFactory 为名来存储。
ref代表引用数据类型,这里表示引用上面的上面的dataSource ,value代表基本数据类型
 mapperLocations:它表示我们的Mapper文件存放的位置,当我们的Mapper文件跟对应的Mapper接口处于同一位置的时候可以不


用指定该属性的值。
configLocation:用于指定Mybatis的配置文件位置。如果指定了该属性,那么会以该配置文件的内容作为配置信息构建对应的


SqlSessionFactoryBuilder,但是后续属性指定的内容会覆盖该配置文件里面指定的对应内容。
 typeAliasesPackage:它一般对应我们的实体类所在的包,这个时候会自动取对应包中不包括包名的简单类名作为包括包名的别


名。多个package之间可以用逗号或者分号等来进行分隔。(value的值一定要是包的全名)
 typeAliases:数组类型,用来指定别名的。指定了这个属性后,Mybatis会把这个类型的短名称作为这个类型的别名,前提是该


类上没有标注@Alias注解,否则将使用该注解对应的值作为此种类型的别名。(value的值一定要是类的完全限定名)


<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.bluethink.onegis.resource.mapper"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
MapperScannerConfigurer 自动扫描将Mapper接口生成代理注入到Spring
basePackage 属性是让你为映射器接口文件设置基本的包路径。 你可以使用分号或逗号 作为分隔符设置多于一个的包路径。每个


映射器将会在指定的包路径中递归地被搜索到。
配置sqlSessionFactoryBeanName是注入sqlSessionFactory,后面的value是SqlSessionFactory的bean的名字,也就是


sqlSessionFactory的id当我们的mapperscannerconfigurer启动的时候,可能会出现我们的jdbc.properties文件未被加载,这


样的话它拿到的DataSource就是错误的,因为像${jdbc.url}这类的属性还没有被替换掉,所以通过BeanName后处理的方式,当我


们去用我们的Mybatis的时候,它才会去找我们对应的sqlSessionFactory,为了防止它提前初始化我们的sqlSessionFactory .
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值