Spring AOP实践 (一)

2014-11-24 11:49:51 · 作者: · 浏览: 23

原来的代码是这样的:

[java]
package main.java;

/**
* <一句话功能简述>
* <功能详细描述>
*
* @author cKF54238
* @version [版本号, Apr 1, 2013]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public interface BusinessTrans
{
void doIt();
}

package main.java;

/**
* <一句话功能简述>
* <功能详细描述>
*
* @author cKF54238
* @version [版本号, Apr 1, 2013]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public interface BusinessTrans
{
void doIt();
}

[java]
package main.java.impl;

import main.java.BusinessTrans;

/**
* <一句话功能简述>
* <功能详细描述>
*
* @author cKF54238
* @version [版本号, Apr 1, 2013]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class BusinessTransImpl implements BusinessTrans
{
/**
* 需求:希望在执行这个方法前,做一个Id鉴权
* @param name
*/
public void doIt()
{
System.out.println("excute immediatly");
}
}

package main.java.impl;

import main.java.BusinessTrans;

/**
* <一句话功能简述>
* <功能详细描述>
*
* @author cKF54238
* @version [版本号, Apr 1, 2013]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class BusinessTransImpl implements BusinessTrans
{
/**
* 需求:希望在执行这个方法前,做一个Id鉴权
* @param name
*/
public void doIt()
{
System.out.println("excute immediatly");
}
}

这样只要在原来代码实现中加上鉴权的方法就行了。

[java]
package main.java.impl;

import main.java.BusinessTrans;

/**
* <一句话功能简述>
* <功能详细描述>
*
* @author cKF54238
* @version [版本号, Apr 1, 2013]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class BusinessTransImpl implements BusinessTrans
{
/**
* 需求:希望在执行这个方法前,做一个Id鉴权
* @param name
*/
public void doIt()
{
if (haveNoPopedom())
{
return;
}

System.out.println("excute immediatly");
}

private boolean haveNoPopedom()
{
return false;
}
}

package main.java.impl;

import main.java.BusinessTrans;

/**
* <一句话功能简述>
* <功能详细描述>
*
* @author cKF54238
* @version [版本号, Apr 1, 2013]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class BusinessTransImpl implements BusinessTrans
{
/**
* 需求:希望在执行这个方法前,做一个Id鉴权
* @param name
*/
public void doIt()
{
if (haveNoPopedom())
{
return;
}

System.out.println("excute immediatly");
}

private boolean haveNoPopedom()
{
return false;
}
}

[java]
package main.java.impl;

import main.java.BusinessTrans;
import main.java.logger.Level;
import main.java.logger.Logger;

/**
* <一句话功能简述>
* <功能详细描述>
*
* @author cKF54238
* @version [版本号, Apr 1, 2013]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class BusinessTransProxy implements BusinessTrans
{
private BusinessTrans businessTrans;

public BusinessTransProxy(BusinessTrans businessTrans)
{
this.businessTrans = businessTrans;
}

public void doIt()
{
Logger.logging(Level.INFO, "before excute doIt");

businessTrans.doIt();

Logger.logging(Level.INFO, "after excute doIt");
}
}

package main.java.impl;

import main.java.BusinessTrans;
import main.java.logger.Level;
import main.java.logger.Logger;

/**
* <一句话功能简述>
* <功能详细描述>
*
* @author cKF54238
* @version [版本号, Apr 1, 2013]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class BusinessTransProxy implements BusinessTrans
{
private BusinessTrans businessTrans;

public BusinessTransProxy(BusinessTrans businessTrans)
{
this.businessTrans = businessTrans;
}

public void doIt()
{
L