首先我们需要一些jar,生成xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 定义目标对象 --> <bean id="testDao" class="com.hp.dao.TestDaoImpl"/> <!-- 创建一个切面 --> <bean id="myAspect" class="com.hp.aop.MyAspect"/> <!-- 使用Spring代理工厂定义一个名为testDaoProxy的代理对象 --> <bean id="testDaoProxy" class="org.springframework.aop.framework.ProxyFactoryBean"> <!-- 指定代理实现的接口 --> <property name="proxyInterfaces" value="com.hp.dao.TestDao"/> <!-- 指定目标对象 --> <property name="target" ref="testDao"/> <!-- 指定切面,植入环绕通知 --> <property name="interceptorNames" value="myAspect"/> <!-- 指定代理方式,true指定CGLIB动态代理;默认false,指定JDK动态代理 --> <property name="proxyTargetClass" value="true"/> </bean> </beans>
其次编写dao层
package com.hp.dao; /** * @author xc */ public interface TestDao { public void test(); }
再编写impl
package com.hp.dao; /** * @author xc */ public class TestDaoImpl implements TestDao{ @Override public void test() { System.out.println("哈哈,发现我了!"); } }
最后我们测试test
package com.hp.dao; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.hp.dao.TestDao; public class Test { public static void main(String[] args) { //初始化Spring容器ApplicationContext,加载配置文件 ApplicationContext appCon = new ClassPathXmlApplicationContext("applicationContext.xml"); //通过容器获取test实例 TestDao tt = (TestDao)appCon.getBean("testDao");//test为配置文件中的id tt.test(); } }