初试Spring AOP

西门子S7-1200 PLC接线全指南:从数字量到模拟量,避开接线坑 PLC(可编程逻辑控制器)是工业自动化控制的核心,其稳定运行高度依赖正确的接线设计。在PLC系统中,数字量输入输出与模拟量信号采集是最基础的信号交互方式,而电源与接地的规范处理则是抗干扰和长期可靠性的关键。理解NPN/PNP传感器接线、继电器/晶体管输出差异、模拟量屏蔽以及共地原理,能有效避免信号跳变、烧毁端口等工程事故。西门子S7-1200作为主流紧凑型PLC,广泛应用于小型设备和产线控制,其接线细节直接影响设备调试效率。本文从PLC基础原理切入,结合工程实践,系统梳理S7-1200的型号选型、数字量输入 阅读详情

gigix 说,j2ee的世界象一座魔法森林,数不清的新概念和open source framework,让新进来的同学非常眼晕。gigix还说,AOP正在成为软件开发的下一个圣杯,呵呵,我想起帝国时代中的圣杯了,僧侣们梦想收集到的法器,可以提升精神力量......

在上回学习iBatis的Dao框架时,提到动态代理,恰好Spring framework中也支持AOP,同样是采用jdk1.3的动态代理方式的。不过基于配置的方案更优雅一些。

我走了一遍那个简单的例子,就是基于org.springframework.aop.MethodBeforeAdvice接口来实现拦截器的。现在网上一说AOP,举的例子总是LOG的,晕死。iBatis中的事务包裹也可以算一个典型的用法。

在使用spring的aop时,除了spring.jar外,切记要引入以下几个包:

1.  aopalliance.jar
2.  commons-logging.jar

3.jakarta-oro-2.0.8.jar 这个比较隐蔽,因为不引这个编译期不报错。  

然后要理解三个概念,就可以编写AOP模块。

advice 你想向别的类内部不同的地方注入的代码,即你关注的Aspect;

pointcut 定义了需要注入advice的位置,通常是某个特定的类的一个public方法。

advisor  是pointcut和advice的装配器,需要在配置文件中指明两个属性:advice和pattern,前者是你自己写的请求注入的类,做一些比如加日志,判断是否有权限等的事情,pattern指你需要拦截的接口及其方法。

  <!--CONFIG-->
  <bean id="bean" class="org.springframework.aop.framework.ProxyFactoryBean">
    <property name="proxyInterfaces">
      <value>org.chage.springtest.Bean</value>
    </property>
    <property name="target">
      <ref local="beanTarget"/>
    </property>
    <property name="interceptorNames">
      <list>
        <value>theAdvisor</value>
        <value>theAdvisor2</value>
      </list>
    </property>
  </bean>

  <!--REAL CLASS-->
  <bean id="beanTarget" class="org.chage.springtest.BeanImpl"/>

  <bean id="theAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
    <property name="advice">
      <ref local="theBeforeAdvice"/>
    </property>
    <property name="pattern">
      <value>org/.chage/.springtest/.Bean/.execute</value>
    </property>
  </bean>
  <!--ADVICE-->                    
  <bean id="theBeforeAdvice" class="org.chage.springtest.TestBeforeAdvice"/>

注意两处蓝色标识处,前一处说明可以给被请求bean加多个拦截器类,这里的次序比较重要,就是实际被调用执行的次序。后一处说明了监听的方法,注意写法。

最后,来点废话。这两天学习的劲头很高,白天吸收了很多东东,晚上躺在床上大脑还在反刍,感觉象一个RPG游戏中的小角色在打怪练级,hoho,经验值嗖嗖地往上涨,满心欢喜呀,充实啊。我渴望成为下一个“马鲁奇”(注:韩国电影”阿罗汉“中称拥有极高天份的修行者突然开悟后为马鲁奇)

【面试大全-Java】Spring核心问答 Spring 是Java企业级应用的开源开发框架,Spring主要用于开发Java应用,简化Java企业级应用开发。通知实在方法执行前或者执行后要做的动作,实际就是程序需要通过AOP触发的代码段。Spring切面有5中类型的通知before:前置通知,在方法前被执行after:在方法执行之后调用的通知,无论方法是否执行成功:方法执行成功执行通知:在方法抛出异常退出时执行的通知around:在方法执行前和执行后的通知。 阅读详情

相关推荐

3D打印机之Marlin固件配置

一、Marlin固件必要配置 打开Configuration.h文件,使用VS code的搜索功能来修改下面的参数。 配置波特率 #define BAUDRATE 250000 配置串口波特率,一般不修改。上位机的波特率要和这个一致才能正常通讯。 2. 配置主板类型 第 134 行 #define MOTHERBOARD BOARD_MKS_GEN_L 找到 boards.h 这个文件打开,就可以看到支持的主板类型。3d打印机主控板类型非常多,每个板子硬件连接都可能不同,所以这个参数必须要跟你自己的板子

acktomas的博客 2万+

springAop之前置通知MethodBeforeAdvice配置即解读

