使用spring aop 依赖外来jar: aopalliance.jar 、aspectjweaver.jar
简单打印log测试
<?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:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- services --> <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <property name="corePoolSize" value="5" /> <property name="maxPoolSize" value="10" /> <property name="queueCapacity" value="25" /> </bean> <bean id="taskExecutorExample" class="com.whty.service.TaskExecutorExample"> <constructor-arg ref="taskExecutor" /> </bean> </beans> <?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" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- services --> <aop:config> <aop:aspect ref="logBean"> <aop:pointcut id="businessService" expression="execution(* com.whty.service.*.*(..))"/> <aop:before pointcut-ref="businessService" method="print"/> </aop:aspect> </aop:config> <bean id="logBean" class="com.whty.service.LogBean"> </bean> </beans> package com.whty.service; import org.springframework.core.task.TaskExecutor; public class TaskExecutorExample { private class MessagePrinterTask implements Runnable { private String message; public MessagePrinterTask(String message) { this.message = message; } public void run() { System.out.println(message); } } private TaskExecutor taskExecutor; public TaskExecutorExample(TaskExecutor taskExecutor) { this.taskExecutor = taskExecutor; } public void printMessages() { for(int i = 0; i < 25; i++) { taskExecutor.execute(new MessagePrinterTask("Message" + i)); } } } package com.whty.service; import org.apache.log4j.Logger; public class LogBean { public Logger logger=Logger.getLogger(LogBean.class); public void print(){ logger.info("打印log!"); } } public class SpringContainer { public static void main(String[] args) throws IOException { ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"services.xml","spring-aop.xml"}); TaskExecutorExample t = context.getBean("taskExecutorExample", TaskExecutorExample.class); t.printMessages(); } }