自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

转载 HashMap&LinkedHashMap

https://www.jianshu.com/p/8f4f58b4b8ab

2020-12-07 14:59:19 197

原创 feign too many RequestBody 问题原因及解决

简单记录一下因为Spring版本问题, 对FeignClient中方法参数传值有了更为明确的定义主要原因是Spring 4.0版本后,@RequestParam 注解对参数传值有了很好的封装特性并严格校验。参数定义是@RequestParam(value = “Id”) String xxId, 该注解参数默认是必填的, 如果需指定分必填, 则 @RequestParam(value = “xxId”, required = false) String Id...

2020-12-04 15:57:34 1217

转载 Redis分布式锁的原理

一、写在前面现在面试,一般都会聊聊分布式系统这块的东西。通常面试官都会从服务框架(Spring Cloud、Dubbo)聊起,一路聊到分布式事务、分布式锁、ZooKeeper等知识。所以咱们这篇文章就来聊聊分布式锁这块知识,具体的来看看Redis分布式锁的实现原理。说实话,如果在公司里落地生产环境用分布式锁的时候,一定是会用开源类库的,比如Redis分布式锁,一般就是用Redisson框架就好了,非常的简便易用。大家如果有兴趣,可以去看看Redisson的官网,看看如何在项目中引入Redisson的

2020-12-02 16:17:00 232

原创 Spring MVC工作流程

