zoukankan      html  css  js  c++  java
  • Spring IoC 容器和 AOP

    一、IOC(Inversion of Control)容器:就是具有依赖注入(Dependncy Injection)功能的容器,是可以创建对象的容器,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。通常new一个实例,控制权由程序员控制,而"控制反转"是指new实例工作不由程序员来做而是交给Spring容器来做。在Spring中BeanFactory是IOC容器的实际代表者。

    1 /*
    2
    3    @Controller         声明此类一个MVC类,通过与 @RequestMapping 一起使用
    4    @Service            声明此类一个业务处理类,通过与 @Transactional 一起使用
    5    @Repository         声明此类一个数据库访问类
    6    @Component          声明此类一个spring管理的类
    7    @Configuration      声明此类是一个配置类
    8 
    9 */

    二、AOP(Aspect Oriented Programming) 面向切面编程,通过预编译方式或者运行时刻对目标对象动态地添加功能。

    1 /*
    2    @Aspect     声明这是一个切面类
    3    @Pointcut   切入点
    4    Advice:具体的操作,通过注解 @before   @around  @after  @finally 来调用代码
    5 */

       1、代码演示:

    @Component
    @Aspect
    public class UserAop {
    
        /**
         * execution() 表达式主体
         * 第一个 * 表示返回值得类型
         * com.springbootweb.controller 表示AOP所切服务的包名
         * 包名后面的 ..表示当前包及子包
         * 第二个 * 表示类名
         * .*(..) 表示任何方法名,任何参数类型
         */
        @Pointcut(value = "execution( * com.springbootweb.controller..*.*(..))")
        public void userPointcut(){
        }
    
        @Before("userPointcut()")
        public void userLog(){
          HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
          System.out.println("url:" + request.getRequestURI());
        }
    }

      

  • 相关阅读:
    构造函数、原型、实例化对象
    JS闭包的理解
    JQuery知识点
    面向对象
    学习使用Vuex
    Runtime详解
    ffmpeg各结构体之间关联 ---- AVPacket
    AVFrame
    block的底层原理
    performSelector
  • 原文地址:https://www.cnblogs.com/haiyangwu/p/10263254.html
Copyright © 2011-2022 走看看