09 2018 档案

摘要:DispatcherServlet 是Spring MVC的前端控制器名称, 用户的请求到达这里进行集中处理, 在Spring MVC中, 它的作用是为不同请求匹配对应的处理器, 将结果传递给视图解析器最终呈现给客户端. 前端控制器模式(Front Controller Pattern)是用来提供一 阅读全文
posted @ 2018-09-30 15:58 罪恶斯巴克 阅读(1748) 评论(0) 推荐(0)
摘要:WebSerice盛行的时代已经过去, 这里只是简单介绍下其基本概念, 并用JDK自带的API实现一个简单的服务. WebSerice的概念 WebService是一种跨平台和跨语言的远程调用(RPC)技术. 它基于Http和Xml. 而上一篇 "分布式系列五: RMI通信" 中提到的RMI是基于S 阅读全文
posted @ 2018-09-21 10:49 罪恶斯巴克 阅读(490) 评论(0) 推荐(0)
摘要:打包 清单文件被命名为MANIFEST.MF,用于描述归档特征. 清单文件被分为多个节, 第一节被称为主节,作用于整个文件; 其他节则必须起始于Name的条目. 节之间空行分开. jar cfm JARFileName ManifestFileName . . . 添加清单文件 jar cfm My 阅读全文
posted @ 2018-09-19 23:58 罪恶斯巴克 阅读(438) 评论(0) 推荐(0)
摘要:RPC(Remote Procedure Call)协议 RPC协议是一种通过网络从远程计算机上请求服务, 而不需要了解底层网络技术的协议, 在OSI模型中处在应用层和网络层. 作为一个规范, 使用RPC协议的框架有很多, Dubbo,Hessian等均使用这个协议, RMI也使用该协议实现. RM 阅读全文
posted @ 2018-09-19 22:41 罪恶斯巴克 阅读(1112) 评论(0) 推荐(0)
摘要:分布式系列四: HTTP及HTTPS协议 非常全面的一篇HTTP的文章: "关于HTTP协议,一篇就够了" 还有一个帮助理解HTTPS的文章: "也许,这样理解HTTPS更容易" 本文的一些描述摘自这篇文章 HTTP协议 Http(HyperText Transfer Protocol 超文本传输协 阅读全文
posted @ 2018-09-18 15:46 罪恶斯巴克 阅读(644) 评论(0) 推荐(0)
摘要:序列化可以解决分布式系统节点间复杂对象传输的问题. 将对象状态转化为可存储或可传输的过程叫序列化, 而反序列化是将其还原成对象的过程. 几种序列化机制 JDK的序列化 Java默认的序列化要求实现 接口. 缺点: 1. 序列化的结果比较大, 占用字节多, 传输效率低 2. 仅Java实现, 不能跨语 阅读全文
posted @ 2018-09-17 12:25 罪恶斯巴克 阅读(732) 评论(0) 推荐(0)
摘要:为什么要使用泛型 泛型的魅力是使程序有更好的安全性和可读性 泛型类型限定 使用extends关键字限定泛型必须是某个接口的子类, 可以有多个类型如 , 规定限定中至多有一个类, 且这个类必须出现在列表的第一个位置. 方法的类型擦除会生成仅返回值类型不同的方法, 在java代码中这是不允许的, 但编译 阅读全文
posted @ 2018-09-15 19:17 罪恶斯巴克 阅读(155) 评论(0) 推荐(0)
摘要:Java 集合框架 集合API中以Abstract开头的类是为类库实现者设计的,扩展这些类比直接实现接口要简单得多 集合类的基本接口是 ,它继承了 接口, 方法 返回 接口, 它是一个迭代器. 注意, 当要删除元素时, 必须先调用 然后调用 , 也就是说remove方法必须与next组合使用. 接口 阅读全文
posted @ 2018-09-15 19:05 罪恶斯巴克 阅读(129) 评论(0) 推荐(0)
摘要:通信是分布式架构的一个基本问题, 通信是基于通信协议, 通过网络IO来实现的, 基本的通信协议有TCP,HTTP,UDP等, Java的IO分为BIO,NIO,AIO等, java领域有很多支持通信的技术, 如RMI,MINA,JMS等. 网络协议 TCP/IP: 五层模型: 基于OSI七层模型. 阅读全文
posted @ 2018-09-15 15:30 罪恶斯巴克 阅读(3011) 评论(0) 推荐(0)
摘要:IoC/DI 的概念 容器是Spring的核心之一(另一个核心是AOP). 有了容器, IOC才可能实现. 什么使IoC? IoC就是将类自身管理的与其由依赖关系的对象的创建/关联和管理交予容器实现, 容器按照配置(比如xml文件)来组织应用对象的创建和关联. 什么使DI? DI是IoC的实现方式, 阅读全文
posted @ 2018-09-14 23:05 罪恶斯巴克 阅读(937) 评论(0) 推荐(2)
摘要:分布式系统的特点 高并发,大流量(qps,tps) 海量数据 什么是分布式 分布式系统是由很多计算机组成, 他们之间的通信通过网络连接完成, 对外表现为一个整体. 分布式技术上需要解决两个问题, 一个是业务拆解, 一个是节点通信. 分布式和集群的关系 分布式是指一个系统由多个业务模块组成,他们分别部 阅读全文
posted @ 2018-09-14 13:26 罪恶斯巴克 阅读(492) 评论(0) 推荐(1)
摘要:简介 观察者属于行为型模式的一种, 又叫发布 订阅模式. 如果一个对象的状态发生改变,依赖他的对象都将发生变化, 那么这种情况就适合使用观察者模式. 它包含两个术语,主题(Subject),观察者(Observer), 主题管理一个观察者的列表, 并在状态发生变化时通知到他们. 实现层面上, 主题定 阅读全文
posted @ 2018-09-13 08:25 罪恶斯巴克 阅读(652) 评论(0) 推荐(5)
摘要:除了IOC外, AOP是Spring的另一个核心. Spring利用AOP解决应用横切关注点(cross cutting concern)与业务逻辑的分离, 目的是解耦合. 横切关注点是指散布于代码多处的同一种功能, 比如日志, 事务, 安全, 缓存等. AOP编程的基本概念 在OOP中, 如果要复 阅读全文
posted @ 2018-09-11 15:40 罪恶斯巴克 阅读(885) 评论(0) 推荐(2)
摘要:处理错误 出现错误时程序应该(1)返回安全状态并允许用户执行一些其他命令; (2)或者允许用户保存所有操作的结果,并以妥善方式退出程序; 错误产生的原因:(1)用户输入错误;(2)设备错误;(3)物理限制;(4)代码错误: 有些情况下代码的调用方并不能根据程序的错误返回码进行处理, 这时就需要抛出异 阅读全文
posted @ 2018-09-10 19:39 罪恶斯巴克 阅读(268) 评论(0) 推荐(0)
摘要:profile 不同于maven的profile, spring的profile不需要重新打包, 同一个版本的包文件可以部署在不同环境的服务器上, 只需要激活对应的profile就可以切换到对应的环境. Java Config 通过这个注解指定bean属于哪个或哪些profile. 参数value是 阅读全文
posted @ 2018-09-09 12:58 罪恶斯巴克 阅读(741) 评论(0) 推荐(1)
摘要:创建应用对象之间协作关系的行为称为装配(wiring), 这也是DI的本质. Spring中装配Bean的方式 Spring提供了三种装配Bean的方式. 1. 隐式的Bean发现机制和自动装配 2. Java Config 3. Xml Config Spring可以任意选择三种方式其中的一种或多 阅读全文
posted @ 2018-09-07 23:13 罪恶斯巴克 阅读(526) 评论(0) 推荐(1)
摘要:简介 委派模式不属于GOF23种设计模式, 主要角色有三种: 抽象任务角色, 委派者角色, 具体任务角色. 实现层面上, 定义一个抽象接口, 它有若干实现类, 他们真正执行业务方法, 这些子类是具体任务角色; 定义委派者角色也实现该接口, 但它负责在各个具体角色实例之间做出决策, 由它判断并调用具体 阅读全文
posted @ 2018-09-07 12:56 罪恶斯巴克 阅读(7337) 评论(0) 推荐(2)
摘要:接口 接口可以包含常量, 且不需要publish static final修饰, 接口的域会自动添加该修饰符. Java建议不要写多余的代码,因此省略修饰符更简洁. 全部都是常量的接口背离了接口的初衷,不建议使用 Java SE8 中, 允许接口增加静态方法,但这也有悖接口的初衷 接口的默认方法实现 阅读全文
posted @ 2018-09-06 22:58 罪恶斯巴克 阅读(297) 评论(0) 推荐(0)
摘要:Spring 简介 Spring 是一个开源轻量级企业应用架构,目的是为了简化企业级应用开发。(1)Spring 框架可以帮我们管理对象的生命周期,帮助我们管理对象间的依赖关系,相互协作;(2)Spring 框架提供了一种能力,帮助抽离日志,异常处理,性能统计,安全性以及数据库事务管理等,这些均可以 阅读全文
posted @ 2018-09-06 21:50 罪恶斯巴克 阅读(783) 评论(0) 推荐(0)
摘要:类,超类和子类 super和this看似有相似的概念, 但实际没有可比性,this持有对象本身的引用, 可以赋值给另一个变量,super则不具备这样的功能, 它只是一个指示编译器调用超类方法的关键字 调用super()构造器的语句必须是子类构造器的第一条语句 Object: 所有类的超类 判断两个对 阅读全文
posted @ 2018-09-05 13:19 罪恶斯巴克 阅读(188) 评论(0) 推荐(0)
摘要:简介 策略属于行为型模式的一种,策略模式允许对象的行为或算法在运行时改变,使用不同的算法达成相同的结果或目的. 实现层面上,定义一个抽象的算法接口, 然后根据具体算法的不同定义不同的类去实现该接口, 调用时不同实现的实例可以相互替换. 策略模式适用于多个类只有行为不同,运行时根据上下文决定使用哪种行 阅读全文
posted @ 2018-09-05 11:18 罪恶斯巴克 阅读(508) 评论(0) 推荐(1)
摘要:简介 模板方法属于行为型模式的一种. 实现层面上, 在抽象类中定义了算法或流程的骨架, 将其中易变的部分延迟到子类实现, 也就是允许它的子类实现其中的某些步骤. 模板方法适用于算法不变, 但算法中某些步骤有变化的场景, 例如Spring中JDBC事务操作,打开连接 开启事务 执行sql 提交事务 关 阅读全文
posted @ 2018-09-04 21:33 罪恶斯巴克 阅读(410) 评论(0) 推荐(0)
摘要:用户自定义类 注意在所有方法中都不要命名与实例域同名的变量 final修饰的大都是基本类型或不可变类的域, 可变类用final休息容易造成混乱 静态类和方法 final修饰的域可以是public的; NumberFormat使用工厂方法生成实例; 不用构造函数实例化的原因是(1)无法命名构造器,对于 阅读全文
posted @ 2018-09-03 18:28 罪恶斯巴克 阅读(137) 评论(0) 推荐(0)
摘要:简介 原型模式是属于创建型模式的一种,是通过拷贝原型对象来创建新的对象. 万能的Java超类Object提供了clone()方法来实现对象的拷贝. 可以在以下场景中使用原型模式: 1. 构造函数创建对象成本太大(性能或安全成本) 2. 要保存对象的状态, 且状态变化较小, 不会过多占用内存时(状态变 阅读全文
posted @ 2018-09-03 16:53 罪恶斯巴克 阅读(414) 评论(0) 推荐(0)
摘要:简介 抽象工厂模式是创建型模式的一种, 与工厂方法不同的是抽象工厂针对的是生产一组相关的产品, 即一个产品族. 抽象工厂使用工厂方法模式来生产单一产品, 单一产品的具体实现分别属于不同的产品族. 抽象工厂即是对产品族的抽象. 工厂类一般使用单例实现(工厂方法的工厂类也是如此) 意图 定义了一个创建对 阅读全文
posted @ 2018-09-02 11:01 罪恶斯巴克 阅读(335) 评论(0) 推荐(0)
摘要:一个简单的 Java 应用程序 访问修饰符 public,private,protected main 方法必须时public修饰的,C 则不必须 数据类型 可以用16进制表示浮点数 可以用2,8,16进制表示整数 Double.POSITIVE_INFINITY,Double.NEGATIVE_I 阅读全文
posted @ 2018-09-01 09:24 罪恶斯巴克 阅读(192) 评论(0) 推荐(0)