- 博客(37)
- 收藏
- 关注
转载 Java描述设计模式(08):桥接模式
本文源码:GitHub·点这里 || GitEE·点这里 一、桥接模式简介 1、基础描述 桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化”。 2、场景问题描述 1)、场景分析 在一个复杂的系统中,消息通知是一个必...
2019-09-16 21:23:19
125
转载 Java描述设计模式(07):适配器模式
本文源码:GitHub·点这里 || GitEE·点这里 一、适配器模式简介 1、基础概念 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式有类适配器模式和对象适配器模式,以及缺省(接口)适配器,三种不同的形式。 2、生活场景 基于适配器模式,把220V的电压,转换为需要的110V电压。 public class...
2019-09-15 18:40:24
112
转载 Java描述设计模式(06):建造者模式
本文源码:GitHub·点这里 || GitEE·点这里 一、生活场景 基于建造者模式,描述软件开发的流程。 1、代码实现 /** * 基于建造者模式描述软件开发 */ public class C01_InScene { public static void main(String[] args) { BuilderSoft builderSoft = new So...
2019-09-11 23:03:58
116
转载 Java描述设计模式(05):原型模式
本文源码:GitHub·点这里 || GitEE·点这里 一、原型模式简介 1、基础概念 原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。 2、模式结构 原型模式要求对象实现一个可以“克隆”自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例。这样一来,通过原型实例创建新的对象,就不再需要关心这个实...
2019-09-10 22:25:06
103
转载 Java描述设计模式(04):抽象工厂模式
本文源码:GitHub·点这里 || GitEE·点这里 一、抽象工厂模式 1、生活场景 汽车生产根据用户选择的汽车类型,指定不同的工厂进行生产,选择红旗轿车,就要使用中国工厂,选择奥迪轿车,就要使用德国工厂。 2、抽象工厂模式 1) 抽象工厂模式:定义了一个interface用于创建相关对象或相互依赖的对象,而无需指明具体的类;2) 抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合;3) ...
2019-09-09 22:05:29
148
转载 Java描述设计模式(03):工厂方法模式
本文源码:GitHub·点这里 || GitEE·点这里 一、工厂方法模式 1、生活场景 系统常见的数据导出功能:数据导出PDF、WORD等常见格式。 2、工厂方法模式 是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。 3、核...
2019-09-08 22:26:52
86
转载 Java描述设计模式(02):简单工厂模式
本文源码:GitHub·点这里 || GitEE·点这里 一、生活场景简介 1、引入场景 订餐流程简单描述 1)、食品抽象类,规定食品的基础属性操作 2)、鱼类,鸡肉类食品类扩展 3)、订餐流程类,根据食品名称,加工指定类型食品 4)、模拟客户端预定操作 2、源代码实现 1)、关系图谱2)、代码实现 /** * 简单工厂模式引入场景 */ public class C01_InScene {...
2019-09-07 08:09:14
81
转载 SpringBoot2.0 整合 SpringSecurity 框架,实现用户权限安全管理
本文源码:GitHub·点这里 || GitEE·点这里 一、Security简介 1、基础概念 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring的IOC,DI,AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为安全控制编写...
2019-09-04 22:52:29
109
转载 SpringBoot2 整合 Shiro 框架,实现用户权限管理
本文源码:GitHub·点这里 || GitEE·点这里 一、Shiro简介 1、基础概念 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。作为一款安全框架Shiro的设计相当巧妙。Shiro的应用不依赖任何容器,它不仅可以在JavaEE下使用,还可以应用在JavaSE环境中。 2、核心角色 1)Subject:认证主体 代表当前系统的使用者,就是...
2019-09-04 07:45:01
134
转载 SpringBoot2 整合 FastDFS 中间件,实现文件分布式管理
本文源码:GitHub·点这里 || GitEE·点这里 一、FastDFS简介 1、FastDFS作用 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件上传、文件下载等,解决了大容量存储和负载均衡的问题。 安装连接: 安装流程详解 2、核心角色 FastDFS是由跟踪服务器(trackerserver)、存储服务器(storageserver...
2019-09-03 07:56:52
197
转载 SpringBoot2 整合 JWT 框架,解决Token跨域验证问题
本文源码:GitHub·点这里 || GitEE·点这里 一、传统Session认证 1、认证过程 1、用户向服务器发送用户名和密码。 2、服务器验证后在当前对话(session)保存相关数据。 3、服务器向返回sessionId,写入客户端 Cookie。 4、客户端每次请求,需要通过 Cookie,将 sessionId 回传服务器。 5、服务器收到 sessionId,验证客户端。 2、存...
2019-09-02 22:02:36
276
转载 SpringBoot2 整合 Redis哨兵模式 ,实现消息队列场景
本文源码:GitHub·点这里 || GitEE·点这里 一、Redis集群简介 1、RedisCluster概念 Redis的分布式解决方案,在3.0版本后推出的方案,有效地解决了Redis分布式的需求,当一个服务宕机可以快速的切换到另外一个服务。redis cluster主要是针对海量数据+高并发+高可用的场景。 二、与SpringBoot2.0整合 1、核心依赖 <dependenc...
2019-09-01 22:51:23
243
转载 SpringBoot2.0 整合 QuartJob ,实现定时器实时管理
本文源码:GitHub·点这里 || GitEE·点这里 一、QuartJob简介 1、一句话描述 Quartz是一个完全由java编写的开源作业调度框架,形式简易,功能强大。 2、核心API (1)、Scheduler代表一个 Quartz 的独立运行容器,Scheduler 将 Trigger 绑定到特定 JobDetail, 这样当 Trigger 触发时, 对应的 Job 就会被调度。(...
2019-09-01 13:43:38
135
转载 SpringBoot2.0 整合 Swagger2 ,构建接口管理界面
本文源码:GitHub·点这里 || GitEE·点这里 一、Swagger2简介 1、Swagger2优点 整合到Spring Boot中,构建强大RESTful API文档。省去接口文档管理工作,修改代码,自动更新,Swagger2也提供了强大的页面测试功能来调试RESTful API。 2、Swagger2常用注解 Api:修饰整个类,描述Controller的作用 ApiOperatio...
2019-08-31 22:36:35
72
转载 SpringBoot 2.0 整合sharding-jdbc中间件,实现数据分库分表
本文源码:GitHub·点这里 || GitEE·点这里 一、水平分割 1、水平分库 1)、概念:以字段为依据,按照一定策略,将一个库中的数据拆分到多个库中。2)、结果每个库的结构都一样;数据都不一样;所有库的并集是全量数据; 2、水平分表 1)、概念以字段为依据,按照一定策略,将一个表中的数据拆分到多个表中。2)、结果每个表的结构都一样;数据都不一样;所有表的并集是全量数据; 二、Shard-...
2019-08-31 20:45:57
127
转载 SpringBoot2.0 整合 ElasticSearch框架,实现高性能搜索引擎
本文源码:GitHub·点这里 || GitEE·点这里 一、安装和简介 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。 搭建运行环境 Linux系统:centos7下搭建ElasticS...
2019-08-30 08:03:10
124
转载 SpringBoot2 整合 Dubbo框架 ,实现RPC服务远程调用
一、Dubbo框架简介 1、框架依赖 图例说明:1)图中小方块 Protocol, Cluster, Proxy, Service, Container, Registry, Monitor 代表层或模块,蓝色的表示与业务有交互,绿色的表示只对 Dubbo 内部交互。2)图中背景方块 Consumer, Provider, Registry, Monitor 代表部署逻辑拓扑节点。3)图中蓝色虚线...
2019-08-29 08:07:20
213
转载 SpringBoot 2.0 集成 JavaMail ,实现异步发送邮件
一、JavaMail的核心API 1、API功能图解 2、API说明 (1)、Message 类: javax.mail.Message 类是创建和解析邮件的一个抽象类子类javax.mail.internet.MimeMessage :表示一份电子邮件。 发送邮件时,首先创建出封装了邮件数据的 Message 对象, 然后把这个对象传递给邮件发送Transport 类,执行发送。接收邮件时,...
2019-08-28 08:05:24
330
转载 SpringBoot2.0 整合 RocketMQ ,实现请求异步处理
一、RocketMQ 1、架构图片 2、角色分类 (1)、Broker RocketMQ 的核心,接收 Producer 发过来的消息、处理 Consumer 的消费消息请求、消息的持 久化存储、服务端过滤功能等 。 (2)、NameServer 消息队列中的状态服务器,集群的各个组件通过它来了解全局的信息 。类似微服务中注册中心的服务注册,发现,下线,上线的概念。 热备份: NamS...
2019-08-27 08:13:08
114
转载 Java描述设计模式(01):单例模式
一、单例模式 1、概念图解 单例设计模式定义:确保这个类只有一个实例,并且自动的实例化向系统提供这个对象。 2、样例代码 package com.model.test; public class Singleton { // 使用静态变量记录唯一实例 private static Singleton singleton = null; private Singleton (...
2019-08-26 08:03:51
78
转载 SpringBoot2.0 基础案例(17):自定义启动页,项目打包和指定运行环境
一、打包简介 springboot的打包方式有很多种。可以打war包,可以打jar包,可以使用jekins进行打包部署的。不推荐用war包,SpringBoot适合前后端分离,打成jar进行部署更加方便快捷。 二、自定义启动页 banner.txt内容 ======================= No BUG ======================= 这样就替换了原先Sp...
2019-08-25 10:35:28
61
转载 SpringBoot2.0 基础案例(16):配置Actuator组件,实现系统监控
一、Actuator简介 1、监控组件作用 在生产环境中,需要实时或定期监控服务的可用性。Spring Boot的actuator(健康监控)功能提供了很多监控所需的接口,可以对应用系统进行配置查看、相关功能统计等。 2、监控分类 Actuator 提供Rest接口,展示监控信息。接口分为三大类:应用配置类:获取应用程序中加载的应用配置、环境变量、自动化配置报告等与SpringBoot应用相关的配...
2019-08-24 07:41:10
98
转载 SpringBoot2.0 基础案例(15):配置MongoDB数据库,实现增删改查逻辑
一、NoSQL简介 1、NoSQL 概念 NoSQL( Not Only SQL ),意即"不仅仅是SQL"。对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。 2、NoSQL的优点/缺点 --优点: 高可扩展性 分布式计算 低成本 架构的灵活性,半结构化数据 没有复杂的关系 --缺点: 没有标准化 ...
2019-08-22 20:41:56
81
转载 SpringBoot2.0 基础案例(14):基于Yml配置方式,实现文件上传逻辑
本文源码 GitHub地址:知了一笑 https://github.com/cicadasmile/spring-boot-base 一、文件上传 文件上传是项目开发中一个很常用的功能,常见的如头像上传,各类文档数据上传等。SpringBoot使用MultiPartFile接收来自表单的file文件,然后执行上传文件。该案例基于SpringBoot2.0中yml配置,管理文件上传的常见属性。该案例...
2019-08-20 07:57:54
77
转载 SpringBoot2.0 基础案例(13):基于Cache注解模式,管理Redis缓存
本文源码 GitHub地址:知了一笑 https://github.com/cicadasmile/spring-boot-base 一、Cache缓存简介 从Spring3开始定义Cache和CacheManager接口来统一不同的缓存技术;Cache接口为缓存的组件规范定义,包含缓存的各种操作集合;Cache接口下Spring提供了各种缓存的实现;如RedisCache,EhCacheCach...
2019-08-19 21:35:55
76
转载 SpringBoot2.0 基础案例(12):基于转账案例,演示事务管理操作
一、事务管理简介 1、事务基本概念 一组业务操作ABCD,要么全部成功,要么全部不成功。 2、特性:ACID 原子性:整体一致性:完成隔离性:并发持久性:结果 3、隔离问题 脏读:一个事务读到另一个事务没有提交的数据不可重复读:一个事务读到另一个事务已提交的数据(update)虚读(幻读):一个事务读到另一个事务已提交的数据(insert) 4、隔离级别 read uncommitted:读未提交...
2019-08-18 20:35:11
157
转载 SpringBoot2.0 基础案例(11):配置AOP切面编程,解决日志记录业务
本文源码 GitHub地址:知了一笑 https://github.com/cicadasmile/spring-boot-base 一、AOP切面编程 1、什么是AOP编程 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP(面向对象编程)的延续,是软件开发中的一个热...
2019-08-17 11:53:37
88
转载 SpringBoot2.0 基础案例(10):整合Mybatis框架,集成分页助手插件
一、Mybatis框架 1、mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。...
2019-08-16 23:32:17
94
转载 SpringBoot2.0 基础案例(09):集成JPA持久层框架,简化数据库操作
一、JAP框架简介 JPA(Java Persistence API)意即Java持久化API,是Sun官方在JDK5.0后提出的Java持久化规范。主要是为了简化持久层开发以及整合ORM技术,结束Hibernate、TopLink、JDO等ORM框架各自为营的局面。JPA是在吸收现有ORM框架的基础上发展而来,易于使用,伸缩性强。 二、与SpringBoot2.0整合 1、核心依赖 <...
2019-08-15 22:17:57
193
转载 SpringBoot2.0 基础案例(08):集成Redis数据库,实现缓存管理
一、Redis简介 Spring Boot中除了对常用的关系型数据库提供了优秀的自动化支持之外,对于很多NoSQL数据库一样提供了自动化配置的支持,包括:Redis, MongoDB, Elasticsearch。这些案例整理好后,陆续都会上传Git。 SpringBoot2 版本,支持的组件越来越丰富,对Redis的支持不仅仅是扩展了API,更是替换掉底层Jedis的依赖,换成Lettuce。...
2019-08-14 20:53:46
85
转载 SpringBoot2.0 基础案例(07):集成Druid连接池,配置监控界面
一、Druid连接池 1、druid简介 Druid连接池是阿里巴巴开源的数据库连接池项目。Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能。功能强大,能防SQL注入,内置Loging能诊断Hack应用行为。Druid连接池是阿里巴巴内部唯一使用的连接池,在内部数据库相关中间件TDDL/DRDS 都内置使用强依赖了Druid连接池,经过阿里内部数千上万的系统大规模验证,经过历年双...
2019-08-13 20:40:55
88
转载 SpringBoot2.0 基础案例(06):引入JdbcTemplate,和多数据源配置
一、JdbcTemplate对象 1、JdbcTemplate简介 在Spring Boot2.0框架下配置数据源和通过JdbcTemplate访问数据库的案例。SpringBoot对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。 2、JdbcTemplate核心方法 1)execute方法:可以用于执行任何S...
2019-08-12 20:09:59
96
转载 SpringBoot2.0 基础案例(05):多个拦截器配置和使用场景
一、拦截器简介 1、拦截器定义 拦截器,请求的接口被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。 拦截器主要用来按照指定规则拒绝请求。 2、拦截器中应用 Token令牌验证 请求数据校验 用户权限校验 放行指定接口 二、SpringBoot2.0拦截器用法 1、编写两个拦截器 自定义类实现HandlerInterceptor接口1)OneInterceptor ...
2019-08-11 18:04:38
103
转载 SpringBoot2.0 基础案例(04):定时任务和异步任务的使用方式
一、定时任务 1、基本概念 按照指定时间执行的程序。 2、使用场景 数据分析 数据清理 系统服务监控 二、同步和异步 1、基本概念 同步调用程序按照代码顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行; 异步调用顺序执行时,不等待异步调用的代码块返回结果就执行后面的程序。 2、使用场景 短信通知 邮件发送 批量数据入缓存 三、SpringBoot2.0使用定时器 1、定时器执行...
2019-08-11 16:31:21
81
转载 SpringBoot2.0 基础案例(03):配置系统全局异常映射处理
一、异常分类 这里的异常分类从系统处理异常的角度看,主要分类两类:业务异常和系统异常。 1、业务异常 业务异常主要是一些可预见性异常,处理业务异常,用来提示用户的操作,提高系统的可操作性。常见的业务异常提示:1)请输入xxx2)xxx不能为空3)xxx重复,请更换 2、系统异常 系统异常主要是一些不可预见性异常,处理系统异常,可以让展示出一个友好的用户界面,不易给用户造成反感。如果是一个金融类系统...
2019-08-09 23:12:46
76
转载 SpringBoot2.0 基础案例(02):配置Log4j2,实现不同环境日志打印
一、Log4j2日志简介 日志打印是了解Web项目运行的最直接方式,所以在项目开发中是需要首先搭建好的环境。 1、Log4j2特点 1)核心特点相比与其他的日志系统,log4j2丢数据这种情况少;disruptor技术,在多线程环境下,性能高;并发的特性,减少了死锁的发生。 2)性能测试 2、日志打印之外观模式 每一种日志框架都有自己单独的API,要使用对应的框架就要使用其对应的API,增加应用程...
2019-08-08 21:05:49
139
转载 SpringBoot2.0基础案例(01):环境搭建和RestFul风格接口
一、SpringBoot 框架的特点 1、SpringBoot2.0 特点 1)SpringBoot继承了Spring优秀的基因,上手难度小2)简化配置,提供各种默认配置来简化项目配置3)内嵌式容器简化Web项目,简化编码Spring Boot 则会帮助开发着快速启动一个 web 容器,在 Spring Boot 中,只需要在 pom 文件中添加如下一个 starter-web 依赖即可. <...
2019-08-07 21:39:12
86
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人