首页 > 其他分享 >IOC,AOP

IOC,AOP

时间:2023-09-03 19:56:44浏览次数:27  
标签:通知 源码 切面 AOP 日志 IOC

IOC:控制反转,利用反转的机制将对象交给spring容器,由spring负责对象的创建和销毁。

IOC的作用:解耦

AOP:面向切面编程

AOP的作用:在程序运行期间,不修改源码的情况下,动态统一添加功能。如:日志打印,数据采集,事务管理,性能监视

AOP常见概念:横切关注点,切面,连接点,切入点,消息通知

  • 横切关注点:拦截后怎么处理
  • 切面aspect:一个类,里面定义 切入点和通知。
  • 连接点JointPoint:源码里可以切入的位置。
  • 切入点 Pointcut:源码里准备切入的位置。
  • 消息通知:在切入位置执行增强处理。如:记录日志,控制事务 。
    • 类型
      • @Before前置通知
        • 在执行目标方法之前运行
      • @After后置通知
        • 在目标方法运行结束之后
      • @AfterReturning返回通知
        • 在目标方法正常返回值后运行
      • @AfterThrowing异常通知
        • 在目标方法出现异常后运行
      • @Around环绕通知
        • 在目标方法完成前、后做增强处理 ,环绕通知是最重要的通知类型 ,像事务,日志等都是环绕通知,注意编程中核心是一个ProceedingJoinPoint,需要手动执行 joinPoint.procced()

标签:通知,源码,切面,AOP,日志,IOC
From: https://www.cnblogs.com/xietingwei/p/17675432.html

相关文章

  • javaee spring 测试aop 切面
    切面类packagecom.test.advice;importorg.aspectj.lang.ProceedingJoinPoint;//增强类publicclassMyAdvice{//将这个增强方法切入到service层的add方法前publicvoidbefore(){System.out.println("添加用户之前");}}目标类packag......
  • javaee spring 用注解的方式实现ioc
    spring用注解的方式实现iocspring核心依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http:/......
  • 【SpringBoot】面向切面编程AOP
    一.基本概念oop:主要以函数或者过程为程序的基本组织方式,系统功能是由一组相关的过程和函数序列构成,主要实现通过继承,多态和封装aop:这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。简单来讲就是方法和方法的关联,将公用代码从核心代码中抽......
  • 学习aop以及nginx
    苍穹外卖第一天搭建前端后端环境先将代码提交到本地然后在git上创建仓库https://gitee.com/lh03062021/sky-take-out.git点击push定义远程仓库把复制好的粘贴上去就可以推送成功了。导入sql文件,编译父项目nginx反向代理,将前端发送的动态请求由nginx转发到后端服务器好......
  • 通过AOP拦截Spring Boot日志并将其存入数据库
    本文分享自华为云社区《SpringBoot入门(23):【实战】通过AOP拦截SpringBoot日志并将其存入数据库》,作者:bug菌。前言在软件开发中,常常需要记录系统运行时的日志。日志记录有助于排查系统问题、优化系统性能、监控操作行为等。本文将介绍如何使用SpringBoot和AOP技术实现拦截系......
  • day126-spring中的AOP
    声明式事务事务控制的代码有规律可循,代码的结构基本是确定的,所以框架就可以将固定模式的代码抽取出来,进行相关的封装。封装起来后,我们只需要在配置文件中进行简单的配置即可完成操作。好处1:提高开发效率好处2:消除了冗余的代码好处3:框架会综合考虑相关领域中在实际开......
  • 3、IOC创建对象的方式
    3、IOC创建对象的方式使用无参构造方法来进行创建对象如果说我们需要使用有参构造的方法来构造对象,那么我们需要赋值下标赋值<!--用参数的下标进行赋值-->  <beanid="user"class="com.an.pojo.user">    <constructor-argindex="0"value="这是用下标进......
  • 2、IOC
    2、IOC2.1、IOC依赖注入UserDao接口publicinterfaceUserDao{  publicvoidgetUser();}UserDaoImpl实现类publicclassUserDaoImplimplementsUserDao{  @Override  publicvoidgetUser(){    System.out.println("默认获取用户"); }}......
  • SpringIOC、SpringMVC
    SpringIOCSpringIOC(InversionofControl,控制反转)是Spring框架的核心功能之一。它是一种设计模式,用于实现松耦合和可维护的应用程序。在传统的应用程序开发中,对象之间的依赖关系通常由对象自己创建和管理。这种方式导致了高度耦合和难以维护的代码。而SpringIoC通过将对象的......
  • IOC容器
    namespaceFeng.FramWorkDesign{publicclassIOCContainer{privateDictionary<Type,object>mInstance=newDictionary<Type,object>();publicvoidRegister<T>(Tinstance){varkey=typeof(T);......