专业外贸网站建设公司价格,烟台网站建设方案优化,网站建设的意义与价值,网站开发招标前提广州疯狂软件学院拥有三大课程体系包括#xff1a;java课程#xff0c;android课程#xff0c;ios课程#xff0c;疯狂软件年终钜惠#xff0c;报名java就业班#xff0c;免费赠送基础班#xff0c;名额有限#xff0c;本月火热报名中#xff0c;欢迎有志之士电话或者… 广州疯狂软件学院拥有三大课程体系包括java课程android课程ios课程疯狂软件年终钜惠报名java就业班免费赠送基础班名额有限本月火热报名中欢迎有志之士电话或者咨询。 spring中的AOP是通过Java的动态代理实现的有关动态代理的详细解释参见 现在就使用Java的动态代理模拟AOP(使用JDK的动态代理) 1.建立实体对象 public class User { Integer id; String name; String pwd; public User() { } public User(int id, String name, String pwd) { this.id id; this.name name; this.pwd pwd; } //setter/getter } 2.建立接口 public interface UserDao { public void addUser(User user); } 3.实现接口 public class UserDaoImpl implements UserDao{ Override public void addUser(User user){ System.out.println(保存User到数据库中); throw new RuntimeException(); } } 4.创建拦截器(这个类就相当于aop中的切面类) public class MyInterceptor implements InvocationHandler { private Object target; public MyInterceptor() { } public MyInterceptor(Object target) { this.target target; } public Object getTarget() { return target; } public void setTarget(Object target) { this.target target; } public void before() { System.out.println(这是一个前置通知); } public void afterReturning() { System.out.println(这是一个后置通知); } public void afterThrowing() { System.out.println(这是一个异常通知); } public void after() { System.out.println(这是一个最终通知); } Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { Object returnValue null; try { before(); returnValue method.invoke(target, args); afterReturning(); } catch (Exception e) { afterThrowing(); } finally { after(); } return returnValue; } } 5.通过代理对象实现目标方法 Test public void testAOP() { UserDao userDao new UserDao(); MyInterceptor interceptor new MyInterceptor(); interceptor.setTarget(userDao); //通过代理的静态方法创建一个代理对象 //这个代理创建的时候接收了接口类型和拦截器的处理类在代理的背后他会调运拦截器的invoke这个 方法。 //因为传递的有接口类型所以可以强制类型转换到我们指定的接口类型 UserDao userDaoProxy (UserDao) Proxy.newProxyInstance(this.getClass().getClassLoader(), userDao.getClass().getInterfaces(), interceptor); //然后在代理对象处理的时候就会将我的逻辑织如到被代理的对象上 userDaoProxy.addUser(new User(1, a, b)); } 6.程序输出 这是一个前置通知 保存User到数据库中 这是一个异常通知 这是一个最终通知 疯狂Java培训专注软件开发培训提升学员就业能力重点提升实践动手能力。技术知识沉淀深厚的老师让你感受Java的魅力激发你对于编程的热爱让你在半年的时间内掌握8-10万的代码量掌握Java核心技术成为真正的技术高手;通过大量全真企业项目疯狂训练迅速积累项目经验。让你成为技能型的现代化高端人才迅速获得高薪就业!时间不等人赶紧联系我们吧!疯狂java培训中心地址广州天河区车陂沣宏大厦3楼。 疯狂Java培训专注软件开发培训提升学员就业能力重点提升实践动手能力。疯狂软件开设了java课程ios课程android课程为你提供一个学习java技能的好机会疯狂软件特大优惠活动,加疯狂软件微信号(疯狂软件),抢优惠,优惠100元赠送iOS教材一本 详情请看疯狂java培训官网。IT从业着仍是社会所需要的高端人才广州疯狂软件之力于培养企业所需要的中高端IT人才让你成为备受企业青睐的人才。 转载于:https://www.cnblogs.com/gojava/p/3498977.html