- 博客(58)
- 收藏
- 关注
原创 适配器模式——设计模式
适配器模式基本介绍:1、适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主要目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。也被称为包装器。2、主要分为三类:类适配器模式、对象适配器模式、接口适配器模式工作原理:1、将一个类的接口转换成另一种接口,让原本接口不兼容的类可以兼容2、从用户的角度看不到被适配者,是解耦的3、用户调用适配器转化出来的目标方法,适配器再调用被适配者的相关接口方法4、用户收到反馈结果,感觉只是和目标接口交互类适配器模式基本介绍:Adapt
2021-04-07 13:44:16
337
原创 建造者模式--设计模式
建造者模式基本介绍:1、建造者模式又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象2、建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式的四个角色:1、Product(产品角色):一个具体的产品对象2、Builder(抽象建造者):创建一个Product对象的各个部件指定的接口3、ConcreteBuilder
2021-04-01 10:15:11
201
1
原创 原型模式--设计模式
原型模式Java中Object类是所有类的根类,Object类提供了一个clone()方法,该方法可以将一个Java对象复制一份,但是需要实现clone的Java类必须要实现一个接口Cloneable,该接口表示能够复制且具有复制的能力 => 原型模式。原型模式就是用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。它主要应用与那些创建新对象的成本过大时。它的主要优点就是简化了新对象的创建过程,提高了效率,同时原型模式提供了简化的创建结构。基本介绍:原型模式是指:用原型实例指定创
2021-04-01 10:14:12
179
原创 工厂模式与抽象工厂模式--设计模式
简单工厂模式传统方式的优缺点:1、优点是比较好理解,简单易操作2、缺点是违反了设计模式的ocp原则,当我们给类增加新功能的时候,尽量不修改代码,或者尽可能少修改代码基本介绍:1、简单工厂模式是属于创建型模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单使用的模式2、定义了一个创建对象的类,由这个类来封装实例化对象的行为3、在软件开发中,当我们需要大量的创建某种、某类或某批对象时,就会使用到工厂模式例如有一个电脑工厂,生产惠
2021-04-01 10:13:41
147
原创 单例模式--设计模式
设计模式设计模式分为3种类型,23种:1、创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式2、结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式3、行为型模式:模板方法模式、命令模式、访问者模式、迭代器模式、观察者 模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式单例模式采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。单例模式有八种方式:1、饿汉式(静态常量)
2021-04-01 10:12:58
98
原创 使用FastJson时字段大小写转换
这里记录一下工作时踩得坑,关于使用FastJson时字段大小写转换的问题。当前有个实体类TestFastJson如下@Data@AllArgsConstructor@NoArgsConstructorpublic class TestFastJson{ private String name; private String info;}测试类里面把这个类转成FastJson然后打印出来@Testvoid testFastJson(){ TestFastJson
2021-03-02 14:00:30
2933
2
原创 乐观锁的实现——MyBatisPlus学习笔记
乐观锁使用场景很多,这里讲讲乐观锁在MyBatis Plus上的具体实现。首先要在数据库表中添加version字段,并给version字段设置初始值1 。然后需要MyBatis Plus的依赖,这里使用是3.4.0的版本<!--mybatis-plus--><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter<
2021-02-25 14:47:14
170
1
原创 类型处理器——MyBatisPlus
类型处理器,用于 JavaType 与 JdbcType 之间的转换,用于 PreparedStatement 设置参数值和从 ResultSet 或 CallableStatement 中取出一个值。例如,数据库某个字段是varchar类型,业务中想把一个Map类型的数据存到数据库中,这就需要类型处理器了。具体实现开启两个注解即可@Data@AllArgsConstructor@NoArgsConstructor//开启注解,否则添加没问题,查询会为null@TableName(autoRes
2021-02-23 14:50:01
265
原创 通用枚举——MyBatisPlus
通用枚举用于对数据库操作数据时,用枚举的值代替原值。例如有如下枚举类型public enum AgeEnum { One("一岁",1), Two("两岁",2), Three("三岁",3); private AgeEnum(String name,Integer value){ this.name=name; this.value=value; } private String name; private I
2021-02-23 14:38:37
208
原创 分页插件——MyBatisPlus学习笔记
MyBatisPlus中的分页插件首先要有MyBatisPlus的依赖<!--mybatis-plus--><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version></dependency>
2021-02-23 14:24:42
127
1
原创 代码生成器——MyBatisPlus学习笔记
这里模板引擎采用Freemarker添加依赖<!--mybatis-plus--><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version></dependency><!--代码生
2021-02-23 14:16:35
152
3
原创 DuerOS技能交互
以下内容来自百度的官方文档,个人整理后梳理一遍,仅供学习参考。DuerOS 开放平台主要面向企业级用户及个人开发者,为硬件开发者提供支持语音控制的智能家居开放平台,为软件开发者提供对话式操作的技能开放平台。官方文档地址:https://dueros.baidu.com/didp/doc/dueros-bot-platform/QuickStart_markdown技能简介技能提供的是对话式交互服务。用户仅通过语音就可以完成与技能的交互,享用技能提供的服务,中间不需要借助其他交互。技能与用户交互过程是
2021-01-26 10:53:44
740
原创 RabbitMQ--学习笔记
安装使用docker安装镜像下载后安装docker run -d --name rabbitmq -p 15672:15672 -p 5672:5672 1482b87815ec这里15672是Web端口使用。从Web端进入15672端口,默认账号密码都是guest。start搭建简单的生产者和消费者。导入依赖<dependency> <groupId>com.rabbitmq</groupId> <artifactId>a
2020-12-31 14:13:00
92
原创 xxl-job集成到springboot项目
xxl-job集成到springboot项目添加依赖<dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.2.0</version></dependency>修改yml(习惯使用yml),添加xxlspring: application:
2020-12-22 15:54:36
705
原创 Lambda表达式简单使用
Lambda表达式简单使用java8的新特性,加入了Lambda表达式。简单使用package class11;import lombok.extern.slf4j.Slf4j;import org.junit.Test;import java.util.Comparator;import java.util.function.Consumer;/** * Lambda表达式的使用 */@Slf4jpublic class LambdaTest { @Test
2020-12-16 15:22:49
164
原创 反射的简单使用
反射的简单使用反射是java很高级的一个功能,这里举几个小例子来看看。上代码import lombok.AllArgsConstructor;import lombok.Data;import lombok.extern.slf4j.Slf4j;@Data@AllArgsConstructor@Slf4jpublic class People { public String name; private Integer age; private void sh
2020-12-16 15:19:40
152
原创 简单的网络通信举例
简单的网络通信举例使用java简单实现一个小功能,有客户端和服务端,客户端发信息给客户端,客户端收到信息即为成功。上代码import org.junit.Test;import java.io.*;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;/** * 客户端向服务端发送信息,服务端接收信息 */public class SocketTest { /**
2020-12-16 15:13:10
982
原创 文件的读写
文件的读写介绍两种文件的读写方式,一种是字节流的,一种使用缓冲池。先说第一种,上代码import lombok.extern.slf4j.Slf4j;import java.io.*;/** * 字节流 */@Slf4jpublic class FileStream { public static void main(String[] args) { File file = new File("C:/Users/Administrator/Desktop/5
2020-12-16 15:08:01
563
原创 日期时间类的格式化输出
日期时间类这里介绍两种时间和日期的格式化输出,一种新的,一种老的。先说新的,是java8的新特性,使用LocalDateTime类,推荐使用。/** * java8新增的日期时间类 */public class LocalTest { public static void main(String[] args) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 EEE H
2020-12-16 15:01:09
635
1
原创 多线程的简单举例
多线程的简单举例这里以窗口卖票为例,一共有10张票、3个窗口,卖的票不能重、不能多。多线程的基本实现有好几种方法,包括继承Thread类,实现Runnable接口,使用线程池等。实际开发中一般会采用线程池,这里初学演示使用Runnable接口。public class TicketRunnable implements Runnable { private int ticket=10; @Override public void run() { while
2020-12-16 14:53:49
941
原创 单例模式——饿汉式与懒汉式
单例模式——饿汉式与懒汉式单例模式是一种设计模式,即该类实例化后实例对象永远只有一个称为单例。这里介绍两种实现方式,饿汉式与懒汉式。其中饿汉式是线程安全的,懒汉式线程不安全需要加锁。两种方式的实现结果分别如下先看饿汉式/** * 单例设计模式,饿汉式 */public class Singleton { private Singleton(){ } private static Singleton singleton = new Singleton();
2020-12-16 14:42:09
234
原创 三元运算符与if/else的区别
三元运算符与if/else的区别三元运算符在进行判断时,要求两个变量是同一类型。这与if/else有很大的区别。例如 a?b:c 表示如果a为真则b,a为假则c这里要求b和c类型相同,如果不同会强转参考下方的例子public static void main(String[] args) { Object o1 = true ? new Integer(1): new Double(2.0); System.out.println(o1); Syste
2020-12-16 14:34:46
995
原创 虚拟机群上搭建大数据框架
概况技术选型图片来自尚硅谷。服务器规划服务名称子服务hadoop102hadoop103hadoop104HDFSNameNode+HDFSDataNode+++HDFSSecondaryNameNode+YarnNodeManager+++YarnResourceManager+ZookeeperZookeeper Server+++Flume(日志)Flume++Kafk
2020-11-06 11:25:12
273
原创 安装和环境搭建--Zookeeper学习笔记
Zookeeper,一个基于观察者模式设计的分布式服务管理框架,负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。Zookeeper集群包含一个Leader、若干个follower,集群只要有半数以上节点存活Zookeeper集群就能正常服务。集群全局数据一致;更新请求顺序进行:来自同一个Client的更新请求按其发送顺序依次执行;数据更新原子性:一次数据更新要么成功,要么失败。
2020-10-31 14:51:16
104
原创 MapReduce--Hadoop学习笔记
FileInputFormatFileInputFormat是基本的数据读取类型,包括TextInputFormat、KeyValueInputFormat、NLineInputFormat、CombineTextInputFormat以及自定义的InputFormat。TextInputFormat:默认的类型,key是偏移量Long类型,value是一行的数据;KeyValueInputFormat:默认以tab分割,一行数据中tab前是key,tab后面是value;NLineInputFo
2020-10-29 15:28:28
96
原创 Hadoop下的压缩与解压--Hadoop学习笔记
压缩与解压这里压缩和解压是在Hadoop框架下进行的,需要Hadoop环境。这里以BZip2和Gzip压缩格式为例,直接上代码。package compress;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IOUtils;import org.apache.hadoop.io.compress.CompressionCodec;
2020-10-29 14:31:58
825
原创 protobuf在idea上的demo实例
先导入依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/x
2020-10-27 10:43:01
210
原创 WordCount实现--Hadoop学习笔记
首先添加依赖pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apac
2020-10-26 17:22:48
109
原创 Idea上Hadoop的简单使用--Hadoop学习笔记
集成IDEA首先配置好环境变量,新建Maven工程。添加pom依赖,这里注意对应的hadoop版本<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version>
2020-10-26 17:18:21
3064
原创 HDFS常用命令--Hadoop学习笔记
HDFS常用命令启动集群hdfs:sbin/start-dfs.sh启动集群yarn:sbin/start-yarn.shhelp:hadoop fs -help rm显示目录信息:hadoop fs -ls /在HDFS上创建目录:hadoop fs -mkdir -p /user本地剪切到HDFS:hadoop fs -moveFromLocal x.txt /user追加文件到另一个已存在文件的末尾:hadoop fs -appendToFile x.txt /user/xx.txt
2020-10-26 17:16:44
84
原创 添加白名单、黑名单--Hadoop学习笔记
添加白名单102上创建dfs.hosts文件[root@hadoop102 hadoop]# pwd/opt/module/hadoop-2.8.2/etc/hadoop[root@hadoop102 hadoop]# touch dfs.hosts[root@hadoop102 hadoop]# vi dfs.hosts 添加白名单机器名称hadoop102hadoop103hadoop104修改hdfs-site.xml,使白名单生效[root@hadoop102 hadoop
2020-10-26 17:15:52
399
原创 集群时间同步、定时任务--Hadoop学习笔记
定时任务每隔一分钟向/opt/module/hadoop-2.8.2/bailong.txt中追加一个+号。[root@hadoop102 hadoop-2.8.2]# crontab -e*/1 * * * * /bin/echo "+" >> /opt/module/hadoop-2.8.2/bailong.txt启动服务[root@hadoop102 hadoop-2.8.2]# service crond restart查看文件[root@hadoop102 hado
2020-10-22 14:33:16
452
原创 集群配置与搭建--Hadoop学习笔记
集群配置该集群有102、103、104三台机器。hadoop102hadoop103hadoop104HDFSNameNode、DataNodeDataNodeSecondaryNameNode、DataNodeYARNNodeManagerResourceManager、NodeManagerNodeManagerxsync脚本先创建文件,放在bin目录下[root@hadoop102 ~]# mkdir bin[root@hadoop102 bi
2020-10-22 13:34:21
147
原创 虚拟机配置及克隆--Hadoop学习笔记
Hadoop概述Hadoop2.X组成Hadoop包括Common、HDFS、Yarn、MapReduceCommon辅助工具HDFS数据存储NameNode:存储文件元数据,可以理解为目录DataNode:本地文件系统存储文件块数据,即实实在在的数据SecondaryNameNode:监控HDFS状态的辅助后台程序Yarn资源调度ResourceManager(RM):处理客户端请求,监控NodeManager,监控ApplicationMaster,资源调度与分配NodeM
2020-10-22 13:32:47
319
原创 stream消息驱动--SpringCloud学习笔记
快速使用先写一个8801消息的提供者。pom依赖添加<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 ht
2020-10-12 16:42:33
97
原创 config配置中心--SpringCloud学习笔记
3344配置中心前提是git相关已经配置好,在idea上配置好git就可以开始下面的步骤。pom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.a
2020-10-12 11:13:55
192
原创 Gateway网关配置--SpringCloud学习笔记
配置Gateway端口9527简单的配置使用pom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 htt
2020-10-09 15:41:33
319
原创 Hystrix负载均衡--SpringCloud学习笔记
Hystrix是一个用于处理分布式系统的延迟和容错的开源库,能保证在一个依赖出问题的情况下不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。服务降级fallback服务器忙,请稍后再试,不让客户端等待并立刻返回一个友好提示程序运行异常超时服务熔断触发服务降级线程池、信号量打满也会导致服务降级服务熔断break达到最大服务访问后,直接拒绝访问,然后调用服务降级的方法并返回友好提示服务限流flowlimit秒杀高并发等操作,严禁一窝蜂的过来拥挤服务降级一般是放在客户端
2020-10-09 10:57:51
429
原创 OpenFeign简单使用--SpringCloud学习笔记
OpenFeign使用时需要80端口自己写一个Service来调用8001端口的controller。首先是添加依赖 <!--openfeign--><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency>
2020-09-30 10:03:03
225
原创 Ribbon负载均衡切换--SpringCloud学习笔记
先在客户端口80,添加配置类,这里不用添加pom,因为pom中spring-cloud-starter-netflix-eureka-client包含了Ribbon。注意:配置类不能和主启动类在同一个目录或其子目录下目录结构图如下,其中OrderMain80为主启动类配置类MySelfRule.java@Configurationpublic class MySelfRule { @Bean public IRule myRule(){ //定为随机
2020-09-29 17:27:52
129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人