mybatis工作流程+IOC和AOP+springMVC工作流程

mybatis工作流程
1、加载mybatis全局配置文件(数据源、mapper映射文件等),解析配置文件,MyBatis基于XML配置文件生成Configuration,和一个个MappedStatement(包括了参数映射配置、动态SQL语句、结果映射配置),其对应着<select | update | delete | insert>标签项。
2、SqlSessionFactoryBuilder通过Configuration对象生成SqlSessionFactory,用来开启SqlSession。
3、SqlSession对象完成和数据库的交互:
a、用户程序调用mybatis接口层api(即Mapper接口中的方法)
b、SqlSession通过调用api的Statement ID找到对应的MappedStatement对象
c、通过Executor(负责动态SQL的生成和查询缓存的维护)将MappedStatement对象进行解析,sql参数转化、动态sql拼接,生成jdbc Statement对象
d、JDBC执行sql。
e、借助MappedStatement中的结果映射关系,将返回结果转化成HashMap、JavaBean等存储结构并返回。

线程的状态
在这里插入图片描述
jvm内存结构图
在这里插入图片描述
事务的四个特性(ACID)
在这里插入图片描述
IOC和AOP
IOC:控制反转,是一种设计思想,将原本在程序中需要手动创建的对象交给spring框架来管理。(本来对象A需要对象B,需要用对象A来创建对象B,而现在,反转了,对象的创建全部由spring框架来完成,A需要对象B,不需要自己创建,由spring在特定的时候提供给A所需要的对象B,这就是IOC,控制反转,即把自己创建对象反转成交个程序帮忙创建对象。)IOC是由依赖注入实现的(DI),很大程度上简化了应用的开发。

AOP:面向切面编程,就是将那些公共的部分封装起来,减少代码的冗余,降低模块耦合度。AOP是基于动态代理实现的,就是为了生成动态代理对象。代理对象(就是访问对象,不会直接去访问,而是通过访问代理对象,间接的去访问要访问的那个对象。比如,如果一个领导A要找C做一件事,A是公司最大领导,B是C的部门领导,那么A直接找B就行,B就叫做代理对象,让C专注做他应该做的那件事即可,其他琐碎的事情交给B去做,B在这里充当的就是代理对象的作用。 )是目标对象的扩展,代理对象可以调用目标对象。动态代理的目的就是对原有代码进行增强。spring实现aop的原理主要分为两种动态代理和cglib代理,如果目标对象是实现接口,就是用动态代理,如果没有实现接口就是用cglib代理。AOP里的名词如下:
Joinpoint(连接点):就是指目标对象中可以增强的方法,即上述的save(),delete(),update(),query()。
Pointcut(切入点):指目标对象中已经增强的方法。
Advice(通知/增强):指增强的代码,即上述的System.out.println(“打开事务”);与System.out.println(“提交事务”);
Target(目标对象):被代理的对象。
Weaving(织入):将通知应用到连接点形成切入点的过程。
Proxy(代理):将通知织入到目标对象,形成代理对象。
Aspect(切面):切入点+通知

springMVC工作流程
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值