注入AspectJ切面

package com.test.aspectj;

public aspect CriticAspect {
	
	pointcut performance() : execution(* com.test.aspectj.Performance.perform(..));
	
	
     after() returning : performance(){
		System.out.println(criticsmEngine.getCriticism());
	}
    
    private CriticsmEngine criticsmEngine;

	public CriticsmEngine getCriticsmEngine() {
		return criticsmEngine;
	}

	public void setCriticsmEngine(CriticsmEngine criticsmEngine) {
		this.criticsmEngine = criticsmEngine;
	}
    
    
}



package com.test.aspectj;

public interface CriticsmEngine {
    public String getCriticism();
}



package com.test.aspectj;

public class CriticsmEngineImpl implements CriticsmEngine{

	@Override
	public String getCriticism() {
		// TODO Auto-generated method stub
		int index=(int)(Math.random()*criticsmPool.length);
		return criticsmPool[index];
	}
	
	private String[] criticsmPool;

	public String[] getCriticsmPool() {
		return criticsmPool;
	}
	public void setCriticsmPool(String[] criticsmPool) {
		this.criticsmPool = criticsmPool;
	}
	

}



package com.test.aspectj;

public interface Performance {
    public void perform();
}

package com.test.aspectj;

public class Singer implements Performance{
	
	private String artist="Lucy";
	private String title="SkyStar";

	@Override
	public void perform() {
		// TODO Auto-generated method stub
		System.out.println(artist+" plays "+title);
	}

}




    
    
    
       
          
             Worst Performance ever!
             I laughed and cried!
             A must see show!
          
       
    
    
    
      
    

package com.test.aspectj;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:config.xml")
public class DemoTest {
    
	@Autowired
	public Performance performer;
	
	@Test
	public void testPerform(){
		performer.perform();
	}
}





你可能感兴趣的:(Spring)