当前位置: 首页 > news >正文

网站建设的职位企业网站的域名是该企业的

网站建设的职位,企业网站的域名是该企业的,嵌入式软件开发工作内容,芜湖做网站Spring:IOC和AOP一. IOC(1) 引入(2) 定义(3) 作用(4) 实现(5) DI依赖注入二. AOP(1) 概念(2) Spring中的AOP(3) 入门案例0. 准备:1. 定义通知类和通知方法;2. 在通知类中描述和定义切入点 pointcut3. 用注释绑定切入点和通知方法4. 通知类&am…

Spring:IOC和AOP

    • 一. IOC
      • (1) 引入
      • (2) 定义
      • (3) 作用
      • (4) 实现
      • (5) DI依赖注入
    • 二. AOP
      • (1) 概念
      • (2) Spring中的AOP
      • (3) 入门案例
          • 0. 准备:
          • 1. 定义通知类和通知方法;
          • 2. 在通知类中描述和定义切入点 @pointcut
          • 3. 用注释绑定切入点和通知方法
          • 4. 通知类:@Component + @Aspect
          • 5. SpringConfig:@EnableAspectJAuotoProxy
      • (4) AOP的运行流程
      • (5) AOP案例:测量业务层接口万次执行效率

IOC(控制反转)和AOP(面向方面编程)作为Spring框架的两个核心,可以很好地实现解耦合。
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

一. IOC

(1) 引入

如以前都是在【业务层】实例化【持久层】对象,耦合性强
当持久层代码变动时,业务层代码也要改变! 所以有了IOC控制反转,即由IOC容器将持久层的对象注入到业务层

(2) 定义

控制反转即主动变成被动;
IOC控制反转,即 主动new对象 变成由于 外部(IOC容器)去提供对象,被IOC容器所管理的对象也被称为 bean

(3) 作用

解耦合,如果dao层有变化,则不需要改变service层代码!

(4) 实现

Spring技术对IOC思想进行了实现
  Spring提供了Core Container容器,称为IOC容器,用来充当IOC思想中的外部;
  即在Spring中,IOC可以理解为由主动new对象,转换为由IOC容器提供对象;
  IOC会管理大量的对象(用到了 反射机制 ,根据路径名获取类文件,进而完成对象创建,创建对象调用的是无参构造);
  IOC会管理对象的创建和初始化的过程;
  IOC容器负责对象的创建、初始化等一些列工作,被创建或管理的对象在IOC容器中统称为
Bean

(5) DI依赖注入

在容器中建立Bean与Bean之间的依赖关系的过程,称为依赖注入
Spring通过DI(依赖注入)实现IOC(控制反转)

效果:在需要使用Service对象时,里面的dao对象就已经由IOC容器生成并注入了!

目标:充分解耦;

总结

  1. IOC :用对象的时候不用程序去new,而是由IOC容器提供;
  2. DI:当IOC中的Bean有关系时,会绑定依赖;

二. AOP

(1) 概念

AOP可以说是对OOP(面向对象编程) 的补充和完善;

面向对象就是将事物的特性和行为抽象为一个对象,如people类有身高、体重、年龄等属性,也有吃饭、睡觉等行为。把这些特性和行为封装成一个类,然后可以统一调用。

AOP(面向切面编程) 就是把一个单独的业务功能抽取出来,然后动态把这个功能切入到需要的方法(或行为)中;
即将功能先定义好,需要的地方才切入,这样便于减少系统的重复代码,降低模块间的耦合度。

作用
①降低耦合度
②不改变原有代码的基础下,增加新功能;

Spring AOP就是基于动态代理实现的,动态代理又利用了反射机制

使用场景
如果有相同的、大量使用的功能在很多地方增强,适合AOP------------即简化共性功能的开发;

(2) Spring中的AOP

Spring理念:无侵入式编程,即不改变原有代码的基础上,为其增加新的功能;(使用了动态代理)
AOP将业务逻辑组件和切面类都加入到容器中,通过@Aspect通知注解给切面类的目标方法标注在哪运行。

连接点:所有的原始方法;

切入点Pointcut:需要被功能来增强的方法(特殊的连接点);

通知advice:即抽取出来的增强的功能;

切面:绑定通知和切入点的关系,一个通知对应一个切入点;

在这里插入图片描述

总结
抽取程序中要增强的部分作为一个通知方法
执行对应通知的方法就是切入点
将通知和切入点绑定的就是切面,切面就是描述在哪个切入点上执行哪些通知;

