spring

spring简介

spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,mybati框架等组合使用。

IOC与DI

ioc控制反转。把对象的创建就给spring配置。DI依赖注入,向类里面的属性设置值。依赖注入不能单独存在,需要在ioc基础上完成。

属性注入的几种方式:

(1)构造函数注入

(2)set注入


(3)p名称空间

对象的注入:

spring_第1张图片

使用注解创建对象:

@Service,@Component,@Controller,@Repository

注解注入对象:

@Autowired   @Resource

AOP

Aspect Oriented Programming 面向切面编程。解耦是程序员编码开发过程中一直追求的。AOP也是为了解耦所诞生。

具体思想是:定义一个切面,在切面的纵向定义处理方法,处理完成之后,回到横向业务流.

AOP 主要是利用动态代理模式的技术来实现的
.

有接口的情况下使用jdk代理。没有接口的情况使用 cglib动态代理。

AOP操作术语

1  Joinpoint(连接点):在spring中这些连接点指的就是可以被增强的方法。

2.在类里面可以很多的方法增强,比如在实际的操作中,只是增强了类里面的add方法和update方法,实际增强的方法称为切入点。

前置通知:在方法执行前通知。

后置通知:在方法执行后通知。

异常通知:在方法出现异常

最终通知:后置之后执行

环绕通知:在方法之前和方法之后通知。

3.Aspect(切面)把增强应用到具体的方法上面,这个过程称之为切面。

AOP 的实现原理

AOP分为静态AOP和动态AOP。静态AOP是指AspectJ实现的AOP,他是将切面代码直接编译到Java类文件中。动态AOP是指将切面代码进行动态织入实现的AOP。Spring的AOP为动态AOP,实现的技术为: JDK提供的动态代理技术 和 CGLIB(动态字节码增强技术) 。尽管实现技术不一样,但 都是基于代理模式 , 都是生成一个代理对象 。


spring_第2张图片


spring_第3张图片

使用注解操作AOP


spring_第4张图片


SpringMVC

运行原理图:


spring_第5张图片

1.用户发起请求,dispatcherServlet获取用户访问的路径。

2.dispatcherServlet去找相应的处理器。

3.dispatcherServlet调用处理器访问controller.

4.controller调用service,返回modelAndView。

5.dispatcherServlet得到处理结果。

6.调用view解析器对model进行解析

7.将解析后的model数据传给view显示

8.http响应给浏览器。

扫描指定的包中的类上的注解,常用的注解有:


spring_第6张图片

你可能感兴趣的:(spring)