spring2 aop 例子

7、布尔网络的基础定义 本文介绍了布尔网络的基础定义及其在系统生物学中的应用。布尔网络是一种描述复杂系统动态行为的数学模型,由布尔变量和布尔函数组成,能够模拟生物系统中基因调控、信号传导和细胞代谢等过程。文章详细阐述了布尔网络的基本结构、动力学特征(如状态转移图和吸引子),以及其在生物建模中的重要价值,并探讨了优化和简化技术(如Backward Boolean Equivalence)如何提升其计算效率。 阅读详情

记录下AOP编程常用情况,调整格式,方便阅读

首先建立个被切入的类

package sinlff.aop;

/**
 * 
@author sinlff
 * 人实体
 
*/
public class Person {
    
/**
     * 年龄
     
*/
    
private int age;
    
    
/**
     * 姓名
     
*/
    
private String name;

    
public void birthday(String name) throws Exception {
        
throw new Exception("birthday's Exception Message......");
    }
    
    
/**返回年龄
     * 
@return the age
     
*/
    
public int getAge() {
        
return age;
    }

    
/**设置年龄
     * 
@param age the age to set
     
*/
    
public void setAge(int age) {
        
this.age = age;
    }

    
/**返回姓名
     * 
@return the name
     
*/
    
public String getName() {
        
return name;
    }
    
/**设置姓名
     * 
@param string the name to set
     
*/
    
public void setName(String string) {
        
this.name = string;
    }

}

 

要切入Person类的 birthday()方法的类

 

package sinlff.aop;

public class BirthdayExecute {

    
/**当Person类里的birthday执行抛出异常,则执行的函数
     * 
@param Exception exception类的对象
     
*/
    
public void throwExceptionBirthday(Exception exception) throws Exception{  
        System.out.println( exception.getMessage() 
+ "  throwExceptionBirthday execute......");
    }
    
    
/**当Person类里的birthday执行之前,则执行的函数
     * 
@param name birthday函数的字符串参数
     
*/
     
public void beforeBirthday(String name) { 
         System.out.println(name
+" beforeBirthday execute......");
     }
     
    
/**当Person类里的birthday执行之后,则执行的函数
     * 
@param person Person类的对象
     
*/
    
public void afterBirthday(Person person) {   
        System.out.println(person.getName() 
+"  afterBirthday execute......");
    }
}

 

配置文件

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop
="http://www.springframework.org/schema/aop"
       xmlns:tx
="http://www.springframework.org/schema/tx"
       xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"

       default-autowire
="byName" default-lazy-init="true">
  
<aop:aspectj-autoproxy/>
 
    
<!-- 被切入的一般操作类 -->
    
<bean id="person" class="sinlff.aop.Person">
    
</bean>
    
    
<!-- 切入的类 -->
    
<bean id="birthdayExecute" class = "sinlff.aop.BirthdayExecute">
    
</bean>

    
<tx:advice id="txAdvice"
        transaction-manager
="transactionManager">
        
<tx:attributes>
            
<tx:method name="birth*" read-only="true" />
            
<tx:method name="find*" read-only="true"/>  
            
<tx:method name="get*" read-only="true"/>  
            
<tx:method name="list*" read-only="true"/> 
            
<tx:method name="*" rollback-for="Exception"/>
        
</tx:attributes>
    
</tx:advice>

        
<aop:config>
            
<aop:pointcut id="birthday1"
                    expression
="execution(* sinlff.aop.Person.birth*(..)) and args(name)" />
            
<aop:pointcut id="birthday2"
                    expression
="execution(* sinlff.aop.Person.birth*(..)) and this(person)" />
            
<aop:pointcut id="birthday3"
                    expression
="execution(* sinlff.aop.Person.birth*(..))" />
             
             
            
<aop:advisor advice-ref="txAdvice" pointcut-ref="birthday1" />     
                     
            
<aop:aspect id="personBirthday" ref="birthdayExecute">
                
<aop:before pointcut-ref="birthday1"
                    method
="beforeBirthday" arg-names="name" /> 
                
<aop:after pointcut-ref="birthday2"
                    method
="afterBirthday" arg-names="person" />
                
<aop:after-throwing pointcut-ref="birthday3"
                    method
="throwExceptionBirthday" throwing="exception" />
            
</aop:aspect>
        
</aop:config>
        

    
<bean id="Datesource"
        class
="org.apache.commons.dbcp.BasicDataSource">
              
<property name="driverClassName"
                  value
="oracle.jdbc.driver.OracleDriver" />
              
<property name="url" value="jdbc:oracle:thin:@localhost:1521:sinlff" />
              