(3) 入门案例

需求:不改变切入点代码的前提下,执行update()时也打印系统时间; ;

思路分析
1.导入AOP和Aspect的坐标
2.准备连接点(原始方法)
3.制作共性功能------通知和通知类;
4.定义切入点Pointcut;
5.绑定通知方法和切入点(切面)

0. 准备:

BookDao:
在这里插入图片描述

BookDao实现类:
目前只有执行save()方法才会打印系统时间;
在这里插入图片描述
导入aop和aspect包;
aop包默认依赖于spring-context,所以只需要导aspectjweaver包;
在这里插入图片描述

1. 定义通知类和通知方法;

在这里插入图片描述

2. 在通知类中描述和定义切入点 @pointcut

用切入点表达式定义切入点,使用 @Pointcut
①在Execution中描述实际的切入点方法(切入点表达式):
定义一个私有方法pt(空壳),代表切入点;
在这里插入图片描述

3. 用注释绑定切入点和通知方法

此处让通知方法在切入点的前面执行,用@Before ,括号中写定义的切入点的私有方法pt();
此处通知方法即打印当前时间;
此处的切入点即update()方法;
在这里插入图片描述

4. 通知类:@Component + @Aspect

要能让Spring控制,先用@Componet将通知类定义为bean,
然后用@Aspect让通知类中的东西生效,让Spring知道这是AOP;
在这里插入图片描述

5. SpringConfig:@EnableAspectJAuotoProxy

告诉Spring:这里用了注解开发的AOP,即去启动了@Aspect,而Aspect告诉Spring去识别通知类;
在这里插入图片描述
效果:执行update也会打印系统时间;
在这里插入图片描述
在这里插入图片描述

(4) AOP的运行流程

1.启动 Spring容器

2.读取 所有【切面配置】中的pointcut切入点;

3.初始化 bean;
判定 bean对应的类(如BookDaoImpl)中的原始方法(如update)是否匹配到【通知类中】配置的切入点
  匹配成功,创建原始对象(即目标对象)的代理对象

4.获取bean执行方法;
当匹配成功,获取的bean代理对象,则用代理对象去调用原始方法与通知方法;
(即用代理对象去调用对应的方法(update),然后走增强的通知方法的操作;)

整个AOP的实现过程是由代理模式来进行的;

总结:如果配置的切入点能和类(BookDaoImpl)的方法匹配上,那么就创建代理对象,用代理对象去调用原始方法和增强的通知方法; 否则就只创建原始对象;

(5) AOP案例:测量业务层接口万次执行效率

AOP案例:测量业务层接口万次执行效率

http://www.tj-hxxt.cn/news/58333.html

相关文章:

  • 阜阳制作网站公司百度网盘官方网站
  • 昆山市建设工程交易中心网站广告营销推广方案
  • 网页设计素材网站推荐临沂森佳木业有限公司
  • 清河做网站哪儿好站长之家统计
  • 如何做设计师个人网站性价比高seo的排名优化
  • 做网站软件 wordpage深圳债务优化公司
  • 太原制作网站那个推广平台好用
  • html5 手机 手机网站seo网站关键词优化报价
  • eclipce做网站重庆百度总代理
  • 做网站如何把支付宝微信吧百度一下了你就知道官网
  • 暴雪被谁收购了seo排名点击软件运营
  • 做论坛网站如何赚钱的全网营销整合推广
  • 靠网站点击就能赚钱的做今天刚刚发生的新闻
  • 零基础网页设计制作培训长沙百度推广排名优化
  • 连云港做网站公司二级网站怎么做
  • 个人网站的建设与管理磐石网站seo
  • 一个公司做2个产品网站怎么做品牌营销策划有限公司
  • 做网站的域名是做什么用的东莞服务好的营销型网站建设
  • 莆田建站服务北京seo排名公司
  • 太原网站制作公司哪家好百度seo推广价格
  • 网站建设seo优化公司西安关键词排名推广
  • 网站编辑器做段落空格中国进入一级战备状态了吗
  • 彭州网站建设28pz网上销售平台有哪些
  • wordpress帖子添加代码google推广seo
  • 代办公司是干嘛的深圳seo排名哪家好
  • 网站建设的基本流程规范济南网站优化排名推广
  • 网络公司怎么优化网站如何搭建一个网站
  • 广东个人网站备案长沙网动网络科技有限公司
  • 网站开发技术 难点宁波优化网站哪家好
  • 加大网站建设力度seo关键词优化软件合作