# Java AOP静态
## 什么是AOP
AOP(Aspect-Oriented Programming,面向切面编程)是一种程序设计范式,它将横切关注点(cross-cutting concern)从主要的业务逻辑中分离出来。横切关注点是那些与应用程序的业务逻辑无关,但是必须加入到应用程序中以实现某些功能的代码,例如日志、事务管理等。AOP通过在程序中定义切面(Aspect),然后在适当            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-03-20 03:47:33
                            
                                25阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 使用Java AOP实现静态方法的切面编程
Java中的面向切面编程(AOP)是一种以前所未有的方式处理横切关注点的技术,例如日志记录、安全性、事务管理等。AOP可以帮助我们分离这些关注点,使代码更清晰、更整洁。在本篇文章中,我们将学习如何使用Spring AOP来实现静态方法的增强。
## 流程概述
在使用Java AOP实现静态方法时,我们需要遵循以下步骤:
| 步骤 | 描述 |            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-08-13 06:49:17
                            
                                282阅读
                            
                                                                             
                 
                
                             
         
            
            
            
              静态方法和实例方法的区别主要体现在两个方面:  在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。  静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。  下面几个例子展示了这一区别。  1、调用静态方法示            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-22 11:07:58
                            
                                88阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            ## 如何实现Java AOP拦截静态方法
Java AOP(面向切面编程)是一种强大的机制,可以让我们优雅地处理横切关注点,例如日志记录、性能监测等。但是,AOP的一个限制是,它通常不直接支持静态方法的拦截。这是因为静态方法是与类相关联的,而非与实例相关联。然而,我们仍然可以通过使用一些工具和设计模式来实现这一点。以下是实现流程的详细步骤,以及每一步需要做的事情和代码示例。
### 实现流程            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-09-20 03:57:50
                            
                                592阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 实现Java静态方法的AOP切面
