Spring +Mybaits+Spring Boot+Spring Cloud

Spring

组件:

Spring Core:核心类库,提供IOC服务;

Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);

Spring AOP:AOP服务;

Spring DAO:对JDBC的抽象,简化了数据访问异常的处理;

Spring ORM:对现有的ORM框架的支持;

Spring Web:提供了基本的面向web的总和特性,例如多方文件上传;

Spring MVC:提供面向Web应用的Model-View-Controller实现。

IOC,DI AOP

IOC就是控制反转,是指创建对象的控制权的转移,以前创建对象的主动权转给spring容器管理,

描述创建类的方法,服务或对象通过配置一些哪个地方需要服务,再用spring容器把它连接到一起

**DI依赖注入,**即应用程序在运行时依赖IOC容器来动态注入对象需要的外部资源。

**AOP,**一般称为面向切面,作为面向对象的一种补充,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽象并封装为一个可重用的模块,

对方法的增强,像事务啊,在不改动原代码的情况下就可以得到增强,通过动态代理去实现

Spring AOP的动态代理主要有两种方式,JDK动态代理和CGLIB动态代理:

Bean在IOC里面初始化的过程:

根据配置及反射机制加载这个类,再把这类的实例化,反射获取它的属性,set到对象中,放到容器里面,用是时候再通过注解去取

想要获取一个bean通常通过BeanFactory的getBean方法来获取。进入到getBean方法中。getBean调用了doGetBean方法。

设计模式

(1)单例模式:Bean默认为单例模式,运行时域,一个类只有一个实例对象,如果一个对象创建和销毁消耗资源的,可以使用单例模式,只创建一次,重复使用

创建方式:1.懒汉2.饿汉3.静态内部类4.枚举

1.懒加载 2.线程安全 3.不可以人为反射破坏(可以不用考虑,人为因素)

Spring +Mybaits+Spring Boot+Spring Cloud_第1张图片

(2)工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象的实例。

(3)代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术。

(4)模板方法:用来解决代码重复的问题,比如RestTemplate、JmsTemplate、JpaTemplate。

你可能感兴趣的:(work,spring,java,后端)