`
DynamicMan
  • 浏览: 25449 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论
文章列表

建造者模式

    博客分类:
  • ooad
建造者模式:将一个复杂对象的创建和它的表示相互分离,使得同样的构建过程可以有不同的表示 建造者模式的优点: 具有很强的封装性,高层调用者不用关心具体对象的组装过程,实现高层调用和对象组装过程的解耦,对象的组装过程也是相互独立的,易于扩展   标准类图:  使用建造者模式构建汽车: 汽车抽象接口:   package org.robbie.hibernate.generate.builder; public interface Car { public void wheel(); public void architect(); public ...

原型模式

    博客分类:
  • ooad
原型模式:通过克隆对象来进行创建对象 原型模式的优点: 1.原型模式的拷贝属于二进制的拷贝,比new的创建性能更好 2.克隆对象不会调用类的构造函数,可以进行逃避 3.多线程操作同一个对象时,可以通过克隆的方式复制到不同的线程中,避免了线程不安全   标准类图只需要实现Cloneable即可   public class MyClass implements Cloneable { private String name; public String getName() { return name; } public void setName ...

抽象工厂模式

    博客分类:
  • ooad
抽象工厂模式跟工厂方式模式类似,不同的是工厂方式模式生产的是一个抽象的产品,而抽象工厂模式生产的是多个抽象的产品。   标准类图  抽象工厂模式: 顶层抽象产品类: public interface Product { String getInfo(); }  第二层抽象产品(抽象出两个不同的产品) public interface Phone extends Product{ public void call(); }   public interface Pad extends Product{ public void watch ...

工厂方法模式

    博客分类:
  • ooad
工厂方法模式:定义一个创建对象的接口,让子类决定实例化哪一个类 工厂模式有点: 1.将对象的创建进行封装,实现细节的隐藏,高层调用者不用关心创建的具体的产品类,只了解产品类的抽象,具体产品类的创建是由工厂进行决定。使调用者和产品的创建进行解耦。   标准类图: 一、 简单工厂模式(不需要抽象工厂) 产品抽象类: public interface Product { String getInfo(); }  具体产品类: public class Iphone implements Product { @Override public String ...

单例模式

    博客分类:
  • ooad
      确保一个类只有一个实例的模式成为单例模式。 单例模式的优点: 1.减少内存开支,降低系统性能消耗 2.避免对资源的多重操作,确保只有一个类实例进行动作 缺点: 1. 没有抽象,没有接口,无法被扩展 2. 并行开发,测试不方便,只有能单例模式开发完毕才能对类进行测试   标准类图:     一、标准的单例模式(预先实例化,项目当推荐使用此模式) public class Singleton { private static Singleton singleton = new Singleton(); private Singleton(){ ...
在spring中加载配置文件的方式: @Configuration @PropertySource({"classpath:config.properties"}) //@Import(DataSourceConfig.class) public class DefaultAppConfig { @Bean public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { return new Property ...

8.Spring MVC

    Spring MVC是spring构建的前端MVC web框架,利用spring本身的DI,AOP等特性,实现松耦合,减少web端代码的开发,提高web端的开发效率,并且提供web端的服务特性,例如验证,状态管理等。   搭建Spring MVC: spring MVC的核心是DispatcherServlet,我们称之为中心控制器,通过中心控制器的解析,找对对应spring bean作为controller进行处理。  首选进行web.xml配置:   <servlet> <servlet-name>basic</servlet-nam ...

7.spring事务

        事务是一个完整的逻辑单元,在执行的时候要嘛同时成功,要嘛同时失败,中间不允许被中断,也就是说事务是一个全有或全无的过程。 事务拥有4个特性: 原子性:事务是由一个或者多个活动单元组成的。原子性确保了事务中所有操作全部发生或者全部不发生。如果所有活动都成功了,事务也就成功了。如果任意一个活动失败了,整个事务也就失败并回滚。 一致性:一旦事务完成(不管成功或者失败),事务保证业务处于一致的状态,数据不允许被破坏(所有活动要嘛成功一致,要嘛失败一致)。 隔离性:事务允许多个用户对相同数据进行操作,每个用户的操作不会与其他用户纠缠在一起。因此,事务会被隔离,避免发生同步读写数 ...
        Spring在持久化上做出了一个统一的模型,目的是为了简化持久化的开发,使得数据访问层和持久化方案的选择相互独立。         统一了数据访问异常: 传统的JDBC异常分类比较薄弱,并且都为检查型异常,在程序员对数据库的操作过程中,需要强制的去捕获SQLException,第一是工作比较繁琐,第二个就算捕获了之后其实际意义也不大,并且SQLException包含的异常问题不能够准确的进行表达,有可能是连接异常,有可能是数据访问的其他问题,spring在此基础上统一了数据访问异常,提供更加丰富的异常管理,并且所有异常都会运行期异常,不需要用户做出捕获动作,需要进行捕获时 ...

5.spring aop

        切面,是面向对象编程中一个重要的术语,切面能够模块化系统当中横切关注点,这些横切关注点会横跨系统当中的多个组件,例如安全,事务,日志,缓存,如果在每个组件中都去自行完成这些关注点的代码编写,那么横切关注点的代码将会散步在系统的各个角落,从系统灵活性和维护性来说,造成了巨大的阻碍。所以将横切关注点进行模块化,形成切面,将核心的业务与切面进行分离,能够更加有限的对程序进行管理,使得开发人员只关注于核心业务的编写,并从横切关注点的逻辑中脱离出来。   AOP术语: 切面:系统当中的交叉业务,一般指安全,事务,日志,缓存这些横切关注点,切面是对这些横切关注点的模块化。 通知: ...
        对于spring提供传统XML配置方式来说,由于项目的日益扩大,XML配置信息也会随之增加,对于项目的后期管理和维护造成一定的复杂性,为了减少XML配置信息,spring提供了基于注解的配置。         spring提供了自动装配和自动检测功能,用于减少XML配置信息。   spring的自动装配4种策略: byName 根据名字进行自动装配,改名字为spring配置中的id名,如果没有找到对应的id名则不进行装配 byType 根据bean的属性相同类型的其他bean进行自动装配,如果没有找到相同类型的其他bean,则不进行装配 c ...

3.装配bean(二)

        本章主要继续介绍spring基于XML装配bean的知识,主要介绍spring对属性的注入。  设值注入简单值和引用其他bean:   package org.robbie.test.spring.beans; public interface Instrument { void play(); }   package org.robbie.test.spring.beans; public class Flute implements Instrument { @Override public void play() { Sy ...

2.装配bean(一)

        创建应用对象之间协作的行为,称为装配,其实质是spring容器建立bean之间关系依赖的过程。spring提供两种方式来进行创建,基于XML的配置与基于注解的配置。         在spring中有两种容器,一种为beanFactory,是所有容器的父级,第二种为ApplicationContext,ApplicationContext拥有一些特定的功能,比beanFactory更加丰富,除非有特定的情况,一般考虑用ApplicationContext作为容器,另外beanFactory是延迟加载,即当第一次使用bean的时候才进行加载,而applicationConte ...

1.spring之旅(一)

        随着JavaEE的不断发展,历经数年之后,在总结了EJB对企业级开发上种种不利,由rod johson开发的spring已经逐渐成为javaEE开发的事实标准与框架,spring的出现让POJO的编程思想逐渐深入到各开发人员的脑海里,目的是为了简化java企业级开发。为了降低java企业级开发的复杂性,spring提出了4种策略: 1. 基于POJO的轻量级和最小侵入式编程 2. 通过依赖注入和面向接口实现送耦合 3. 基于切面和惯例进行声明式编程 4. 通过切面和模板减少样板代码           松耦合具有两面性,一方面严重的依赖耦合会导致系统代码变得极其复 ...
1、引入需要的war包依赖(利用插件排除类文件),api依赖,利用war包插件排除web.xml以及共同文件,最后实现静态资源和界面的共享,可启动项目, 此方法在开发当中比较麻烦,因为当依赖的api包,静态文件或者界面有修改时,不能够及时反应,只能由依赖的war包再次完成打包安装之后才能够响应。   2、通过jetty实现嵌入式启动,自己动态构建jetty Server, 依赖的war包工程全部换成jar包类型进行依赖引入,通过自己控制jetty Server对象去加载对应的界面资源, 至于静态资源可以通过spring mvc进行静态资源映射,把静态资源放在class路径下,这样Je ...
Global site tag (gtag.js) - Google Analytics