spring特性介绍

很多初学spring的人其实对于spring这个东西的一些基本概念不怎么熟悉,什么控制反转啊,依赖注入、面向切面等等。小白今天来谈谈这些个东西吧。

1  控制反转(IOC: inversion of control 

首先来一段官方的介绍:Spring通过一种称作控制反转(IoC)的技术促进了低耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对 象自己创建或者查找依赖对象。你可以认为IOC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

对于这个概念的官方解释,我真的很费解。后来慢慢才理解了这个概念的含义。首先需要来说说控制,在我们创建一个对象(new Object)的同时便是拥有了这个对象的控制权。有反转的话就先来说说正向的控制吧。

* 正向控制:当A类需要C类的资源时,便会在A类中new一个C类对象c,所以A就有了c的控制权,这就是正向的控制。也就是A类主动地去创建C

* 反向:便不是A主动地去创建,而是被动地获取C类的对象,这便是反向。控制反转其实就是将控制权转移给了spring,让IOC/DI的容器来控制对象的创建

需要注意的是在spring的配置文件之中name应和pojo类中的命名相同)


2 依赖注入(与控制反转对应的方法)

既然不是本类创建所需要的对象,那么便需要一个方法来让我们获取到所需要的对象,这个方法在spring中便被称作依赖注入,在这里我们需要了解的是什么是依赖,什么是注入。我们这里用A表示本类,C表示A类所需的资源类


2.1 依赖

这里的依赖指的便是A类依赖于spring(IO而注入则是指spring将创建好的C类注入到A类中的过程,过spring才能够获取到所需要的C类资源。

2.2注入
而注入则是指spring将创建好的C类注入到A类中的过程

面向切面编程(AOP)

3.1定义

可以说成是OOP(面向对象编程)的补充和完善,OOP便不用多说了,虽然带给了我们很多的便利,但是其导致了大量代码的重复,而且不利于各个模块的重用,但是AOP这种技术刚好弥补了面向对象这个缺点。

AOP技术利用“横切”的技术,以此来解开封装的对象内部然后将可以重用的方法或1业务(与核心业务无关)


3.2功能

让关注点代码和业务代码分离

关注点代码:重复且在项目中要多次用到的功能性代码,

业务代码:即项目核心业务代码


3.3优点

关注点集中到一处之后,使得代码更加整洁,并且可以使程序员更加注重于业务代码。


3.4连接点

在操作发生时应用切面

3.5切面

即一个切面类,一个需要用到切面编程方法的类

3.6切点

一般用某个包中的类的明确的方法来指定在何处应用切面,应用切面的这个点便称为切点,一般用切点来指定连接点。一般用某个包中的类的明确的方法来指定在何处应用切面,应用切面的这个点便称为切点,一般用切点来指定连接点。

3.7 AOP通知

3.7.1 advice:before(方法执行前)

3.7.2 after(连接点退出后不管是否执行完)、

3.7.3 after-returning(连接点正常执行完后)、

3.7.4 after-throwing(方法抛出异常退出执行时)

3.7.5around(调用方法前后执行)



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值