Aop原理 SpringAop 原理就是动态代理 对于实现接口的目标类使用的是jdk动态代理 对于没有实现任何接口的目标类,使用的是cglib的动态代理 代理类是程序在运行期间由JVM根据反射等机制动态生成的自动生成代理类和代理对象。 所谓动态就是指在程序运行前不存在代理类的字节码文件。 SpringAop的配置方式 三种配置方式 一:SpringAop1.x 使用ProxyFactoryBean...

小徐的博客 2123

MatterPort3D 数据集下载

【代码】MatterPort3D 数据集下载。

qq_44106838的博客 6785

Spring Framework中的AOP编程之入门篇

  作为这个介绍Spring框架中的面向方面编程(Aspect-Oriented Programming,AOP)的系列的第一部分,本文介绍了使您可以使用Spring中的面向方面特性进行快速开发的基础知识。使用跟踪和记录方面(面向方面领域的HelloWorld)作为例子,本文展示了如何使用Spring框架所独有的特性来声明切入点和通知以便应用方面。本系列的第二部分将更深入地介绍如何运用Spring

Allin's blog 1365

数据分析学习总结笔记02:聚类分析及其R语言实现

** 数据分析学习总结笔记02:聚类分析Cluster Analysis ** 1. 聚类分析概述 1.1 聚类分析的直观理解 在科学研究、社会调查或日常生活中,通过观察个体的特征,将群体中的个体归为不同的族群/簇(Cluster)。 2. 聚类分析的方法 3. 聚类分析的应用 3.1 市场营销——精准营销 在市场营销中,基于消费者的历史交易信息、消费者背景等对消费者进行划分,从而对不同类型的消费...

weixin_41961559的博客 4420

RTKLIB中RTK定位原理(一)

1 模型 1.1 非差观测值 非差观测值与RTKLIB中PPP定位原理——观测模型部分中一致。 1.2 单间单差观测值 若两个接收机距离较近,经过站间单差,电离层对流层延迟可消除,卫星s的钟差以及初始相位被消除,中依然包含接收机初始相位。 1.3 站间星间双差观测值 经过站间星间双差,接收机钟差及初始相位被消除。 2 EKF参数估计 2.1 EKF法则 EKF法则与RTKLIB中PPP定位原理——观测模型部分中一致。 2.2 状态变量与时间更新 (1)状态变量 在RTK...

papunzal的博客 3817

Spring AOP 的三种配置方法

Spring AOP 的三种配置方法   2012-03-18 01:11:48|  分类: Spring |  标签:spring   |字号 订阅 Class Files: public interface Work {          public void doWork(String username); } public class Work

ITpengcheng的专栏 1636

Unity最强动作战斗框架?Combat System Framework 深度解析

Combat System Framework 并不是一个简单的角色控制器,而是一套完整的动作游戏战斗开发框架。它借鉴了现代 AAA 游戏常见的架构思想,以 Gameplay Tag 为核心,结合 ScriptableObject 数据驱动设计,将技能、属性、Buff、伤害、武器、动画通知等系统有机整合在一起。同时,配套的可视化动画时间轴、Root Motion 工具和实时预览窗口,大幅优化了动作开发流程。当然,这套框架也有一定的学习门槛。

2403_88403568的博客 681

SpringFramework中的AOP简单使用

  AOP作为Spring这个轻量级的容器中很重要的一部分,得到越来越多的关注,Spring的Transaction就是用AOP来管理的,今天就通过简单的例子来看看Spring中的AOP的基本使用方法。   首先确定将要Proxy的目标,在Spring中默认采用JDK中的dynamic proxy,它只能够实现接口的代理,如果想对类进行代理的话,需要采用CGLIB的proxy。显然,选择“编程到接

SpringFramework 1万+

【DRAM存储器二十六】DDR4介绍-DDR4 SDRAM的主要技术特性之CA Parity、CRC Write date

详述DDR4的CA奇偶检验和写数据CRC校验功能

highman110的博客 1297

Exploring Automated Distractor Generation for Math Multiple-choice Questions via Large Language Mode

多项选择题(MCQ)在几乎所有级别的教育中都无处不在,因为它们易于管理、评分,并且是评估和实践中可靠的格式。MCQ最重要的方面之一是干扰因素,即旨在针对真实学生常见错误或误解的不正确选项。迄今为止,对于教师和学习内容设计师来说,制作高质量的干扰物的任务在很大程度上仍然是一个劳动和时间密集型的过程,其可扩展性有限。在这项工作中,我们研究了数学MCQ领域的自动干扰物生成任务,并探索了从上下文学习到微调的各种基于大型语言模型(LLM)的方法。

c_cpp_csharp的专栏 317

Spring-AOP 静态正则表达式方法匹配切面

概述 实例 正则表达式语法 正则表达式工具 RegexBuddy概述在Spring-AOP 静态普通方法名匹配切面案例中 StaticMethodMatcherPointcutAdvisor中,仅能通过方法名定义切点,这种描述方式不够灵活,假设目标类中有多个方法,切满足一定的命名规范,使用正则表达式进行匹配就灵活多了。 RegexpMethodPointcutAdvisor是正则表达式方法匹配的切

