首页 > 其他分享 >Spring AOP中的不同类型的自动代理实现方式:BeanNameAutoProxyCreator DefaultAdvisorAutoProxyCreator等

Spring AOP中的不同类型的自动代理实现方式:BeanNameAutoProxyCreator DefaultAdvisorAutoProxyCreator等

时间:2023-12-13 11:32:31浏览次数:24  
标签:创建 Spring 代理 bean 自动 BeanNameAutoProxyCreator AOP DefaultAdvisorAutoProxyCreator


“BeanNameAutoProxyCreator”、“DefaultAdvisorAutoProxyCreator” 和 “Metadata autoproxying” 是Spring AOP中的不同类型的自动代理实现方式。

  1. BeanNameAutoProxyCreator:BeanNameAutoProxyCreator是一个自动代理创建器,它根据bean的名称进行自动代理。在配置中,你可以指定一组目标bean的名称,然后为这些bean创建代理。例如,你可以针对特定名称的bean创建代理,以便在这些bean的方法调用中应用切面逻辑。这是一种基于bean名称的自动代理方式。
  2. DefaultAdvisorAutoProxyCreator:DefaultAdvisorAutoProxyCreator是另一种自动代理创建器,它根据Advisor对象进行自动代理。Advisor是Spring AOP中的一个概念,它包含切点和通知。DefaultAdvisorAutoProxyCreator会检测应用上下文中的Advisor对象,并将它们应用到匹配的bean上,从而创建代理。这种方式允许你在应用上下文中定义切面,并自动将其应用于匹配的bean。
  3. Metadata autoproxying:元数据自动代理是一种基于注解或XML配置的自动代理方式。它使用元数据信息(如注解或XML配置)来确定哪些bean需要被代理,并应用相应的切面逻辑。你可以通过在bean上添加特定的注解或使用XML配置来标记目标bean,并在配置中启用元数据自动代理。Spring AOP会解析元数据信息,并根据它们来创建代理。

这些自动代理方式提供了不同的灵活性和配置选项,用于根据不同的需求和场景来自动创建代理。你可以根据你的具体需求选择适合的自动代理方式,并结合配置和元数据来定义切面逻辑的应用范围。


标签:创建,Spring,代理,bean,自动,BeanNameAutoProxyCreator,AOP,DefaultAdvisorAutoProxyCreator
From: https://blog.51cto.com/zhangxueliang/8799861

相关文章

  • 什么是Spring的依赖注入(Dependency Injection,简称DI)?
    控制反转IoC是一个很大的概念,可以用不同的方式来实现。其主要实现方式有两种:依赖注入和依赖查找依赖注入:相对于IoC而言,依赖注入(DI)更加准确地描述了IoC的设计理念。所谓依赖注入(DependencyInjection),即组件之间的依赖关系由容器在应用系统运行期来决定,也就是由容器动态地将某种依......
  • spring ApplicationContext通常的实现是什么?
    FileSystemXmlApplicationContext:此容器从一个XML文件中加载beans的定义,XMLBean配置文件的全路径名必须提供给它的构造函数。ClassPathXmlApplicationContext:此容器也从一个XML文件中加载beans的定义,这里,你需要正确设置classpath因为这个容器将在classpath里找bean配置。WebXmlA......
  • SpringBoot3
    入门创建项目<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.1</version></parent>导入场景,选择对应的场景启动器<dependencies><d......
  • SpringBoot2
    概述SpringBoot是整合Spring技术栈的一站式框架。SpringBoot是简化Spring技术栈的快速开发脚手架。优点创建独立Spring应用内嵌web服务器自动starter依赖,简化构建配置自动配置Spring以及第三方功能提供生产级别的监控、健康检查及外部化配置无代码生成、无需编写XML入......
  • SpringCloud
    简介SpringCloud和SpringBoot之间有严格的版本对应关系,因此要小心选择版本,应该根据SpringCloud版本选择SpringBoot版本。本次课程选择SpringCloud的Hoxton.SR1版本,SpringBoot采用2.2.2.RELEASE版本,SpringCloudalibaba采用2.1.0.RELEASE版本。零基础部分父工程搭建Maven使用......
  • Spring6教程
    入门使用Maven引入Spring6基础依赖环境:<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.0.2</version>......
  • SpringMVC教程
    概述本次项目以SpringMVC为主,使用Maven和themleaf,themleaf是一种模板引擎,主要用来编写动态页面。MVC概念MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分。M:Model,模型层,指工程中的JavaBean,作用是处理数据。JavaBean分为两类:一类称为实体类Bean:专门存储业务数据的,......
  • Springboot项目通过redis实现接口的幂等性
    在SpringBoot项目中,通过Redis实现接口的幂等性通常是通过在Redis中存储唯一标识符(token、UUID等)的方式来实现。当接口第一次被调用时,生成并存储一个唯一标识符到Redis,然后将该标识符返回给客户端。客户端在后续的请求中携带该标识符,服务端在处理请求之前检查Redis中是否存在该标识......
  • 基于SpringBoot实现文件的上传下载
    (一)概述文件上传下载一直都是一个系统最常用也是最基本的功能点,刚好最近公司的项目上有用到这个功能,于是自己就用SpringBoot也写了一个简化的版本,已实现文件的上传和下载功能。(二)创建项目首先创建一个SpringBoot的项目,接着引入相关的依赖,因为涉及到数据库的操作,所以依赖会比较多一些......
  • 使用SpringBoot实现文件上传和下载
    上传文件:1.在`pom.xml`文件中添加依赖:xml<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boo......