【Java】
Dazzling_Ywq
争做20%的人!
展开
-
详解代理模式--静态代理、动态代理(jdk代理、接口代理)、Cglib代理 各自的优缺点
前言说到代理模式, 定义是这样的: 是为某个对象提供一个代理对象,并且由代理对象控制对原对象的访问。代理模式分为: 代理模式可分为三种 静态代理、动态代理(jdk代理、接口代理)、cglib代理。之前只停留在概念上, 今天要深入的说一下代理模式, 下面分析一下三种类型的实现方式以及优缺点静态代理静态代理是最简单的代理方式, 分为4步走定义抽象类, 也可以是接口, 主要是定义一些普通的业...原创 2020-01-16 21:08:54 · 576 阅读 · 11 评论 -
详解适配器模式--类适配器、对象适配器、接口适配器
前言前面两篇博客写了详解单例模式六种写法的优缺点和详解原型模式的浅复制(浅拷贝)和深复制(深拷贝), 感觉效果还不错。下面来说一下适配器模式, 说起适配器模式不妨举个例子 手机充电器, 我们手机充电的时候会把220V的电压转为5V(现在手机基本上都是5V), 这就和我们要说的适配器模式很像, 下面围绕着这个例子来写一下代码类适配器首先我们先写一个插孔(提供220V的电压)publi...原创 2020-01-14 19:17:41 · 1192 阅读 · 8 评论 -
详解原型模式的浅复制(浅拷贝)和深复制(深拷贝)
前言说起原型模式的浅复制和深复制, 我们都知道浅复制是对值类型的成员变量进行复制, 对引用类型的变量只是对引用进行复制, 实际上两个对象还是指向的同一实例。而深复制不仅值类型的成员变量进行复制, 还对引用类型的成员变量申请存储空间, 让他成为一个新对象。说的都没有错, 而远远知道这些还是不够的, 我们要明白其原理要去证明这两句话, 下面来说一下他们的实现过程!浅复制浅复制分为两步: 1...原创 2020-01-13 21:09:19 · 1793 阅读 · 6 评论 -
详解单例模式六种写法的优缺点
前言单例模式:保证一个类有且仅有一个实例. 通过定义我们可知它是创建型的一种, 也是比较简单的一种单例模式的使用场景: 频繁的进行创建和销毁的对象、创建对象时消耗过多或者消费资源过多,但又经常用到的对象、工具类对象、频繁访问数据库或文件的对象.下面主要分析一下单例模式的六种写法, 以及优缺点!饿汉式(静态常量)懒汉式(线程不安全)懒汉式(线程安全)双重检查静态内部类枚举饿汉...原创 2020-01-12 14:06:42 · 6930 阅读 · 7 评论 -
ActiveMQ搭建以及实例
前言首先先了解一下什么是AcitveMQActiveMQ 是Apache出品消息中间件,来帮助实现高可用、高性能、可伸缩、易用和安全的企业级面向消息服务的系统。ActiveMq的特点,多协议:TCP、SSL、NIO、UDP等、可插拔的体系结构,可以灵活定制、保证高性能的集群、支持消息持久化等。ActiveMQ安装和启动安装仅需三步,下载linux的压缩包 ,传送门:ActiveMQ下...原创 2019-12-28 11:25:19 · 937 阅读 · 12 评论 -
Rabbit Mq 五种工作模式及实例
前言在说Rabbit Mq 之前先说一下什么是MQ, MQ为Message Queue 消息队列是应用程序和应用程序之间的通信方法Rabbit Mq是一个开源的,在AMQP(高级消息队列协议)基础上 完整的、可复用的企业消息系统Rabbit Mq 有五种工作模式(也有人说6种),下面主要对这五种工作模式做分析以及实例简单模式简单模式顾名思义,就是很简单,生产者生产,消费者消费,生产者和消...原创 2019-12-10 11:38:02 · 1160 阅读 · 9 评论 -
如何将Spring Cloud项目(微服务)自动化部署到Docker容器上(图文详解)
前言我们传统的部署方法是把源码打成jar包,然后上传至虚拟机并拷贝至JDK容器,对于数量众多的微服务,这样的部署方式显然是不可取的,所以我们必须要掌握Maven插件自动部署,下面说一下具体的部署步骤部署步骤配置maven环境变量新建系统变量在Path中追加 %MAVEN_HOME%\bin配置成功,在cmd 命令窗口输入 mvn -version 即可出现如下图修...原创 2019-12-09 11:22:09 · 1532 阅读 · 7 评论 -
Docker 入门以及简单的操作
Docker是什么官话:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。个人理解:docker容器就是一个可以存放东西的地方,就像书包可以装各种文具、衣柜可以放各种衣服、鞋架可以放各种鞋子一样。我们现在所说的容器存放的东西...原创 2019-12-05 11:35:52 · 363 阅读 · 4 评论 -
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile --解决办法
前言在部署微服务时出现这样一个错误(如下图)这个问题困惑了我一天,在网上阅读了无数遍博客,网上有很多说法,但是都没有解决了我的问题,大概报这个错有几种情况,下面说一下解决办法!解决办法java 环境版本不对应,检查java环境变量给大家准备两篇博客,按照这两篇博客配置一下就可以解决问题了博客1博客2检测pom文件,如果不是上面的问题 ,那就是你pom文件的问题,检查你pom文件...原创 2019-12-04 15:32:01 · 616 阅读 · 3 评论 -
RabbitMQ 报错:** (ArgumentError) argument error (stdlib) io_lib.erl:185: :io_lib.format(' * e 解决办法
前言这几天在windows上装了一个Rabbit MQ 报错一个如下图的错误,解决了满满一天,翻遍了网上所有的资源,什么说法都有,最后问题还是解决了,这次记录一下解决问题的方法解决办法首先强调两点:Rabbit MQ 安装路径不可以有中文Rabbit MQ 安装路径不可以有空格我的问题是无法访问 http://localhost:15672/ 管理界面一般出现这个问题有两种情况...原创 2019-11-27 21:33:40 · 5018 阅读 · 22 评论 -
分布式配置中心:Spring Cloud Config的使用
前言是什么Spring Cloud Config 为微服务架构中的微服务提供 集中式的外部配置支持, 配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置解决了什么问题集中管理配置文件不同环境不同配置,动态化的配置更新,根据不同环境部署,如 dev/test/prod运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置,服务会向配置中心统一拉取自已的配置信息当...原创 2019-11-27 15:22:32 · 353 阅读 · 9 评论 -
Hystrix Dashboard监控平台搭建
前言还是先说一下Hystrix Dashboard是什么?Hystrix Dashboard主要用来实时监控Hystrix的各项指标信息。通过Hystrix Dashboard反馈的实时信息,可以帮助我们快速发现系统中存在的问题。之前两篇博客说过搭建负载均衡的Eureka服务注册中心集群,还有服务提供者和消费者,这篇博客主要说一下Hystrix Dashboard的搭建过程.如果对Eureka...原创 2019-11-25 21:34:50 · 400 阅读 · 14 评论 -
搭建负载均衡的Eureka Server集群
前言为什么要搭建集群呢?为了避免 Eureka Server的失效,Eureka Server 高可用环境需要部署两个及以上Eureka Server,它们互相向对方注册。原创 2019-11-23 11:25:53 · 543 阅读 · 9 评论 -
搭建 Eureka Server 服务注册中心
前言先介绍一下Eureka 是什么? Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在...原创 2019-11-18 16:27:40 · 355 阅读 · 9 评论 -
Linux上搭建基于SpringBoot利用MyCat实现对MySQL的读写分离
前言首先为什么要做读写分离呢,大多数项目都是读的操作的次数远远要比写操作的次数多,所以让MySQL的主服务器做写操作,从服务器做读操作,下面详细的说一下如何利用MyCat做读写分离,至于MySQL的安装和搭建MySQL的主从复制请看我另一篇博客 Linux上MySQL安装和搭建MySQL的主从复制和读写分离MyCat的安装及启动环境装备虚拟机:192.168.50.152(MyCat)虚...原创 2019-11-04 08:33:18 · 364 阅读 · 9 评论 -
注解ConditionalOnExpression、ConditionalOnMissingBean、ConditionalOnPropert、ConfigurationProperties 使用方法
前言最近在做项目的时候遇到这样一个需求,一个配置文件需要的时候把它加入spring容器,不需要的时候就不要加入spring容器,以免影响性能,我们要的时候SpringBoot框架,这就必须要了解注解,下面这个注解@ConditionalOnExpression帮我解决了问题,然后顺便说一下其他关于配置文件的注解:@ConditionalOnMissingBean、@ConditionalOnPr...原创 2019-10-27 15:04:32 · 2767 阅读 · 5 评论 -
利用Java8新特性 Stream来处理你的代码
前言Java8的API中添加了一个新的特性: 流,即stream。stream是将数组或者集合的元素视为流,流在管道中流动过程中,对数据进行筛选、排序和其他操作。因为流申明式处理数据集合的特点,可以让代码变得简洁易读filter过滤出list中不是空的 List<String> strings = Arrays.asList("abc", "", "bc", "efg...原创 2019-09-29 16:28:02 · 337 阅读 · 8 评论 -
Redis简单入门
前言学习Redis之前,先要了解Reids是什么.Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API , Reids是一种NOSQL数据库(非关系型数据库), MySQL, SQL Server. Oracle这些都是关系型数据库, 那就先说说这两个数据库的区别吧NOSQL和关系型数据库比较优点:成本...原创 2019-06-28 11:34:15 · 242 阅读 · 7 评论 -
Spring MVC 国际化
前言现在好多网址无论是国内还是国外的都支持中英文两种模式,有了这种模式之后感觉怎么网页都高大上了,最近正好学了一招两式,下面分享一下!SpringMVC国际化步骤在resources文件下创建Resource Bundle选择en_US和zh_CH ,然后起一个名字之后会出现三个properties文件...原创 2019-08-03 20:15:02 · 272 阅读 · 6 评论 -
Spring Boot 自定义拦截器
前言现在很多管理端的网页都是没有登录,不允许通过url访问其他页面,我们可以利用session来标记是否登陆过,然后通过拦截器进行拦截,下面是自定义拦截器的步骤前言登录的时候需要把用户信息保存起来 session.setAttribute("loginUser",username);设置我们自定义的拦截器,实现HandlerInterceptor 接口,并重写pr...原创 2019-08-04 14:52:49 · 355 阅读 · 2 评论 -
SpringBoot 配置阿里 Druid 监控管理
前言之前看见过Druid的界面,让我们直观感受 sql,调用的方法,还有访问 uri 等各方面的情况。但是不知道是怎么弄出来的,感觉就是高大上,最近正好学到了一招两式,然后在这里分享一下基于SpringBoot怎么配置Druid 监控管理配置步骤在pom文件中导入druid依赖 <dependency> <groupId>c...原创 2019-08-04 15:49:36 · 355 阅读 · 7 评论 -
Spring Boot
前言Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者 -----百度百科Spring Bo...原创 2019-08-01 12:04:17 · 250 阅读 · 6 评论 -
SpringBoot 定时任务
前言现在好多业务都是需要定时完成,比如有些软件的排行榜要一天刷新一次,或者一周刷新一次,如果要人工刷新的话会出现很多的问题,程序猿是聪明的,当然inSpringBoot也帮我们做了这些,下面说一下在SpringBoot怎么用定时任务在启动类上开启基于注解的定时任务 @EnableScheduling在你需要定时的方法上加上注解@Scheduled下面是我写的一个例子 /** 1...原创 2019-08-06 10:32:44 · 287 阅读 · 7 评论 -
fastdfs 上传图片
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题原创 2019-08-25 21:58:50 · 396 阅读 · 16 评论 -
XXL_JOB 搭建和使用
xxl-job将调度行为抽象形成"调度中心"公共平台,而平台自身并不承担业务逻辑,"调度中心"负责发起调度请求。将任务抽象成分散的JobHandler,交由"执行器"统一管理,"执行器"负责接收调度请求并执行对应的JobHandler中业务逻辑。因此,"调度"和"任务"两部分可以相互解耦,提高系统整体稳定性和扩展性。原创 2019-09-01 21:51:50 · 467 阅读 · 5 评论 -
Redis常用类型及使用技巧
前言最近对Redis的使用较多,然后自己也对Redis有了一定的了解,什么时候改用什么数据类型是使用Redis的关键,什么是Redis我就不阐述了可以开这篇文章Redis入门,下面我说一下Redis常用的三种类型的实战使用方法.String我们要知道Redis为什么快,我说两点完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于HashMap,HashMap的优势...原创 2019-09-29 15:43:55 · 306 阅读 · 9 评论