`

aopalliance.intercept 实际应用

阅读更多

   XML文件配置:

   <?xml version="1.0" encoding="UTF-8"?>
<!--http://www.springframework.org/dtd/-->
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

 "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>


<bean id="authManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
  <property name="transactionManager">
   <ref bean="transactionManager"/>
  </property>
  <property name="target">
   <ref local="authManagerTargetIntercepted"/>
  </property>
  <property name="transactionAttributes">
   <props>
    <prop key="*">PROPAGATION_REQUIRED</prop>
   </props>
  </property>
 </bean>

 

 <bean id="authManagerTargetIntercepted" class="org.springframework.aop.framework.ProxyFactoryBean">
     <property name="interceptorNames">
            <list>
              <value>sheetAuthManagerInterceptor</value>
              <value>authManagerTarget</value>
            </list>
     </property>
 </bean>


 <bean id="authManagerTarget" class="com.dd.ee.security.hibernate.HibernateAuthManager">
  <property name="hibernateTemplate">
   <ref bean="hibernateTemplate"/>
  </property>
 </bean>



 <bean id="sheetAuthManagerInterceptor" class="com.dd.ff.sheet.security.SheetAuthManagerInterceptor">
  <property name="codeManager">
   <ref bean="codeManager"/>
  </property>
 </bean>
</beans>

=======================================================================

   MethodInterceptor代码

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;

 

public class tAuthManagerInterceptor implements MethodInterceptor{

 

   private final static String INTERCEPT_METHOD1 = "getAuthToken";
  private final static String INTERCEPT_EXTERNAL_METHOD1 = "getExternalAuthToken";
 private CodeManager codeManager;

 /**
  * @return Returns the codeManager.
  */
 public CodeManager getCodeManager() {
  return codeManager;
 }
 /**
  * @param codeManager The codeManager to set.
  */
 public void setCodeManager(CodeManager codeManager) {
  this.codeManager = codeManager;
 }
 /* (non-Javadoc)
  * @see org.aopalliance.intercept.MethodInterceptor#invoke(org.aopalliance.intercept.MethodInvocation)
  */
 public Object invoke(MethodInvocation methodInvocation) throws Throwable {

  Object retVal = methodInvocation.proceed();

  String methodName = methodInvocation.getMethod().getName();
  try {
   if (INTERCEPT_METHOD1.equals(methodName)||INTERCEPT_EXTERNAL_METHOD1.equals(methodName)) {
    process_buildAuthToken(methodInvocation, (AuthToken) retVal);
   }
  } catch (Exception e) {
   logger.warn("[w] not set AuthToken attribute flowDept. caused: " + e.getMessage());
 }

  return retVal;
 }

 

 

 private void process_buildAuthToken(MethodInvocation methodInvocation, AuthToken authToken) throws Throwable {
  List deptAncestors = (List) authToken.getAttribute("deptAncestors");
  String flowDept = getFlowStartDept(deptAncestors);
  
  if (flowDept != null&&(!"AHA".equals(flowDept))){
 自己要做的事情

  }

}


 }

 

 

 =======================================================

 

   应用代码

 

 AuthManager authManager = (AuthManager) getBean(AuthManager.BEAN_ID);
   AuthToken authToken = authManager.getAuthToken(userCode, password);

 

==============

附件JAR

分享到:
评论

相关推荐

    aopalliance最新完整jar包

    在Java应用中,aopalliance.jar包扮演着至关重要的角色,它包含了一些核心接口,如`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.aop.Advice`,这些接口定义了拦截器和通知的概念,它们是AOP的...

    aopalliance.zip

    AOP Alliance的核心接口包括`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.intercept.Interceptor`。`MethodInterceptor`接口定义了一个拦截方法调用的标准,它通过`invoke(MethodInvocation)`...

    com.springsource.org.aopalliance-1.0.0.jar.zip

    五、实际应用示例 在Spring配置中,我们可以通过`&lt;aop:config&gt;`标签来定义切面,然后使用`&lt;aop:advisor&gt;`或`&lt;aop:aspect&gt;`来指定拦截器。例如: ```xml &lt;aop:config&gt; &lt;aop:aspect id="loggingAspect" ref=...

    com.springsource.org.aopalliance-1.0.0的jar包

    `com.springsource.org.aopalliance`库提供了两个主要的接口:`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.intercept.Interceptor`,它们定义了拦截器的行为,使得不同的AOP实现可以互相协作...

    aopalliance-1.0.jar及aopalliance源码

    AOP Alliance的核心在于它的简单性,它仅定义了一些基本的接口,如`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.intercept.MethodInvocation`,这些接口是大多数AOP框架共有的基础。...

    aopalliance

    对于AOPAlliance,javadoc详细阐述了各个接口和类的功能、用法和注意事项,是理解AOPAlliance工作原理和实际应用的关键。 五、实践应用 使用AOPAlliance,开发者可以在Spring 2.0中定义自己的拦截器或通知,实现...

    aspectjrt& aspectjweaver&aspectj&aopalliance.jar

    它定义了一些基本的切面和通知接口,如`org.aopalliance.aop.Aspect`和`org.aopalliance.intercept.MethodInterceptor`,这些接口被多个AOP框架广泛采用,包括AspectJ。 在实际应用中,这四个库常常一起使用,以...

    spring aop依赖包 aspectjweaver-1.8.7 aspectjrt-1.8.7 aopalliance-1.0

    AOP Alliance提供了一个简单的接口集,包括`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.intercept.MethodInvocation`等,它们是AOP框架之间互操作性的基础。Spring AOP和其他AOP实现如AspectJ...

    aopalliance-white-paper(AOP Alliance白皮书)

    - **`org.aopalliance.aspectj.Pointcut`**:与 `org.aopalliance.intercept.Pointcut` 类似,但提供了更多的灵活性来指定切入点。 #### 五、AOP Alliance 在实际项目中的应用案例 - **日志记录**:通过定义一个...

    spring+aspectjweaver-1.7.1.jar+aspectj-1.8.9.jar+aopalliance.jar

    `aopalliance.jar`是AOP联盟提供的一个接口库,它定义了一些通用的AOP接口,如`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.aop.Advice`。这些接口使得不同AOP框架(如Spring AOP和AspectJ)...

    aopalliance-1.0.rar

    在实际应用中,"aopalliance-1.0.rar"包含的"aopalliance-1.0.jar"文件是项目构建的重要组成部分。在Maven或Gradle等构建工具中,将这个jar文件添加到项目的依赖管理中,可以轻松地引入AOP Alliance的API,从而实现...

    aopalliance-1.0.jar+aspectjweaver.jar

    在实际应用中,`aopalliance-1.0.jar`和`aspectjweaver.jar`常被用于Spring框架中,因为Spring支持AOP Alliance的接口,同时也支持AspectJ作为其AOP实现。这样,我们可以在Spring配置中定义切面,并利用AspectJ ...

    aopalliance源码

    在实际应用中,`MethodInterceptor`通常与`org.springframework.aop.framework.ProxyFactoryBean`或`org.aspectj.lang.ProceedingJoinPoint`等具体实现结合使用。`ProxyFactoryBean`是Spring AOP中的一个关键组件,...

    Spring使用AOP的三个jar包

    最后,`aopalliance-1.0.0.jar`是AOP联盟提供的一个接口库,它定义了一些通用的AOP接口,比如`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.intercept.MethodInvocation`,使得不同的AOP框架...

    aopalliance-alpha1.jar.zip

    1. `org.aopalliance.intercept.MethodInterceptor`: 这个接口定义了方法拦截器的规范,它是AOP中最常见的通知类型。方法拦截器可以在方法调用前后插入自定义的行为,如性能监控、事务管理等。通过实现`invoke...

    aopalliance-1.0

    在aopalliance-1.0.jar中,最重要的接口有两个:org.aopalliance.intercept.MethodInterceptor 和 org.aopalliance.aop.Advice。这两个接口是AOP Alliance的基础,它们定义了AOP的核心概念。 1. `MethodInterceptor...

    aopalliance-1.0.0.jar和aspectj.weaver-1.6.8.RELEASE.jar

    在实际应用中,Spring框架经常与AspectJ结合使用,通过`aopalliance`库作为中间层,确保Spring的AOP功能和AspectJ的编织能力可以协同工作。例如,Spring的代理模式可以利用`aopalliance`接口来创建拦截器,而AspectJ...

    aspectjweaver-1.8.7和aopalliance1.0

    aopalliance1.0是AOP Alliance的早期版本,它定义了一些基本的接口,如`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.intercept.MethodInvocation`,这些接口是拦截器模式的核心,允许在方法...

    aspectj-aspectjweaver-aopalliance

    这个库提供了一个公共API,比如`org.aopalliance.intercept.MethodInterceptor`接口,它是所有拦截器(interceptors)的基类,使得不同的AOP框架如Spring AOP和AspectJ可以在同一项目中协同工作。 使用这三个库,...

    aopalliance 源码

    AOP Alliance主要定义了两个核心接口:`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.intercept.Interceptor`。`MethodInterceptor`接口是AOP Alliance中处理方法拦截的关键,它定义了一个`...

Global site tag (gtag.js) - Google Analytics