小工匠 2万+

深度学习笔记——Transformer

本文详细介绍面试过程中可能遇到的Transformer知识点。

haopinglianlian的博客 1703

Spring研究之AOP初试

1、定义业务类接口   package spring; public interface IStudent { void addStudent(String name); } 2、业务实现类 package spring; public class StudentServiceImpl implements IStudent{ publ

Just Do It! 788

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Spring AOP初试

使用注解加配置实现利用IDEA新建web+maven工程配置信息web.xml:<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:applicationContext.xml</param-value> </context-param><listener>

T Yuan 955

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ssm:spring面向切面编程-----AOP编程初试身手

1.传统编程模式的弊端 通过以下案例你将会发现,虽然在调用addUser()方法时实现了日志的输出,但这个程序有一个问题, 就是不得不在addUser()方法的主业务代码前面添加"log.info(“开始添加用户。。。”)语句, 以及在主业务代码后面添加"log.info("完成添加用户。。。)"语句。 这些语句以硬编码的方式混入主业务代码中,难以分割,可移植性差。 解决问题的思路是将这些日志之类的功能独立出来,作为独立的一个或多个类,在需要时调用, 而且最好不是显示调用,因为如果时显示调用,仍然要在目标方

weixin_45873215的博客 268

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java 高新技术【11.2】 动态代理类 编写类似 AOP 与 BeanFactory。初试Spring框架

1.切面(aspect):    要实现的交叉功能,是系统模块化的一个切面或领域。如日志记录。 2.连接点:    应用程序执行过程中插入切面的地点,可以是方法调用,异常抛出,或者要修改的 字段。 3.通知:    切面的实际实现,他通知系统新的行为。如在日志通知包含了实 现日志功能的代码,如向日志文件写日志。通知在连接点插入到应用系统中。 4.切入点:    定义了通知应该应用在哪些连

1590

java 高新技术【11.2】 动态代理类 编写类似 AOP 与 BeanFactory。初试Spring框架

1.切面(aspect):    要实现的交叉功能,是系统模块化的一个切面或领域。如日志记录。 2.连接点:    应用程序执行过程中插入切面的地点,可以是方法调用,异常抛出,或者要修改的 字段。 3.通知:    切面的实际实现,他通知系统新的行为。如在日志通知包含了实 现日志功能的代码,如向日志文件写日志。通知在连接点插入到应用系统中。 4.切入点:    定义了通知应该应用在哪些连

技术至上--Timo 478

java 高新技术【11.2】 动态代理类 编写类似 AOP 与 BeanFactory。初试Spring框架...

1.切面(aspect): 要实现的交叉功能,是系统模块化的一个切面或领域。如日志记录。 2.连接点: 应用程序执行过程中插入切面的地点,可以是方法调用,异常抛出,或者要修改的 字段。 3.通知: 切面的实际实现,他通知系统新的行为。如在日志通知包含了实 现日志功能的代码,如向日志文件写日志。通知在连接点插入到应用系统中。 4.切入点: 定义了通知应该应用在哪些连接点,通知可以应用到AO...

编程资料大全 140

初试AspectJ切面编程(AOP)

举例实现一个短时间内【限制接口请求次数】的注解java复制代码/** * @author Administrator */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface RequestRate { /** * 用户id * @return */ String userId();

java_beautiful的博客 1019

初试spring

1.什么是 Spring 由 Rod Johnson 创立,2004 年发布了 Spring 框架的第一版,其目的是用于简化企业级应用程序开发的难度和周期。 Spring 是分层的 Java SE/EE 一站式轻量级开源框架,以 IoC(Inverse of Control,控制反转)和 AOP(Aspect Oriented Programming,面向切面编程)为内核。 IoC 指的是将对象的创建权交给 Spring 去创建。使用 Spring 之前,对象的创建都是由我们使用 new 创建,而使用 Sp

qq_44335875的博客 190

Spring4.1——AOP

1、 AOP框架的分类(按修改的时机来划分)       (1)静态AOP实现:AOP框架在编译阶段即实现对目标类的修改(增强),生成静态的AOP代理类(生成*.class文件已经被改掉了,需要使用特定的编译器)。以AspectJ为代表。       (2)动态AOP实现:AOP框架在运行阶段动态生成AOP代理(在内存中动态地生成AOP代理类:JDK动态代理或cglib),以实现对目标

ack_Finding的博客 453

spring data jpa初试

核心配置: xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc"   xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http

yunxizixuan的专栏 459

狂胜说Spring

1. 介绍 Spring介绍 学习视频:https://www.bilibili.com/video/BV1WE411d7Dv Rod Johnson是Spring Framework的创始人。Spring的理念:使Java企业级开发更加简单 官网:https://spring.io/projects/spring-framework#overview 优点:一个开源的免费的容器(框架),其**最重要的特点是IOC,AOP,和支持事务的处理(面试被问到过)** 依赖包:使用spring-

老宋学习之路 725
上一篇: eclipse的Spring插件安装备忘
下一篇: OSWorkflow基本概念(from gigix)
_chage
博客等级 码龄24年 2粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值