SSM+Maven项目中spring-mybatis.xml配置解析

                      SSM+Maven项目中spring-mybatis.xml配置解析

我们在用框架的时候可能直接按照固定的模式来搭建项目,然后按照固定约定好的方式来解决问题。

比如我们处理前台的请求,只需要在对应的servlet路径上写上对应的value名称就ok。例如ajax请求的访问路径为:

http://localhost:8080/project/path/show然后我们根据路径就可以找到我们的servlet,处理请求,返回给前端处理结果。

其实在整个过程中spring框架为我们做了很多东西。包括项目启动之后通过标记注入bean,反射代理处理请求等。

可以了解我其他的博客:spring-mvc框架反射和动态代理处理请求

这篇我们主要介绍下spring-mybatis的配置信息。mybatis的配置主要是与数据的交互。建立dao层的访问数据库接口和

对应的xml文件的映射关系。先看看我们spring-mybatis的配置代码:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/context
                        http://www.springframework.org/schema/context/spring-context.xsd">
    
    <!-- 导入db配置 -->
    <context:property-placeholder ignore-unresolvable="true" location="classpath:spring/db.properties" />

    <!-- Druid -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driver}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>

    <!-- 注册SqlSessionFactoryBean -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <!-- 自动扫描mappers.xml文件 -->
        <property name="mapperLocations" value="classpath:mybatis/mapper/*.xml" />
        <!-- <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"></property> -->
    </bean>
    
    <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.qcbylearn.dao" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean>
    
</beans>

然后我们来看下各个标签的具体作用。我们从下面向上看:

 

我们知道每个声明的bean都是在加载的时候变成一个类的实例对象。可以通过bean的id来给类一个别名。spring容器

通过id找到这个类,然后生成实例。class指定要实例的类。

上面我们标注的第一行生成了一个org.mybatis.spring.mapper.MapperScannerConfigurer类的对象,这个类是我们引

入的mybatis-spring.jar中的类,这个对象有两个作用。

1、扫描项目对应的dao层,第二行的basePackage约定了要扫描的dao层的路径。

2、通过约定生成一个SqlsessionFactory对象。这个对象在下面进行了实例化。

上面一直在说约定。解释一下约定的概念:以上面的例子来说:我们的property的name为basePackage,就会扫描后

面对应的dao层。这种约定是框架设定的。你给框架标签对应的name,框架给你对应的功能。我们开发网站的时候前

后台交互也是一种约定。你向网站发出请求,给出对应的请求路径和参数。网站给你对应的正确响应。

这里生成的sqlSessionFactory实例又是类org.mybatis.spring.SqlSessionFactoryBean类的实例。

这个实例是sqlSession的工厂,可以生成sqlSession对象。可以用来连接数据库和扫描对应的映射xml文件。

 

这个dataSource实例用阿里云的数据库连接池的接口。然后加载把数据库连接的文件对应的属性加载进去。

整个流程配置好了之后就能访问数据库并且返回对应的数据了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值