SpringMVC流程1、 用户发送请求至前端控制器DispatcherServlet。2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、 DispatcherServlet调用HandlerAdapter处理器适配器。5、 HandlerAdapter经过适配调用具体的处理器(C

2020-11-30 14:20:08 182

原创 SpringBoot添加事务管理

在启动类上加入@EnableTransactionManagementpackage com.yl.j2005.spc.emp.providerserver;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;impor

2020-11-30 01:14:45 1293

原创 Hystrix的服务熔断降级学习

Hystrix服务熔断降级1.利用Feign内置调用Hystrix服务熔断降级之前的sentinal我已经说过服务的熔断降级是为了提高不会因为节点崩溃导致服务崩盘,所以在这里我就不做详细的介绍,直接说最简单的用法1.1 导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter

2020-11-22 16:39:53 110

原创 Spring Cloud---Zuul动态路由的学习+服务监控+忽略服务+服务别名+自定义服务配置+灰度发布+Zuul的过滤器实现令牌拦截+Zuul的服务降级

ZuulZuul是Netflix提供的一个开源组件,,致力于在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。记录一下初学效果传统互联网架构服务统一管理下的架在我的认知中,Zuul注册到Eureka Server,然后拉取服务清单,通过服务清单代理去访问指定服务,以达到路由的效果!下面是架构图:配置教程导入依赖<dependency> <groupId>org.springframework.cloud</groupId>

2020-11-20 21:22:37 470 2

原创 Sentinel服务熔断(参考鲁斯菲尔)

#概述在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以通过 RPC 相互调用,在 Spring Cloud 中可以用 RestTemplate + LoadBalanceClient 和 Feign 来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证 100% 可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet 容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务

2020-11-20 17:16:20 428

原创 理解 RESTful 风格的 API(转鲁斯菲尔)

# 理解 RESTful 风格的 API # 概述 2000 年,Roy Thomas Fielding 博士在他那篇著名的博士论文《Architectural Styles and the Design of Network-based Software Architectures》中提出了几种软件应用的架构风格,REST 作为其中的一种架构风格在这篇论文的第5章中进行了概括性的介绍。 REST 是“REpresentational State Transfer”的缩写,可以翻译成“表现状态转换”,但是

2020-11-19 21:12:20 596 1

原创 Spring Cloud Netiflix-Eureka初学体验

Eureka是什么Eureka是一个服务注册与服务发现的管理中心 在分布式系统中,众多的服务产生庞大的ip端口让系统变得难以管理和操作,以及服务在运行过程中出现的众多不可预知的情况而导致服务的崩盘让人难以及时的发现和处理,Spring Cloud 为次提供了一套标准,Netiflix提供了解决方案,Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spri

2020-11-19 02:03:01 197

原创 Docker安装Nacos(docker-compose)

安装对于我这样一个盲目摸索的小白来说 想要把Nacos–服务注册与服务发现 安装好 还是得记录一下首先去官网 Nacos了解一下什么是 Nacos概览欢迎来到 Nacos 的世界!Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。什么是

2020-11-18 01:27:44 1389

原创 代码的坏味道(转https://www.jianshu.com/p/4494c25bf302)

假设一段代码是不稳定或者有一些潜在问题的,那么代码往往会包括一些明显的痕迹。正如食物要腐坏之前,常常会发出一些异味一样。我们管这些痕迹叫做“代码异味”。參考资料:Bad Smell(代码的坏味道)Code smellsDuplicated Code --------(反复代码)难维护。解决方法:提取公共函数。Long Method ------------(函数长)难理解。解决方法:拆分成若干函数。Large Class ------------(类大)难理解。解决方法:拆分成若干类。

2020-11-17 19:47:40 422

原创 SpringBoot整合RabbitMQ初学日记1--初级整合试用--单生单消

1. 导入项目依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> <version>2.1.3.RELEASE</version></dependency>2. 项目配置application.ymlspring:

2020-11-16 16:33:58 205

原创 七牛云文件上传

1.配置服务器文件 package com.yl.www.utils;/** * create by Dannimeiyou for 2020/11/15 * 七牛云配置接口 */public interface QiniuVeriable { /*云访问key*/ public final static String ACCESSKEY="Omwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; /*密钥*/ public fin

2020-11-15 22:20:04 145

原创 Java-Redis

1.导入依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.3.0</version> </dependency>2.构建工具类package com.yl.www.utils;import

2020-11-15 22:08:41 136

原创 SpringBoot-Excel导入导出工具类

自定义工具类 包含上传和下载package com.yl.www.utils;/** * create by Dannimeiyou for 2020/11/14 13:08 * excel导出工具类 */import com.yl.www.po.User;import lombok.extern.slf4j.Slf4j;import org.apache.poi.hssf.usermodel.*;import org.apache.poi.ss.usermodel.Cell;imp

2020-11-15 21:44:50 799

原创 Docker-compose的下载安装以及使用示例

Docker-compose Linux版本下载下载地址,自己找版本因为我在linux下的时候不知道为啥总是贼慢,所以我在windows下载下载完成之后上传Linux下的 /usr/local/bin/ 文件夹下 然后在此文件夹下执行测试 看是否成功#查看版本[root@localhost bin]# docker-compose versiondocker-compose version 1.25.3, build d4d1b42bdocker-py version: 4.1.0CPy

2020-11-13 01:17:50 817

原创 windows下 Redis实现session数据共享

Redis实现session数据共享session共享解决方案:安装单例的redis缓存数据库;启动redis:在redis目录下执行》redis-server.exe redis.windows.conf在tomcat的/lib下添加jar包:jedis.jar\common-pool.jar\tomcat-redis-management.jar修改/conf/context.xml文件:<Valve className="com.orangefunction.to

2020-11-13 00:34:33 157

原创 web application server 集群搭建 以及 Nginx做负载均衡

web application server 集群搭建初版步骤:解压两份以上tomcat7修改/conf/server.xml 中的第20、70、90 行的端口号;例如18005、18080、18009解压nginx压缩包 修改nginx.conf文件添加集群配置 upstream 集群名 { server tomcat1的ip:port ; server tomcat2的ip:port ; }添加反向代理配置 loca

2020-11-13 00:31:45 151

原创 Docker自定义镜像

Docker自定义镜像Docker的自定义镜像是为了方便我们在使用过程中可以更好的去使用和搭建属于指定条件下的环境话不多说 开始说明操作流程1. 创建Dockerfile文件#首先创建一个文件夹mkdir mytomcatiso#每个人都有不同的要求 我演示的是在tomcat中部署一个项目 将war包拷入mytomcatisocp ./NO_Three-1.0-SNAPSHOT.war ./mytomcatios/#创建Dockerfilevi mytomcatiso/Dockerfi

2020-11-11 19:42:09 144

原创 Docker数据卷映射

1.创建docker管理数据卷为了部署工程 需要使用到cp的命令将宿主机内的war包复制到容器中数据卷:将宿主机的一个目录映射到容器的一个目录中可以再宿主机中操作目录中的内容,那么容器内部映射的文件,也会跟着一起改变1.1创建数据卷#创建数据卷之后,默认会存放一个目录下 /var/lib/docker/volumes/数据卷名称/_datadocker volume create 数据卷名称1.2 查看数据卷详情#查看数据卷的详细信息,可以查询到存放路径,创建时间等等docker vo

2020-11-11 17:46:59 3570

原创 Docker的安装 Cent OS7

1.下载Docker依赖的环境yum -y install yum0utils device-mapper-persistent-data lvm22.指定镜像源yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3.安装Dockeryum makecache fastyum -y install docker-ce4.启动并测试#启动Docker服务

2020-11-11 10:39:16 138

原创 进入Docker容器内部虚拟机

docker exec -it xxx容器名称或id xxx/bash示例[root@localhost ~]# docker exec -it tomcat /bin/bashroot@cff4921eb1c0:/usr/local/tomcat# curl http://localhost:8080

2020-11-11 10:29:06 1023

原创 Docker配置阿里镜像加速器

sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker

2020-11-11 00:53:08 100

原创 java获取指定时间

package pub;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import org.apache.commons.lang.time.DateUtils;public class GetDate {// 获取上周一public String getLastWeekMonday(Date date) {Date a = DateUtils.addDays(date, -

2020-11-03 20:57:23 346

原创 关于npm init webpack VueName出现command not found:create-webpack

看到有人在问 npm init webpack VueName的时候报错command not found:create-webpack;其实这个问题很简单就是写错了:创建vue项目的命令是 vue init webpack VueName;这里不适用npm 而是vue

2020-10-27 10:20:40 926

原创 npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! vue10261385p@1.0.0 dev: `webpack-dev-server --inl

处理方案

2020-10-27 02:42:46 422

原创 Vue工程创建导入依赖

通过vue-cli(脚手架)创建vue工程(国内镜像)供作者本人记忆 其他初学者可能看不董cnpm install vue-cli -g安装成功后初始化创建项目vue init webpack 项目名称//打包方式用webpack然后依次创建PS F:\qf_Study\MyVue\FirstVueProject> vue init webpack Vue1026night? Project name vue1026night? Project description A Vu

2020-10-26 20:58:47 1193 4

转载 vue-cli添加bootstrap

vue-cli添加bootstrap如何引入bootstrapnpm install --save-dev bootstrap在main.js中引入import ‘bootstrap/dist/css/bootstrap.min.css’;import ‘bootstrap/dist/js/bootstrap.min.js’;然后运行,结果按照提示让执行这样的命令npm install --save popper.js然后,再运行 就能成功使用bootstrap了转载于:https://

2020-10-26 17:55:52 386

原创 Linux 安装 Mysql -- 文章内容来源于广州千峰李卫民

原资料地址# Linux 安装 MySQL # 本节视频 【视频】基础设施即服务-Linux-安装 MySQL # 安装 # 更新数据源 apt-get update 1# 安装 MySQL apt-get install mysql-server 1系统将提示您在安装过程中创建 root 密码。选择一个安全的密码,并确保你记住它,因为你以后需要它。接下来,我们将完成 MySQL 的配置。 # 配置 因为是全新安装,您需要运行附带的安全脚本。这会更改一些不太安全的默认选项,例如远程 root 登录和

2020-10-26 00:59:18 470

原创 linux安装jdk1.8.0_152--文章来源于广州千峰李卫民

文章来源于广州千峰李卫民地址# Linux 安装 Java # 本节视频 【视频】基础设施即服务-Linux-安装 Java # 概述 此处以 JDK 1.8.0_152 为例 # 下载地址 http://www.oracle.com/technetwork/java/javase/downloads/index.html # 解压缩并移动到指定目录 # 解压缩 tar -zxvf jdk-8u152-linux-x64.tar.gz 1# 创建目录 mkdir -p /usr/local/java

2020-10-26 00:54:24 1084

原创 Java面向对象三大特征之一 封装

Java面向对象三大特征之一 封装Java语言作为一门面向对象的语言,具有三大特性!文章只讲封装封装是通过访问修饰符private来实现的封装的思想是将类中的成员变量或者成员方法私有化!让这些属性和方法只能在类中访问!如果想在类外访问的话,只能使用类对外提供的公共访问方法!要理解封装,首先要知道没有封装会怎么样!观察代码: class Person { String name; //名字 int age; //年龄 public void info() { Syste

2020-07-25 10:35:09 126 1

原创 冒泡排序

数组中元素排序(冒泡排序)思想:冒泡排序就是数组中元素从下标0开始相邻的两两比较!如果前面的大于后面的,那就互换位置!第一轮下来,最大的就放在了最后面!除了最后一位,再开始新的一轮,一次类推!直到最后第一个和第二个做了比较!结束循环!至此 冒泡排序结束!代码方法摘要public void bubble(int[] arr){ for(int i=0;i<arr.length-1;i++) { for(int j=0;j<arr.length-i-1;j++) {

2020-07-25 09:59:58 119 1

原创 java数组的存储方式

java数组在内存中的存储方式数组的引用存在栈中,而数组中的元素都存储在堆中。数组作为一种容器,它在堆中所被分配的是一段连续的空间。用来存放元素,这段连续的空间每一个空间都有下标,下标是连续的对应的!数组作为一种元素容器,它可以存储任意类型的元素,因为可以定义成Object[] 因为它在内存中的存储方式是连续空间,每一个空间下面都有一个下标,所以数组的读取速度是非常的快的,假设要读取arr[9]的数据,那么只需要将数组下标的指针移动9+1个位置,然后就可以找到对应的数据,这对计算机来说是非常快的。如

2020-07-25 09:48:09 4323

转载 程序员必备基础:Git 命令

程序员必备基础:Git 命令掌握Git命令是每位程序员必备的基础,之前一直是用smartGit工具,直到看到大佬们都是在用Git命令操作的,回想一下,发现有些Git命令我都忘记了,于是写了这篇博文,复习一下~https://github.com/whx123/JavaHome公众号:捡田螺的小男孩文章目录Git是什么?Git的相关理论基础日常开发中,Git的基本常用命令Git进阶之分支处理Git进...

2020-07-24 20:09:03 371 1

原创 引用数据类型和基本数据类型作为方法形参的区别

引用数据类型和基本数据类型作为方法形参的区别1、基本数据类型作为形参传参时,变量值在本函数内部不会发生改变:public class Test { public static void main(String[] args) { int i=10; Test test=new Test(); test.test(i); System.out.println(i); } public void test(int

2020-07-22 20:20:44 662

原创 Scanner类的next()和nextLine()的区别

Scanner类的next()和nextLine()的区别Scanner类中对于字符串的获取提供了两个方法:next()和nextLine()那这两个方法的区别在哪里呢?我们写这样一组代码来做测试:import java.util.Scanner;class TestScannerForString{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.pr

2020-07-17 23:05:25 147

原创 Java中的基本数据类型转换(适用于初学者)

Java中的基本数据类型Java中的基本数据类型包括:- 整数类型 byte 字节 short 短整型 int 整型 long 长整型- 浮点数类型

2020-07-17 22:38:01 169

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除