<property name="username" value="sinlff" />
              
<property name="password" value="123456" />
              
<property name="maxActive">
                  
<value>100</value>
        
</property>
    
</bean>
    
<bean id="SessionFactory"
        class
="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        
<property name="dataSource">
            
<ref bean="Datesource" />
        
</property>
        
<property name="hibernateProperties">
            
<props>
                
<prop key="hibernate.dialect">
                    org.hibernate.dialect.Oracle9Dialect
                
</prop>
            
</props>
        
</property>
        
<property name="mappingResources">
            
<list>
            
</list>
        
</property>
    
</bean>
    
    
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">   
        
<property name="sessionFactory">
            
<ref bean="SessionFactory" />
        
</property>
    
</bean>
 
</beans>

 测试

package sinlff.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import sinlff.aop.Person; 
 

import junit.framework.TestCase;

public class TestAOP extends TestCase {

    
private Person person;
    
    
public void setUp(){
        ApplicationContext applicationContext 
= new ClassPathXmlApplicationContext("applicationContext.xml");
        person 
= (Person) applicationContext.getBean("person");    
    }
    
    
public void testSendCardAOP() throws Exception {
        person.setName(
"sinlff");
        person.setAge(
22);
        person.birthday(
"new name");
    }
}

 

 

 

暂时只给出完整例子,因为我查到的资料都很零散,而且格式排版都很难看,内容给的不完整,导致学习障碍 

 

 

 

 

 

 

滤波算法实现大全——基于匀速直线运动模型的kalman滤波算法 阅读详情

相关推荐

【AutoSar CP】SoAd模块

比如对于特定的PDU,其PduId在程序编译时就确定了,但是在代码运行中,该PduId可能需要发送到不同的远端ip,这时就需要用SoAd来设置连接远端地址信息。SoAdSocketConnectionGroup(连接参数)SoAdSocketRoute(接收数据)SoAdRoutingGroup(开关)SoAdPduRoute(发送数据)

至道无难,唯嫌拣择。 1686

spring in action学习笔记 2 AOP的例子

