Spring原理机制

1.Spring是一个开源的轻量级框架,他的核心主要有两部分组成IOC(Inversion of control)控制反转和AOP(Aspect oriented programming)面向切面编程.

 2.那么什么是IOC:调用类中的方法不是通过new它的对象来实现而是通过spring配置来创建类对象,而IOC又有两种操作方式(配置文件方式和注解方式),IOC底层运用的技术包括xml配置文件,dom4j解析xml,工厂设计模式,反射,这四种技术;接下来举个伪代码的例子,首先创建xml配置文件,配置要创建的对象类  

Spring原理机制_第1张图片

这就是ioc底层实现的原理

3.一个简单的ioc入门案例(导入jar包,创建类在类里面创造方法,创建spring配置文件bean.xml,写代码测试对象创建),引入schema约束,配置对象创建----加载spring配置文件创建对象ApplicationContext context = new classpathXmlAppliation("bean.xml");

 User u = (User)context.getBean("id对应的值");

4.spring的bean管理(配置xml方式)

bean实例化有是那种方式1.使用类的无参构造实现 常用的 2.使用静态工厂 3.使用实例工厂创建 ;bean标签常用的有id,calss,scope,其中scope默认值是单例的singleTon prototype多例的.举个最常用的属性注入

 5.spring的bean管理(注解方式)

 这种方式不需要在配置文件写bean配置,但是得开启注解扫描

然后在对应的类上面写注解就行.eg   @component(value="user") public class User{},然后属性注入也是用注解方式就是

public class User{

@AutoWired //就自动注入了属性值

private UserDao userDao;

}

一般我们配置文件和注解混合使用,创建对象时使用配置文件来创建,注入属性时用注解来实现

6. Aop的概念是什么

一个程序当需要扩展功能时不通过修改源代码,仅仅修改配置文件就能达到目的.aop才去横向抽取机制取代了传统纵向继承体系重复性的代码;那么它的原理是什么? 底层使用动态代理的方式实现

先不聊这么深,我先把后面的知识点复习完

7.aop的相关术语

pointcut(切入点) :在类里面有很多的方法被增强(加功能的逻辑),真正操作的那个方法叫做切入点

Advice(通知/增强):增强的逻辑 eg:加逻辑的操作

Aspect(切面):把增强的逻辑应用到具体的方法上,这个过程叫做切面  ed:加功能到add方法的这一过程

另外Aspect本身不是Spring的一部分,只是经常个spring一起搭配使用

8.spring 的Aop具体操作

 在spring中进行aop操作,使用aspectj实现,1.导入jar包 2.配置文件中引入aop约束

使用表达式配置切入点 execute(* 增强方法的全路径)

Spring原理机制_第2张图片

xml文件中配置aop的操作 

9.基于Aspect的注解aop

在spring的配置文件bean.xml中开启aop操作

@Aspect

public class MyBefore{

@Before(value="execute(* 增强方法的全路径)")

publi void before();

}

10.最后的补充

在web.xml中需要配置监听器和配置指定加载spring配置文件

监听器:

加载配置文件


--------------------- 
 

你可能感兴趣的:(Spring)