## 一、整体流程
```mermaid
journey
    title 整体流程
    section 创建切面
        开发者 -> 小白 : 1. 创建一个切面类
    section 定义切面逻辑
        开发者 -> 小白 : 2. 在切面类中定义切面逻辑
    section 配置切面
        开发者 -> 小            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-03-30 07:31:56
                            
                                503阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一前言     在后端项目开发中,会有一些需要基于全局处理的程序。传统基于  
  Servlet 
   容器的程序中,我们可以使用过滤器和监听器,在  
  Java 
   框架中还可以使用拦截器,而面向切面编程 
   AOP 
   更是作为  
  Spring 
   框架中的核心思想被大家所关注。 
  本文一方面从概念上讲解 
   Filter 
  、            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-05 15:52:27
                            
                                714阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            接口类 <?php namespace App\Interfaces; interface ProductInterface { public function create($name); public function edit($name); } 目标类 <?php namespace App ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-07-25 10:03:00
                            
                                87阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            项目代码https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter10/src/com/yinhai/final_目录项目代码一、什么是设计模式二、什么是单例模式三、单例模式应用实例四、饿汉式和懒汉式的区别一、什么是设计模式1.静态方法和属性的经典使用2.设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-25 14:52:20
                            
                                45阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Java 中的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法; 并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方 法的功能成为 Java 语言的反射机制。反射的应用场合 在 Java 程序中许多对象在运行是都会出现两种类型:编译时类型和运行时类型。 编译时的类型由 声明对象时实用的类型来决定,运行时的类型由实际赋值给对象的类型决定 。如            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-27 13:46:33
                            
                                35阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、什么是AOP传统情况下,如果我们对某个功能进行增强,我们需要修改源代码,或者使用其他较为复杂的方式进行功能增强,在Spring框架中,可以在不修改源代码的基础上,将增强的逻辑以一种无侵入的方式插入到特定业务方法的执行前、抛异常或执行后等时刻,对源代码功能进行增强,这种将原业务方法分成不同切面的的编程方式就是AOP又叫面向切面编程二、详细使用方法1、创建一个将要被增加的类@Service
pub            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-09 22:10:15
                            
                                329阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Java AOP编程 之 静态类的加载时机
在Java编程中,AOP(面向切面编程)为我们提供了一种强大的机制,以便于我们在运行时动态地给方法加上额外的功能。在掌握AOP的过程中,我们通常需要理解静态类的加载时机。在本文中,我将逐步指导你如何使用Java AOP实现静态类的加载时机控制。
## 1. 理解整体流程
首先,让我们理清楚要实现的步骤。以下是实施AOP与静态类加载时机的整体步骤            
                
         
            
            
            
            1:AOP的概念1)相对于OOP面向对象概念,AOP面向切面编程,是指为了将本身无法联系的两个类,通过某张方式将其联系起来2)一般而言,我们管切入到指定类的指定方法的代码片段称为切面,而切入到哪些类,哪些方法则叫切入点。有了 AOP 我们就可以把几个类 共有的代码,抽取到一个切片中,等需要时在切入对象中去,从而改变其原有的功能。2:AOP实现方式2.1 :静态AOP在编译器,切面直接以字节码的形式            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-21 06:50:33
                            
                                48阅读
                            
                                                                             
                 
                
                             
         
            
            
            
               AOP静态生成Java proxy 静态AOP基于java agent方式加载java-javaagent:myagent.jar    动态AOP是通过java动态代理或者字节码增强技术在runtime期间进行增强。   静态AOP在这儿定义为在应用启动完成之前,就通过字节码生成技术对代码进行增加。              
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-27 16:23:07
                            
                                43阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            【开源】.Net 免费开源,静态Aop织入(直接修改IL中间语言)框架,类似PostSharp(收费);实现前后Aop切面和INotifyPropertyChanged注入方式,性能接近原生编码方式实现。
    BSF.Aop.Net 免费开源,静态Aop织入(直接修改IL中间语言)框架,类似PostSharp(收费); 实现前后Aop切面和INotifyPr            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-11-11 13:35:55
                            
                                197阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Spring之AOP的静态代理AOP:面向切面编程(Aspect Oriented Programming)主要用到代理模式。		代理模式分为静态代理动态代理静态代理抽象角色:一般是接口或者抽象类真实角色:如客户。代理角色:用来代替真实角色进行一些工作。实例客户租房抽象角色:租房这件事情。真实角色:房东。代理角色:中介。Rent接口package com.harris.demo01;public interface Rent {    public  vo            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-08-10 09:37:12
                            
                                94阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Spring之AOP的静态代理AOP:面向切面编程(Aspect Oriented Programming)主要用到代理模式。		代理模式分为静态代理动态代理静态代理抽象角色:一般是接口或者抽象类真实角色:如客户。代理角色:用来代替真实角色进行一些工作。实例客户租房抽象角色:租房这件事情。真实角色:房东。代理角色:中介。Rent接口package com.harris.demo01;public interface Rent {    public  vo            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-01-21 11:02:11
                            
                                157阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            AOP面相切面编程,是作            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-12-06 10:40:32
                            
                                110阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Java中AOP的实现方式 静态织入
## 1. 流程图
```mermaid
flowchart TD
    A(定义切面Aspect) --> B(编写通知Advice)
    B --> C(编写切点Pointcut)
    C --> D(编写切面Aspect)
    D --> E(配置静态织入)
```
## 2. 关系图
```mermaid
erDiagram            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-05-07 04:44:35
                            
                                41阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            SpringBoot 三种拦截http请求方式Filter,interceptor和aop。这三种拦截方式的拦截顺序是:filter—>Interceptor–>ControllerAdvice–>@Aspect -->Controller;这三种方式的区别: 1.过滤器Filter可以拿到原始的HTTP请求和响应的信息, 但是拿不到你真正处理请求方法的信息,也就是方法的信            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-25 20:02:26
                            
                                1216阅读
                            
                                                                             
                 
                
                             
         
            
            
            
                                        
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-11-07 13:20:14
                            
                                52阅读
                            
                                                                             
                 
                
                                
                    