问题描述
- 类DataSourceAdvice实现MethodBeforeAdvice,没起作用
-
类DataSourceAdvice.javapublic class DataSourceAdvice implements MethodBeforeAdvice { // service方法执行之前被调用 @Override public void before(Method method, Object[] args, Object target) throws Throwable { System.out.println("切入点: " + target.getClass().getName() + "类中" + method.getName() + "方法"); if(method.getName().startsWith("add") || method.getName().startsWith("create") || method.getName().startsWith("save") || method.getName().startsWith("edit") || method.getName().startsWith("update") || method.getName().startsWith("delete") || method.getName().startsWith("remove")){ System.out.println("切换到: master"); DataSourceSwitcher.setMaster(); } else { System.out.println("切换到: slave"); DataSourceSwitcher.setSlave(); } } }
实现MethodBeforeAdvice,重载before方法.在spring.xml
<bean id="dataSourceAdvice" class="com.sly.spring.DataSourceAdvice" /> <aop:config> <aop:pointcut id="transacationPointcut" expression="execution(* com.sly.service.*.*(..))" /> <aop:advisor advice-ref="dataSourceAdvice" pointcut-ref="transacationPointcut" /> </aop:config>
但是为什么我请求Service时,切面的内容没有打印呢?
时间: 2024-10-21 13:12:46