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());
        }
    }

      

  • 相关阅读:
    opencv访问图像像素
    利用chrome浏览器的proxy switchy扩展智能切换代理
    一些linux命令【ubuntu】
    如何从 Ubuntu 10.04 升级到 10.10
    关于“无法获得排它锁 ”的解决办法
    【ubuntu】Grub2配置详解(转)
    BibTeX使用介绍
    【ubuntu】imagemagick用法
    ubuntu环境下安装OpenCV
    安装wordpress
  • 原文地址:https://www.cnblogs.com/haiyangwu/p/10263254.html
Copyright © 2011-2022 走看看