摘要: 某位大神曾说过,使用设计模式最好的方式是:”把设计模式装进脑子里,然后在你的设计和已有的应用中,寻找何处可以使用它们。“以往是代码复用,现在是经验复用。 软件开发的一个不变真理:不管你在何处工作,构建些什么,用何种编程语言,在软件开发中,一直伴随着你的那个不变真理是:change。 不管当初软件设计 阅读全文
posted @ 2017-03-14 15:40 人艰不拆_zmc 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 单例模式:确保一个类只有一个实例,并提供一个全局访问点。 单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己 阅读全文
posted @ 2017-03-14 15:39 人艰不拆_zmc 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 代理设计模式的核心含义在于一个业务操作除了真实实现之外,也需要有代理支持,代理负责所有与真实操作有关的辅助性功能实现,而真实主题只负责核心业务操作。 代理使用分析: 在传统编写DAO程序操作过程之中,一直是存在有一个问题的,业务层的真实功能是调用数据层,但是发现在我们之前写的代码之中,业务层除了要调 阅读全文
posted @ 2017-03-14 15:38 人艰不拆_zmc 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 程序中的代理 产生原因:为已存在的多个具有相同接口的目标类的各个方法增加一些系统功能,如,异常处理、日志,计算方法和运行时间、事务管理等。 编写一个与目标类具有相同接口的代理类,代理类的每个方法调用目标类的相同方法,并在调用方法时加上系统功能的代码。 AOP: 系统中存在交叉业务(安全、日志、事物等 阅读全文
posted @ 2017-03-14 15:37 人艰不拆_zmc 阅读(352) 评论(0) 推荐(0) 编辑
摘要: JDK自从1.3版本开始,就引入了动态代理,并且经常被用来动态地创建代理,原理之前我已经讲过。JDK的动态代理用起来非常简单,但它有一个限制,就是使用动态代理的对象必须实现一个或多个接口。如果想代理没有实现接口的继承的类,该怎么办?现在我们可以使用CGLIB包。 PS:需要引入com.springs 阅读全文
posted @ 2017-03-14 15:34 人艰不拆_zmc 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 注入依赖对象可以采用手工装配或自动装配,在实际应用中建议使用手工装配,因为自动装配会产生未知情况,开发人员无法预见最终的装配结果。 手工装配依赖对象 手工装配依赖对象,在这种方式中又有两种编程方式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <beans xm 阅读全文
posted @ 2017-03-14 15:33 人艰不拆_zmc 阅读(2825) 评论(0) 推荐(0) 编辑
摘要: 依赖注入–自动装配依赖对象(了解即可) 对于自动装配,大家了解一下就可以了,实在不推荐大家使用。例子: byName:按名称装配,可以根据属性的名称,在容器中寻找跟该属性名相同的bean,如果没有找到,即属性值为null。 constructor与byType的方式类似,不同之处在于它应用于构造器参 阅读全文
posted @ 2017-03-14 15:33 人艰不拆_zmc 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到组件中。 使用构造器注入 1 2 3 4 <constructor-arg index=“0” type=“java.lang.String” value=“xxx”/>//构造器注入 <bean id="xxx" class="daoi 阅读全文
posted @ 2017-03-14 15:32 人艰不拆_zmc 阅读(2110) 评论(0) 推荐(0) 编辑
摘要: 1.使用类构造器实例化 1 <bean id=“orderService" class="cn.itcast.OrderServiceBean"/> 1 <bean id=“orderService" class="cn.itcast.OrderServiceBean"/> 1 1 <bean id 阅读全文
posted @ 2017-03-14 15:31 人艰不拆_zmc 阅读(213) 评论(0) 推荐(0) 编辑
摘要: singleton (默认方式) 在每个Spring IoC容器中一个bean定义只有一个对象实例。默认情况下会在容器启动时初始化bean,但我们可以指定bean节点的lazy-init=“true”来延迟初始化bean,这时候,只有第一次获取bean会才初始化bean。如: 1 <bean id= 阅读全文
posted @ 2017-03-14 15:31 人艰不拆_zmc 阅读(200) 评论(0) 推荐(0) 编辑
摘要: PS:Spring既可以使用在javaSE中,也可以使用在javaWeb中。 使用Spring需要的jar 下载spring(我下载的是2.5.6版本),然后进行解压缩,在解压目录中找到下面jar文件,拷贝到类路径下 dist\spring.jar commons-logging.jar sprin 阅读全文
posted @ 2017-03-14 15:30 人艰不拆_zmc 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 先附一下编写的Spring容器的执行结果: 代码如下: 模拟的Spring容器类: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 阅读全文
posted @ 2017-03-14 15:30 人艰不拆_zmc 阅读(226) 评论(0) 推荐(0) 编辑
摘要: Spring是什么? Spring是一个开源的控制反转(Inversion of Control ,IoC)和面向切面(AOP)的容器框架,它的主要目得是简化企业开发。 IOC 控制反转 : 1 2 3 4 5 6 7 8 9 10 11 public class PersonServiceBean 阅读全文
posted @ 2017-03-14 15:29 人艰不拆_zmc 阅读(427) 评论(0) 推荐(0) 编辑