一.什么是代理模式 相信大家都知道代理商这个概念,在商业中,代理商无处不在.假设你要去买东西,你不可能去找真正的厂家去买,也不可能直接跟厂家提出需求,代理商就是这中间的一桥梁,连接买家和厂商.你要买或者定制什么产品,需要什么规格样式和价格的直接跟代理商沟通就好了,由代理商与真实的厂商沟通,这样买家有什么问题都可以咨询代理商,真实厂商也就可以专心做产品,不需要管其他事务了,买家也插手不了厂商的事. 在以上的关系中,厂商就是被代理对象,代理商就是代理对象,而买家就是调用者了.java中有多种动态代理…
JDK 动态代理是通过 JDK 中的 java.lang.reflect.Proxy 类实现的.下面通过具体的案例演示 JDK 动态代理的使用. 1. 创建项目 在 MyEclipse 中创建一个名称为 springDemo03 的 Web 项目,将 Spring 支持和依赖的 JAR 包复制到 Web 项目的 WEB-INF/lib 目录中,并发布到类路径下. 2. 创建接口 CustomerDao 在项目的 src 目录下创建一个名为 com.mengma.dao 的包,在该包下创建一个 C…
使用java几十行代码实现一个高质量图片压缩程序,再也不用去自己找网络的压缩程序啦!而且很多网上的工具还有水印或者其他的限制,自己动手写一个简单的应用,是再合适不过了. 一.实现原理 1.声明两个字符串变量,分别是要压缩图片的路径和压缩后图片的存放路径 private String brfore_image_path = "D:\\01.jpg"; private String after_image_path = "D:\\temp"; 2.利用字符串的方法las…
aop学习总结一------使用jdk动态代理实现aop功能 动态代理:不需要为目标对象编写静态代理类,通过第三方或jdk框架动态生成代理对象的字节码 Jdk动态代理(proxy):目标对象必须实现接口,jdk的动态代理对象会默认实现目标对象的所有接口 模拟业务需求: 1.拦截所有业务方法 2.判断用户是否有权限,有权限就允许用户执行业务方法,无权限不允许用户执行业务方法 (判断是否有权限是根据user是否为null) 业务接口类: public interface PersonService…
代理模式基本概念:1.代理模式的作用:为其他对象提供一种以控制对方的访问在某种情况下,一个客户不想或者不能直接引用另一个对象,代理可以在客户端和目标对象之间起到中介的作用代理的角色:(1)抽象角色:声明真实对象和代理对象的共同接口(比如租房,抽象角色就是把租房这件事给抽象成一个接口)(2)代理角色:代理对象内部含有真实对象的引用,从而可以操纵真实的对象,同时代理对象提供与真实对象相同的接口,以便在任何时候都能代替真实对象.代理对象可以在执行真实对象操作时附加其他的操作(比如,租房时,中介收中介费…
JDK 动态代理使用起来非常简单,但是它也有一定的局限性,这是因为 JDK 动态代理必须要实现一个或多个接口,如果不希望实现接口,则可以使用 CGLIB 代理. CGLIB(Code Generation Library)是一个高性能开源的代码生成包,它被许多 AOP 框架所使用,其底层是通过使用一个小而快的字节码处理框架 ASM(Java 字节码操控框架)转换字节码并生成新的类.因此 CGLIB 要依赖于 ASM 的包,解压 Spring 的核心包 spring-core-3.2.2.RELE…
在Java的java.lang.reflect包下提供了一个Proxy类和一个InvocationHandler接口.通过这个类和接口可以生成JDK动态代理类或动态代理对象. JDK动态代理例子: // 抽象主题角色 public interface Sleep { void sleep(); } // 真实主题角色 public class SleepImpl implements Sleep { @Override public void sleep() { System.out.print…
Tips1:eclipse中会经常用到System.out.println方法,可以先输入syso,然后eclipse就会自动联想出这个语句了!! 学习笔记: *包.权限控制 1.包(package)概念的引入是为了防止类名冲突.package语句要作为java源文件的第一条语句. 2.两个类在同一个包中,可以相互调用:两个类在不同的包中,若想引用则必须通过import语句导入,格式为:import 包名.子包名.类名. 3.如果在程序中同时导入了两个包的同类名,则在使用时必须明确的写出完整的“…
用记事本来编写java 首先你要安装JDK. 第一步下载JDK. 这步不多BB. 第二部安装JDK. 你要么改安装地址或者默认. 也不多BB. 第三步配置环境变量 WIN10为例: 此电脑 右键  属性 高级系统设置 接着 然后打开环境变量. 这是已经配置好的. 首先你要新建,在系统变量里面新建 第一个是JAVA_HOME,值为你JDK的安装位置.我的默认是:C:\Program Files\Java\jdk1.8.0_111: 第二个是CLASSPATH,值为为JDK的两个jar文件位置.分别…
JavaWEB篇一 1 Tomcat的安装和配置 2 JavaWeb开发的目录结构 3 使用Eclipse开发JavaWeb项目 4 第一个Servlet程序 5 Servlet 的配置及生命周期方法 6 ServletConfig 对象 7 ServletContext 8 HTTP 协议_GET&POST请求 9 ServletRequest 10 ServletResponse 11 GenericServlet 12 HttpServlet 13小结及练习 14 JSP 概述 15 JS…