设计模式行为型模式-观察者模式(七)
当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。
设计模式行为型模式-备忘录模式(六)
备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。
设计模式行为型模式-中介者模式(五)
中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。 用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相应的处理。
SpringBoot自定义Spring Boot 内容协商
内容协商机制是指客户端和服务器端就响应的资源内容进行交涉,然后提供给客户端最为适合的资源。内容协商会以响应资源的语言、字符集、编码方式等作为判断的基准。HTTP请求头中Content-Type,Accept等内容就是内容协商判断的标准。在Spring Boot中,一个完整的内容协商过程如下图所示: 这个过程的核心组件: HttpMessageConverter为HTTP消息转换接口,Spring根据不同的媒体类型进行了相应的实现。比如上图中Accept为application/json,所以在第7步中,会选择使用HttpMessageConverter的实现类MappingJackson2HttpMessageConverter来处理返回值。
SpringBootSpring Boot整合MongoDB
这节我们将整合Spring Boot与Mongo DB实现增删改查的功能,并且实现序列递增。MongoDB安装参考《MongoDB安装》,Mongo DB的基本介绍和增删改查的用法可以参考我之前的文章: MongoDB shell 、 MongoDB文档CUD 和 MongoDB 文档查询 。 新建一个Spring Boot项目, 然后可以通过Mongo Shell或者Mongo Compass工具创建一个名称为testdb的数据库,并新增user文档(文档,类似与关系型数据库里的数据表):
MongoDBMongoDB安装
MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址:https://www.mongodb.com/download-center/community 注意:在 MongoDB 2.2 版本后已经不再支持 Windows XP 系统。最新版本也已经没有了 32 位系统的安装文件。 1.MongoDB for Windows 64-bit 适合 64 位的 Windows Server 2008 R2, Windows 7 , 及最新版本的 Window 系统。 2.MongoDB for Windows 32-bit 适合 32 位的 Window 系统及最新的 Windows Vista。 32 位系统上 MongoDB 的数据库最大为 2GB。 3.MongoDB for Windows 64-bit Legacy 适合 64 位的 Windows Vista, Windows Server 2003, 及 Windows Server 2008 。
SpringBootSpring Boot整合Kafka
Kafka是一个分布式的、可分区的、可复制的消息系统,下面是Kafka的几个基本术语: 1>Kafka将消息以topic为单位进行归纳; 2>将向Kafka topic发布消息的程序成为producers; 3>将预订topics并消费消息的程序成为consumer; 4>Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker。 producers通过网络将消息发送到Kafka集群,集群向消费者提供消息,如下图所示:
MQKafka运行环境安装
kafka是基于jdk和zk上运行的,安装kafka前必须安装jdk和zk。 安装文件: http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载JDK 安装完成后需要添加以下的环境变量(右键点击“我的电脑” -> "高级系统设置" -> "环境变量" ): JAVA_HOME: D:\Program Files\java\jdk1.8.0_91 (jdk的安装路径) Path: 在现有的值后面添加"; %JAVA_HOME%\bin"
SpringBootSpring Boot中处理跨域
HTML 5中新增的跨域资源访问(Cross-Origin Resource Sharing)特性可以让我们在开发后端系统的时候决定资源是否允许被跨域访问。所谓跨域指的是域名不同或者端口不同或者协议不同,比如当从 wno704.com 网站访问 wno704.com:8080 网站资源就会存在跨域问题。Spring从4.2版本开始就提供了跨域的支持,开箱即用。这里介绍如何在Spring Boot开发中解决跨域的问题,主要分为注解驱动和接口编程的方式。 要解决跨域问题,我们就得先模拟一个跨域情景。 然后在resources/templates下新建index.html: