Spring知识点总结-3

简介:

1、被代理的类: Target.java

 
  1. public class Target { 
  2.  
  3.     public String execute() { 
  4.         String message = "Target class"
  5.         System.out.println(message); 
  6.         return message; 
  7.     } 

2、代理类:MyMethodInterceptor.java

 
  1. import net.sf.cglib.proxy.MethodInterceptor;  
  2. import net.sf.cglib.proxy.MethodProxy;  
  3.  
  4. import java.lang.reflect.Method;  
  5.  
  6. public class MyMethodInterceptor implements MethodInterceptor {  
  7.  
  8.     public Object intercept(Object object, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {  
  9.         System.out.println("++Target start++");  
  10.         Object result = methodProxy.invokeSuper(object,args);  
  11.         System.out.println("++Target end++");  
  12.         return "hello";  
  13.     }  

3、测试类:TestCglibProxy.java

 
  1. import net.sf.cglib.proxy.Enhancer; 
  2.  
  3. public class TestCglibProxy { 
  4.     public Object createProxy(Class targetClass) { 
  5.         Enhancer enhancer = new Enhancer(); 
  6.         enhancer.setSuperclass(targetClass); 
  7.         enhancer.setCallback(new MyMethodInterceptor()); 
  8.         return enhancer.create(); 
  9.     } 
  10.  
  11.     public static void main(String rags[]) { 
  12.         //Target target = new Target(); 
  13.         TestCglibProxy test = new TestCglibProxy(); 
  14.         Target proxyTarget = (Target) test.createProxy(Target.class); 
  15.         String res = proxyTarget.execute(); 
  16.         System.out.println(res); 
  17.     } 

4、执行结果

 
  1. ++Target start++ 
  2. Target class 
  3. ++Target end++ 
  4. hello 

 

本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/426494,如需转载请自行联系原作者

相关文章
|
XML 缓存 前端开发
Spring入门系列:浅析知识点
本文介绍了学习Spring源码前需要掌握的核心知识点,包括IOC、AOP、Bean生命周期、初始化和Transaction事务。通过Hello World示例,讲解了如何使用Spring,并指出了深入了解Spring内部机制的方向。
180 1
|
8月前
|
SQL Java 数据库连接
Spring、SpringMVC 与 MyBatis 核心知识点解析
我梳理的这些内容,涵盖了 Spring、SpringMVC 和 MyBatis 的核心知识点。 在 Spring 中,我了解到 IOC 是控制反转,把对象控制权交容器;DI 是依赖注入,有三种实现方式。Bean 有五种作用域,单例 bean 的线程安全问题及自动装配方式也清晰了。事务基于数据库和 AOP,有失效场景和七种传播行为。AOP 是面向切面编程,动态代理有 JDK 和 CGLIB 两种。 SpringMVC 的 11 步执行流程我烂熟于心,还有那些常用注解的用法。 MyBatis 里,#{} 和 ${} 的区别很关键,获取主键、处理字段与属性名不匹配的方法也掌握了。多表查询、动态
238 0
|
监控 Java 应用服务中间件
Spring Boot 源码面试知识点
【5月更文挑战第12天】Spring Boot 是一个强大且广泛使用的框架,旨在简化 Spring 应用程序的开发过程。深入了解 Spring Boot 的源码,有助于开发者更好地使用和定制这个框架。以下是一些关键的知识点:
256 6
|
安全 Java Maven
Spring Boot资源文件问题总结(Spring Boot的静态资源访问,配置文件外置)
Spring Boot资源文件问题总结(Spring Boot的静态资源访问,配置文件外置)
2732 1
|
前端开发 Java 数据库连接
|
前端开发 Java 数据格式
10个知识点让你读懂spring MVC容器
随着 Spring Boot 逐步全面覆盖到我们的项目之中,我们已经基本忘却当年经典的 Servlet + Spring MVC 的组合,那让人熟悉的 web.xml 配置。而本文,我们想先抛开 Spring Boot 到一旁,回到从前,一起来看看 Servlet 是怎么和 Spring MVC 集成,怎么来初始化 Spring 容器的。
236 1
|
监控 Java 数据库连接
总结Spring Boot面试知识点
Spring Boot是一个基于Spring框架的开源项目,它简化了Spring应用的初始搭建以及开发过程。通过提供“约定优于配置”的方式,Spring Boot可以帮助开发者快速构建出生产级别的Spring应用。
416 0
|
Java 应用服务中间件 数据库连接
Spring5源码(51)-Servlet知识点回顾以及SpringMVC分析入口
Spring5源码(51)-Servlet知识点回顾以及SpringMVC分析入口
185 0
|
Java Spring
Spring5源码(28)-Aop知识点回顾以及基于Advice接口的增强实现
Spring5源码(28)-Aop知识点回顾以及基于Advice接口的增强实现
106 0