`
xiaofengxbf
  • 浏览: 18304 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

AOP使用和配置

 
阅读更多

AOP使用代码:

一、Dao层

 接口:AopTestDao

 

package com.sshcp.dao;

public interface AopTestDao {
	public void aopTest();
}

 实现类:AopTestDaoImpl

 

 

package com.sshcp.dao.impl;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;

import com.sshcp.dao.AopTestDao;

@Component("aopTestDao")
public class AopTestDaoImpl implements AopTestDao {
	
	public void aopTest() {
		// TODO Auto-generated method stub
		   System.out.println("dao 层 ");
	
	}
}

 

 

service层:

接口类:AopServiceI

 

package com.sshcp.service.aopi;

public interface AopServiceI {
	
	public void aopTestMothod();

}

 实现类:AopServiceImpl

 

 

package com.sshcp.service.aopi.impl;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;

import com.sshcp.dao.AopTestDao;
import com.sshcp.service.aopi.AopServiceI;

@Component("aopServiceI")
public class AopServiceImpl implements AopServiceI {
   
	private AopTestDao aopTestDao ;  // 注入dao层AopTestDao
	
	public AopTestDao getAopTestDao() {
		return aopTestDao;
	}
    
	@Resource
	public void setAopTestDao(AopTestDao aopTestDao) {
		this.aopTestDao = aopTestDao;
	}


	public void aopTestMothod() {
		// TODO Auto-generated method stub
   		System.out.println("aop test service here ");
      
	}

}

 

 

切面类:AspectTest

 

package com.sshcp.aspect;

import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

@org.aspectj.lang.annotation.Aspect
@Component
public  class AspectTest {
     
	@Pointcut("execution(* com.sshcp.service.aopi.impl.AopServiceImpl.aop*(..)))")
	public void testMothod(){
	}
	
	@Before("testMothod()")
	public void beforeMothe(){
		System.out.println("121212121212121212 Before.......");
	}
	
	@After("testMothod()")
	public void afterMothe(){
		System.out.println("2323232323232323232 After........");
	}
}

 

Spring xml 中加入如下配置:

       <context:annotation-config />
       <aop:aspectj-autoproxy />
       <context:component-scan base-package="com.sshcp" />

 

测试代码:

package com.hibernate.test;

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

import com.sshcp.service.aopi.AopServiceI;

public class AopTest {
	
	@Test
	public void test(){
		ApplicationContext app = new ClassPathXmlApplicationContext("classpath:applicationContext-c3p0.xml");
		AopServiceI as = (AopServiceI)app.getBean("aopServiceI");
		as.aopTestMothod();
	}
}

 

测试打印出的信息:

121212121212121212 Before.......
aop test service here
2323232323232323232 After........

 

搞定

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics