1,aop
暂时只介绍注解模式的aop,日志案例
第一种
@Aspectpublic class Log {//在方法里指定调用位置,然后execution指定具体执行哪个方法时候执行@Before("execution(* com.xkcoding.properties.dao.UserServiceImp.getUser(..))")public void before(){System.out.println("-----方法执行前------");}}
<?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"><bean id="userDAOImp" name="userDAOImp" class="com.xkcoding.properties.dao.UserDAOImp"></bean><!-- constructor-arg 构造方法来配置资源--><bean id="UserServiceImp" name="userServiceImp" class="com.xkcoding.properties.dao.UserServiceImp" scope="singleton" autowire="byName"><!-- <property name="userDAO" ref="userDAOImp"></property>--></bean><bean id="Log" class="com.xkcoding.properties.proxy.Log"></bean>//自动注入<aop:aspectj-autoproxy></aop:aspectj-autoproxy></beans>
第二种
在beans里面通过xml宏观管理组件的方式
<aop:config><aop:aspect ref="Log">//第一个*是返回值<aop:pointcut id="pointcut" expression="execution(* com.xkcoding.properties.dao.UserServiceImp.getUser(..))"/><aop:before method="before" pointcut-ref="pointcut"/></aop:aspect></aop:config>
2,mybatis的xml注入,一步步利用容器创建想要的实例<br /><br />2, bean的缓存<br />[https://zhuanlan.zhihu.com/p/186212601](https://zhuanlan.zhihu.com/p/186212601)<br />在
