- 博客(14)
- 收藏
- 关注
原创 面向切面编程--AOP
1、aop:aspect oriented programming 面向切面编程2、aop在spring中作用 提供声明式事务(声明式服务) 允许用户实现自定义切面3、aop:在不改变原有代码的情况下,增加新的功能 传统的编程模式: 自上而下纵向的编程 jsp action service d...
2018-11-24 01:13:38
238
原创 动态代理
1动态代理和静态代理的角色是一样的(真是角色,抽象角色,代理类)2动态代理的代理类是动态生成的。3分为两类:一类基于接口动态代理和基于类的动态代理 1):基于接口动态代理:jdk动态代理 2):基于类的动态代理:cglib 现在都用javasist来生成动态代理4jdk动态代理---proxy类和Invoca...
2018-11-23 22:59:45
731
原创 静态代理
1、静态代理的角色解析 抽象角色->通常使用接口或者抽象类来实现 真是角色->被代理的角色 代理角色->代理真实角色->代理真实角色后通常会做一些附属操作。 客户->使用代理角色来进行一些操作 AbstractSubject ...
2018-11-23 18:28:33
157
原创 spring-bean的作用域和自动装配
scope指的是bean的作用域,在配置bean,由scope属性来配置bean的作用域 singleton单例 :整个容器中只有一个对象实例 spring配置默认是单例prototype原型 每次获取bean都产生一个新的对象request每次请求时创建一个新的对象session在会话的范围内时一个对象global session 只在portlet下有用,可以看做是a...
2018-11-22 21:33:40
205
原创 正则1
标准字符集合:能够与'多种字符'匹配的表达式注意区分大小写,大写是相反的意思\d :任意一个数字,0~9中的任意一个\D:,0~9以外的全部\w:任意一个字母或数字或下划线,就是说A~Z,a~z,0~9,_ 中任意一个\W:任意一个字母或数字或下划线,就是说A~Z,a~z,0~9,_以外的全部\s:包括空格、制表符、换行符等空白字符的其中任意一个\S:空格、制表符...
2018-11-15 21:51:07
329
原创 工厂模式
先创建一个汽车的功能接口,让汽车都实现它的基本功能public interface Car { void run();}创建一个汽车工厂的接口,用于生产不同品牌的汽车public interface CarFactory { Car createCar();}创建一个audi车和auto车都要事先Car接口,具备汽车的基本功能才能叫做汽车public clas...
2018-11-15 20:14:37
119
原创 简单工厂
首先创建一个种类public interface Car { void run();}创建一个audi类public class Audi implements Car{ @Override public void run() { System.out.println("audi跑起来了"); } }再创建一个Auto类...
2018-11-15 19:53:11
101
原创 单例模式(CountDownLatch)
* CountDownLatch * 同步辅助类,在完成一组正在其他线程中执行的操作之前,他允许一个或多个线程一直等待 * countDown()当前线程调用此方法,则计数-1<放finally里执行要好一点> * await()调用此方法会一直阻塞线程,直到计数器为0 public class Client3 { public static void main(...
2018-11-15 18:16:38
307
原创 单例模式(防止反序列化破解单例模式)
public class Client2 { public static void main(String[] args) throws Exception { //通过反序列化的方式构造多个对象 LazySingletonVSSyn ls1 = LazySingletonVSSyn.getInstance(); LazySingletonV...
2018-11-15 18:01:42
543
原创 单例模式防止反射破解单例模式
测试懒汉式 单例模式(如何防止反射漏洞)public class Client2 { public static void main(String[] args) throws Exception { //通过反射方式直接调用私有构造器 Class<LazySingletonVSSyn> clazz = (Class<LazySi...
2018-11-15 17:49:40
885
原创 单例模式(枚举式)
枚举式实现单例模式:测试枚举式实现单例模式(线程安全、调用效率高、没有延时加载。并且具有天然的防止反射和反序列化漏洞)public enum enumSingleton { //这个元素,本身就是单例对象 E; //添加自己需要的操作 public void singletonOperation() { }}public cla...
2018-11-15 16:58:44
1081
原创 单例模式(静态内部类实现)
静态内部类实现方式(也是一种懒加载方式) 要点:外部类没有static属性,则不会像饿汉式那样立即加载对象只有真正调用了getInstance()才会加载静态内部类,加载类时是线程安全的。sc是static final类型,保证了内存中只有一个实例存在,而且只能被赋予一次从而保证了线程安全性。兼备了并发高效调用和延迟加载的优势。 public class StaticClass...
2018-11-15 16:50:41
1146
原创 单例模式(双重检测锁实现)
双重检测锁: 这个模式将同步内容下放到if内部,提高了执行效率,不必每次获取对象时都进行同步,只有第一次才同步创建了以后就没必要了。 由于编译器优化原因和jvm底层内部模型原因 ,有时候会出问题,不建议使用public class DoubleCheckSynSingleton { private static DoubleCheckSynSingleton dcss = ...
2018-11-15 16:38:53
564
原创 单例模式(懒汉+饿汉)
单例模式的特点: 由于单例模式只生产一个实力,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决。 单例模式可以在系统设置全局的访问点,优化环共享资源访问,例如可以设计一个单例类,负责所有数据表的映射处理常见的五种单例模式实现方式: 主要: ...
2018-11-15 16:18:26
211
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人