[size=large][b]5.实现aop的例子[/b][/size] 1.首先先来点预备类,咱定义一个表演的接口,代码如下: [code="java"] public interface Perform { void perform(); }[/code] 就一个方法,表演节目,然后再定义2个实现类,ShowBoy和ShowGirl [code="ja...

DoubleEO---爱就是性,性就是死 196

Keil C51开发必看:详解data/xdata/bdata内存分配陷阱与避坑指南

本文深入解析Keil C51开发中的data/xdata/bdata内存分配陷阱,提供针对51芯片的高效避坑指南。通过真实案例揭示Keil编译器的隐藏规则,分享内存优化策略和调试技巧,帮助开发者解决data溢出、xdata访问异常等典型问题,提升嵌入式开发效率。

v6b7n8m9q0的博客 1072

【引用】spring in action学习笔记 2 AOP的例子-DoubleEO

5.实现aop的例子 1.首先先来点预备类,咱定义一个表演的接口,代码如下:  Java代码  public interface Perform {   void perform();   }       就一个方法,表演节目,然后再定义2个实现类,ShowBoy和ShowGirl  Java代码      public class ShowBoy implement...

有时间记录一点点 195

量化策略分享之ST股弱转强,回测年化123%

本策略的核心是精选ST股票,国九条过滤,防止直接暴雷退市,只做ST股票的弱转强,弱转强的认定标准是前日涨停但昨日不涨停,昨日收盘价大于前一日最低价,昨日收盘价大于10日线,昨日成交量大于前一日的成交量但小于前一日成交量的10倍,股价大于1;这类股票强势,有资金介入,能获得超额收益。

qq_29301281的博客 1268

固态变压器SST 1.1 课程整体框架与学习路径

本课程围绕固态变压器(SST)全生命周期工程化流程设计,构建"规范要求-理论基础-设计方法-仿真验证-工程落地"的闭环学习体系,完整覆盖GB/T 40429-2021标准要求。课程分为基础认知、核心设计、合规验证、工程落地和前沿拓展五大模块,采用理论讲解与工程实践深度融合的教学路径,通过规范条款拆解、仿真预验证、硬件实现、试验检测等环节,培养学员从设计到落地的完整能力。课程强调标准合规性,每个设计环节均有明确规范约束,并提供标准化工程模板,确保学习成果可直接应用于实际项目开发。

技术工作者 993

Spring2.5注解实现AOP(使用简单的例子进行介绍) 收藏

Spring2.5注解实现AOP(使用简单的例子进行介绍) 收藏 这个例子非常的简单,下面是实体类 view plaincopy to clipboardprint? 1. package test; 2. 3. /** 4. * 5. * @author neu_20063500 6. * 7....

zscomehuyue的专栏 182

库卡kuka仿真软件sim Pro 3.1简单实用教程

实验目的 建立机器人,自定义抓手,导入外部模型,掌握工具坐标、基坐标的使用,自动生成轨迹。 实验步骤 打开KUKA.Sim Pro 3.1.2仿真软件,依次点击KUKA Sim Library 3.1 → KUKA_ROBOTS→Small Robots(3kg-10kg)→Archiv→AGILUS-1 Series→sixx,双击KR 6 R700 sixx,加载机器臂到工作空间; 加载自定义抓手。双击Miscellaneous,再双击圆锥Cone设置上半径为0,下半径为40,高为100; 点击“捕

weixin_45168199的博客 4万+

Spring Aop Schema 实现

本例使用的是Spring2.5 1、Aop配置文件spring-aop.xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org

fmt.Println( 3350

基于Python的房地产评估数据抓取与分析 —— 房价走势与市场报告

在房地产行业中,了解和分析房产价格的变化趋势、各个地区的房价差异以及市场评价报告,可以帮助投资者、购房者以及政策制定者做出更加明智的决策。本文介绍了如何使用Python爬虫技术抓取房地产平台上的房产评估报告、价格走势等数据,并对抓取的数据进行分析。通过这些技术,您可以自动化抓取房地产平台的数据,分析房价走势,获取市场报告,为房地产投资决策提供数据支持。假设我们要从链家网抓取某个房产的价格、房产描述以及历史成交价格,首先需要获取目标房产页面的URL,并发送HTTP请求。伪装为常见浏览器,避免被识别为爬虫。

2201_76125261的博客 847

OpenGL 进阶系列10 - 光线跟踪实现简介(Ray Tracing)

OpenGL 实现光线跟踪(Ray Tracing)是一个相对复杂但有趣的挑战,通常用于生成高度逼真的图像效果,如反射、折射、阴影等。OpenGL 本身并不是为光线跟踪设计的,但可以通过结合计算着色器和现代 OpenGL 功能实现光线跟踪。光线跟踪的基本思路是从相机(或视点)出发,发射光线并计算这些光线与场景中物体的交点。光线与场景中物体相交的计算。计算交点的光照(基于表面法线、光源位置、材质等)。反射和折射的处理(如果物体是透明或反射的)。

GPU全栈博主 1534

Spring 2.X 中AOP的使用浅析

本文转自网络   和Spring1.X相比,Spring2.X使用ASPectJ的语法来声明AOP,这使得它更“标准”,更灵活了。还是那句话,如果你不了解AspectJ并且打算使用Spring2.X的AspectJ式AOP,那就学学AspectJ吧,这方面的书还是很多了。   Spring2.X下的切面有两种实现方式,一种是以Java文件定义切面(其只是普通的Java类),然后在配置文件中声明定义...

简约时尚,突破自我 358

流体仿真软件:COMSOL Multiphysics二次开发_(11).COMSOL与外部软件的数据交换

通过上述方法,您可以实现 COMSOL Multiphysics 与外部软件的数据交换,从而更好地集成和分析仿真结果。无论是从文本文件导入数据,导出数据到 MATLAB,还是通过 API 和 COMSOL Server 实现实时通信,都能满足不同场景下的需求。希望这些内容对您在流体仿真领域的开发工作有所帮助。

kkchenjj的博客 1553

经典Java面试题 ——Spring AOP

[面试原题]Action类的定义如下:为该类的actionSomeThing方法定义的切面拦截如下:请问在执行Action对象的actionSomeThing()时的输出是什么?A.123456B. 654321C. 521643D.521463[正确答案]C[面试技术点]Spring?AOP定义以及切面执行顺序。[解读]AOP技术利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为“Aspect”,即方面。所谓“方面”,简单地说,就是将那些与业务

m0_67394230的博客 174

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Spring AOP使用步骤

在Spring中使用AOP编程步骤: 以下使用的Spring为2.5.6版本 1、在Spring配置文件(applicationContext.xml)中配置Spring对AspectJ的支持;以下两种方式任意一种即可      &lt;!-- &lt;aop:aspectj-autoproxy/&gt; --&gt;     &lt;bean cl...

Rote 223

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Spring AOP 之 ThrowAdviceDemo

Spring AOP 之 ThrowAdviceDemo

樱*夜精灵 813

基于注解的Spring AOP例子

第一步:接口package com.spring.aop; public interface ArithmeticCalculator { int add(int i, int j); int sub(int i, int j); int mul(int i, int j); int div(int i, int j); } 第二步:实现类 package com.spr

下木的博客 408

细说Spring——AOP详解(AOP概览)

一、对AOP的初印象 首先先给出一段比较专业的术语(来自百度): 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方 式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个 热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑 的各个部分进行隔离,从而...

啦啦啦的博客 54万+

spring2.5.6-aop

  1 包说明 //spring运行需要导入的包 spring.jar commons-logging.jar //依赖注入需要导入的包   cglib.jar   asm.jar   //aop 需要导入的包 aspectjweaver.jar  cglib.jar  aop配置使用依赖注入的方式 不使用xml的方式   2 编写aop基本类 man...

c903192109的专栏 306

Spring的AOP实现例子

一、为什么需要AOP 假如我们应用中有n个业务逻辑组件,每个业务逻辑组件又有m个方法,那现在我们的应用就一共包含了n*m个方法,我会抱怨方法太多。。。现在,我有这样一个需求,每个方法都增加一个通用的功能,常见的如:事务处理,日志,权限控制。。。最容易想到的方法,先定义一个额外的方法,实现该功能,然后再每个需要实现这个功能的地方去调用这个额外的方法。这种做法的好处和坏处分别是。 好处:可以动态地添...

蔡小波的博客 6433

Spring AOP

AOP(Aspect-Oriented Programming,面向切面编程):是一种软件开发的编程范式,旨在将横切关注点(cross-cutting concerns)与核心业务逻辑分离,以提高代码的模块化性、可维护性和复用性

2301_76161469的博客 5328

【Spring】AOP

AOP(Aspect Oriented Programming) 是一种编程范型,即面向切面编程。什么是面向切面编程?切面就是指某一类特定问题,所以AOP也可以理解为面向特定方法编程。面向编程旨在通过分离横切关注点来提高代码的模块化和可维护性,允许开发者将那些与业务逻辑无关,但又需要在多个地方使用的功能(如日志记录、事务管理、安全性等)从业务逻辑中分离出来。在前面我们的登录校验,用了拦截器,其实也是对AOP思想的一种实现。统一数据返回格式和统一异常处理也是AOP的一种实现。

zhyhgx的博客 1913

Spring关于AOP的简单例子

1.AOP(面向切面编程) AOP(Aspect-OrientedProgramming),利用一种称为"横切"的技术,剖解开封装的对象内部,将那些影响了多个类的公共行为封装到一个可重用模块,命名为"Aspect",即切面。所谓"切面",简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可维护性。使用"横切"技术,AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是

weixin_44547592的博客 1408

实现spring-aop例子

1.Spring aop的定义:Spring aop是spring的2大核心之一,又叫面向切面编程,是对oop的一种完善。通俗地说就是不改变原来的类的功能,额外地增加功能。所以aop采用的是动态代理模式:有java动态代理模式(默认),cglib动态代理模式。当需要代理的类不是接口类型的时候,Spring会自动切换为CGLIB来进行代理,也可以强制的选择使用CGLIB来进行代理动态代理分为两种: ...

灰太狼 1993

Java八股 深入理解Spring的AOP 面向切面编程 底层 保姆级教程 手写例子

AOP 的核心是连接点连接点是我们需要关注的程序拓展点可能是类初始化 方法执行 方法调用 字段调用 异常处理等Spring 支持的连接点是方法执行点切入点是一系列连接点的集合,Spring默认使用AspectJ语法,在AOP中抽象表示为可以进行操作的集合之后就是通知通知就是我们在连接点上执行的行为连接点 切入点 通知组合在一起 就是一个切面把切面映入到其他应用程序或者对象上,创建一个被通知的对象,这些就是织入,Spring 在运行时完成织入 ,在 AOP 中表示为怎么实现的,实现方式。

多多的博客 1713

Spring AOP环绕型Advice简单例子

刚开始学习到Spring AOP的时候,看那些神马连接点,切面,通知之类的概念,完全理解不了,一头雾水。后来照着书敲代码上去运行,成功以后,仔细看看代码,稍作琢磨,再看看那些概念的描述,恍然大悟,哇哦,原来是这样,其实是那么简单。        所以,感觉很多知识不懂的时候,觉得那个东西特别难特别牛逼,当你明白了以后,发现原来也没神马大不了的。        我觉得学习这些东西先从简单的应用例

leon709的专栏 6415
上一篇: spring aop编程与ssh集成的奇怪异常问题解决办法
下一篇: Junit测试spring hibernate产生javaw.exe异常的问题解决
西兹兹
博客等级 码龄22年 21粉丝 34原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值