SSM框架的相关知识

文章详细阐述了Spring框架中的关键概念,包括AOP的代理模式增强、循环依赖的处理、bean的装配方式、设计模式的应用、事务管理和隔离级别、线程安全问题、SpringBoot的自动装配原理以及Mybatis与Hibernate的对比和Mybatis的工作流程。
摘要由CSDN通过智能技术生成

目录

1、AOP的代理模式

2、循环依赖

3、spring装配bean的方式

4、spring中使用到的设计模式

5、Spring支持的事务管理

6、Spring的事务隔离级别

7、bean的线程安全问题

8、SpringBoot的自动装配原理

9、Mybatis 与 Hibernate 对比

10、Mybatis的工作原理


1、AOP的代理模式

        实质是通过对具体类的代理的增强(前置、后置、环绕、最终、异常、引入)进而实现对具体类的功能的增强。

2、循环依赖

        概念:多个bean之间相互依赖,形成一个闭环;

        解决办法:构造器的循环依赖:抛出异常

                          单例模式下的setter循环依赖:通过三级缓存处理循环依赖

                          其他模式:无法处理

3、spring装配bean的方式

        ·自动化装配bean

        ·在java中显式配置装配bean

        ·在xml进行显式配置装配bean

        ·基于注解的装配

4、spring中使用到的设计模式

        ·单例模式(所有bean默认都是单例的)

        ·工厂模式(通过beanfactory和ApplicationContext来创建bean对象)

        ·代理模式(AOP的实现就是通过代理模式来实现)

        ·模板方法模式(Spring的jdbcTemplate和hibernateTemplate 等以Template结尾的对数据库操作的类,他就使用到了模板方式)

        ·包装器设计模式(连接多个数据库,根据用户不同的需求切换不同的数据源)

        ·观察者模式(定义对象间一对多的依赖关系,当一个对象状态发生改变时,所有依赖他的对象都会得到通知被自动更新)

        ·适配器模式(AOP的增强或通知使用到了适配器模式,Spring MVC也用到了适配器模式适配Controller)

5、Spring支持的事务管理

        ·声明式事务(配置文件中配置;推荐)

        ·编程式事务(在代码中硬编码,获取事务状态;不推荐)

6、Spring的事务隔离级别

        这也是数据库的事务隔离级别

        未提交读、已提交读、可重复读、可串行化

7、bean的线程安全问题

        bean本身不是线程安全的,且Spring容器未提供bean的线程安全策略。对于原型bean,每次创建一个bean,不存在数据共享。对于单例bean,所有线程共享一个单例实例bean,但却是无状态的,不会执行查询以外的操作,只关注方法本身。

8、SpringBoot的自动装配原理

        概括:通过注解或者一些简单的配置就能在SpringBoot的帮助下实现某块功能;

        自动装配的步骤:

                ·基于java代码的Bean配置

                ·自动配置条件依赖

                ·Bean参数获取

                ·Bean的发现(从所有jar包中读取META-INF/spring.factories文件)

                ·Bean的加载(加载到spring容器进行管理)

        个人理解:SpringBoot通过@EnableAutoConfiguration开启自动配置,加载spring.factories中注册的各种AutoConfiguration类,当某个AutoConfiguration类满足其生效条件时,就会实例化该类并将其注入spring容器中,完成依赖框架的自动配置。     

9、Mybatis 与 Hibernate 对比

        ·适用场景:Hibernate在使用简单的增删改查时性能更佳,而Mybatis更加灵活,在复杂的数据库操作时使用更好

        ·开发工作量:Hibernate只需自己关注业务流程,无需关注sql的生成;而Mybatis需要自己编写sql代码

        ·sql优化:Hibernate在代码更简洁,但sql代码不便修改(破坏其简洁性);而Mybatis是手动编写更容易自己调整

        ·对象管理:Hibernate有自己的一套完善方案;而Mybatis需要自己对对象进行详细的管理 

        ·安全性:Hibernate有着数据库对应的异常处理机制;而Mysql需要开发者自己注意和处理

10、Mybatis的工作原理

        ·读取配置文件       

        ·加载映射文件

        ·构建sqlSessionFactory会话工厂

        ·构建sqlSession会话对象

        ·Executor执行器根据SqlSession传递的参数动态的生成需要执行的SQL语句操作数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值