- 博客(150)
- 资源 (9)
- 收藏
- 关注
原创 01-认识intern()方法
01-认识intern()方法先来看一个代码示例:/** * @author ZDW * @since 2021-02-02 9:18 */public class StringTest { public static void main(String[] args) { String str1 = new StringBuilder("计算机").append("软件").toString(); System.out.println(str1 == s
2021-02-02 10:01:08
406
原创 2021-01-08
算法之冒泡排序冒泡排序是面试经常问到的,之前在网上看到的冒泡排序都是双层for循环来实现的,最近在看书,《数据结构与算法图解》中,关于冒泡排序的写法是while循环嵌套for循环的,我觉得这种写法更加好理解,下面记录下来,以供学习:public static void main(String[] args) { //冒泡排序写法 int[] arr = {12,3,45,33,4,25}; //index:表示:该索引之前的数据都没排过序”。一开始整个数组
2021-01-08 11:08:27
333
原创 VirtualBox5安装CentOS7_宿主机和虚拟机可以互相ping通,多个虚拟机之间也能ping通
VirtualBox5安装CentOS7_宿主机和虚拟机可以互相ping通,多个虚拟机之间也能ping通最近在学习Nacos,想要搭建一个Linux环境下的Nacos集群,所以需要三台虚拟机。虚拟机工具是VIrtualBox5,Linux的版本是CentOS7。之前每次也安装过,但是总是会出现各种各样的情况:比如宿主机ping不通虚拟机,或者虚拟机ping无法访问外网(ping不通www.baidu.com等)。出现这种情况都是虚拟机的网络配置不正确导致的。所以今天特意写一篇文档,记录下,以便后续查阅,
2020-12-13 13:39:58
842
1
原创 SpringSecurity(4)SpringSecurity整合SpringBoot分布式版(JWT,RSA)
1、分布式认证介绍1.1 概念分布式认证,即我们常说的单点登录,简称SSO,指的是在多应用系统的项目中,用户只需要登录一次,就可以访问所有互相信任的应用系统。1.2 分布式认证流程首先,我们要明确,在分布式项目中,每台服务器都有各自独立的session,而这些session之间是无法直接共享资源的,所以,session通常不能被作为单点登录的技术方案。最合理的单点登录方案流程如下图所示:总结一下,单点登录的实现分两大环节:用户认证:这一环节主要是用户向认证服务器发起认证请求,认证服务器给
2020-09-11 15:19:03
1072
原创 SpringSecurity(3)SpringBoot、JSP、MyBatis整合进行认证和授权
技术选型SpringBoot2.1.3,SpringSecurity,MySQL,mybatis,jsp下面的三个版本是层次递进的。1、初步整合认证第一版这个版本中我们不自定义jsp页面,同时也不连接数据库,看看在SpringBoot中,加入了Spring Security之后有什么效果:1.1 创建工程,导入jar包创建一个project,当作一个父工程,只是为了把相关的东西放到一个目录下面,接下来就在这个里面创建子模块:父工程中可以删掉src目录;在父工程下面创建一个module:sp
2020-09-11 14:56:53
744
原创 SpringSecurity(2)用户状态设置、记住我、用户授权、权限异常处理
1、设置用户状态在我们的数据库表sys_user中,有一个status字段,用来表示用户的状态,表示:有效或无效等。比如有些用户恶意操作,我们需要对它封号,就需要设置一个状态,这样的话,该用户就无法登录了。根据业务需要,可以设置多个状态字段,Spring Security的User对象也为我们封装一个有关用户状态的构造方法,接下来就来了解下该怎么使用吧1.1 源码分析用户认证业务里,我们封装Spring Security的org.springframework.security.core.userde
2020-09-11 14:52:38
2028
原创 SpringSecurity(1)过滤器链、自定义认证页面、退出登录和加密认证
1、权限管理的概念权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源。权限管理几乎出现在任何系统里面,前提是需要有用户和密码认证的系统。在权限管理的概念中,有两个非常重要的名词:认证:通过用户名和密码成功登陆系统后,让系统得到当前用户的角色身份。登录和认证的区别:一般简单的登录是只要验证用户的用户名和密码是否正确,但是认证还包括查询出用户的角色和权限信息。授权:系统根据当前用户的角色,给其授予对应可以操作的权限资源。权限管理中三个重要的对象
2020-09-11 14:46:36
2103
3
原创 SpringCloud14-SpringCloud Sleuth分布式链路跟踪
SpringCloud Sleuth分布式链路跟踪1、概述1.1 为什么要有SpringCloud Sleuth这个技术在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前端请求都会形成一 复杂杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。而SpringCloud Sleuth可以对请求的链路进行追踪,能知道链路中的每个环节的调用。1.2 SpringCloud Sleuth是什么官网:http
2020-08-31 16:34:04
144
原创 SpringCloud13-SpringCloud Stream消息驱动
SpringCloud Stream消息驱动1、概述1.1 Spring Cloud Stream是什么官方定义Spring Cloud Stream是一个构建消息驱动微服务的框架。应用程序通过inputs或者outputs来与Spring Cloud Stream中binder对象交互。通过我们配置来binding(绑定),而Spring Cloud Stream的binder对象负责与消息中间件交互。所以,我们只需要搞清楚如何与Spring Cloud Stream交互就可以方便使用消息驱动的方
2020-08-31 16:31:27
296
原创 SpringCloud12-Config配置管理和Bus消息总线
1、Spring Cloud Config参考文章地址:https://www.cnblogs.com/jing99/p/11720834.html1.1 概述1.1.1 分布式系统面临的配置问题在常规的开发中,每个微服务都包含代码和配置。其配置包含服务配置、各类开关和业务配置。如果系统结构中的微服务节点较少,那么常规的代码+配置的开发方式足以解决问题。当系统逐步迭代,其微服务会越来越复杂,慢慢演化成网状依赖结构,这个时候常规的代码+配置的开发方式就并不合适了,因为还要考虑整体系统的扩展性、伸缩性和
2020-08-21 15:24:56
293
原创 SpringCloud11-GateWay网关
1、概述zuul 1.x:https://github.com/Netflix/zuul/wikiSpring Cloud GateWay官网:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/1.1 GateWay是什么?Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0、Spring Boot 2.0 和 Project
2020-08-20 11:45:01
347
原创 1、MySql Docker主从复制(一主一从)
Docker 搭建 MySQL 主从复制(一主一从)使用Docker来搭建MySQL主从复制是很快捷的,只需要拉取镜像,启动2个MySQL容器就行了。而且容器是互相独立的,每个容器都有自己的IP。基于 Docker 来搭建 MySQL 的主从复制的步骤大致如下:拉取MySQL的镜像(本次使用5.7,如果没有安装虚拟机和Docker的话,请自行安装好)启动两个MySQL的容器,一主一从;配置主服务器(Master)配置从服务器(Slave)完成Master和Slave链接,开始主从复制测试配
2020-06-05 22:41:52
401
原创 MyBatis Plus自动填充,逻辑删除,分页,主键策略和乐观锁
MyBatis Plus1 MyBatis Plus简介1.1 概述官网:http://mp.baomidou.com/参考教程:http://mp.baomidou.com/guide/MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。1.2 特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的
2020-05-15 06:24:04
1974
原创 SpringCloud10-Hystrix熔断器
1、概述1.1 分布式系统面临的问题复杂分布式体系结构中的应用程序, 有数10个依赖关系,每个依赖关系在某些时候将不可避免地失败;1.2 服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的掉哟个就会占用越来越多的系统资源,进而引起系统奔溃,这...
2020-04-27 14:41:31
379
原创 SpringCloud09-OpenFeign服务接口调用
1、概述1.1 什么是OpenFeign官网地址:https://cloud.spring.io/spring-cloud-static/Hoxton.SR1/reference/htmlsingle/#spring-cloud-openfeignFeign是一个声明性web服务客户端。它使编写web服务客户端变得更容易。使用Feign创建一个接口并对其进行注释。它有可插入的注释支持,包括外...
2020-04-26 14:10:26
481
原创 SpringCloud08-Ribbon负载均衡调用
1、概述1.1 Ribbon是什么Spring Cloud Ribbon是基于Netflix Ribbon实现的一套 客户端负载均衡 工具;简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供 客户端软件的负载均衡和服务调用。Ribbon客户端组件提供一系列完善的配置项,如连接超时,重试等。总之,就是在配置文件中列出 Load Balancer (检查LB)后面所有的机器,R...
2020-04-26 14:06:50
845
原创 SpringCloud07-Consul服务注册与发现
1、Consul介绍官网:https://www.consul.io/intro/index.html官网下载地址:https://www.consul.io/downloads.htmlSpringCloud Consul的中文文档:https://www.springcloud.cc/spring-cloud-consul.htmlConsul是一套开源的分布式服务发现和配置管理系统,...
2020-04-26 14:02:46
436
1
原创 SpringCloud06-Zookeeper服务注册与发现
1、Zookeeper1.1 Zookeeper简介Zookeeper是一个分布式协调工具,可以实现注册中心功能;当Eureka停更之后,Zookeeper服务器取代Eureka服务器,zk可以作为服务注册中心1.2 安装Zookeeper进docker hub的官网搜索zookeeper:https://hub.docker.com/_/zookeeper?tab=tags然后使用do...
2020-04-26 13:54:23
293
原创 SpringCloud05-Eureka服务注册与发现
1、Eureka基础知识1.1 什么是服务治理Spring Cloud封装了Netflix公司开发的 Eureka 模块来实现服务治理;在传统的RPC远程过程调用框架中,管理每个服务与服务之间的依赖关系比较复杂,所以需要使用服务治理。管理服务之间的依赖关系,实现服务的调用,负载均衡和容错等,实现服务发现与注册。1.2 什么是服务注册与发现Eureka 采用了 C/S 的设计架构, Eur...
2020-04-26 13:49:44
560
原创 SpringCloud04-编码实现:订单支付模块
1、IDEA新建空的父ProjectIDEA和Eclipse不同,没有工作空间的概念,所以我们都是创建一个空的父Project,然后在里面New Module。1.1 配置Maven在创建Project之前,需要先配置我们的maven,要求maven的版本是3.5以上,File——Other Settings——Settings For New Projects:1.2 创建空父Proj...
2020-04-26 13:38:49
837
原创 SpringCloud03-关于Cloud各种组件的停更,升级,替换和官方学习文档
1、关于Cloud各种组件的停更/升级/替换目前,很多SpringCloud的相关组件已经停更了,同时随之而来的就是其他技术的升级和替换,下面就来简单了解一下:1.1 以前的SpringCloud相关组件上面针对不同的功能,有不同的技术实现,但是上图中,有些技术已经停更,但是不停用。1.2 什么是停更不停用停更不停用就是:被动修复bugs,不再接受合并请求,不再发布新版本;不再主动维护...
2020-04-26 13:31:55
2631
3
原创 SpringCloud02-SpringCloud和SpringBoot的版本选择
本次的SpringCloud第二季分为上半场和下半场,上半场:SpringBoot2.x版和SpringCloud H版,下半场:SpringCloud Alibaba1、SpringBoot的版本选择SpringBoot的官网地址:https://spring.io/projects/spring-bootSpringBoot的git源码地址:https:github.com/spring...
2020-04-26 13:30:25
1245
原创 SpringCloud01-背景介绍和微服务简介
1、课程简介本次课程的讲解是尚硅谷的周阳老师,讲解的主要内容是:SpringCloud+SpringCloud alibaba,学习这门课程要求已经掌握的技术:java8+maven+git+github+Nginx+RabbotMQ+SpringBoot2.0。课程一共包括21章,课程结构如下:2、微服务介绍微服务最早是由 Martin Fowler 在2014年提出的,他的原文地址:...
2020-04-26 13:27:35
560
原创 SpringBoot(十一) 检索(ElasticSearch)
#1、Elasticsearch简介我们的应用经常需要添加检索功能,更或者是大量日志检索分析等,Spring Boot通过整合Spring Data ElasticSearch为我们提供了非常便捷的检索功能支持;Elasticsearch是一个分布式搜索服务,提供Restful API,底层基于Lucene,采用多shard的方式保证数据安全,并且提供自动resharding的功能,githu...
2020-04-11 22:09:42
242
原创 SpringBoot(十) 消息AMQP(RabbitMQ)
#1、概述1.在大多应用中,我们系统之间需要进行异步通信,即异步消息。2.异步消息中两个重要概念:消息代理(message broker)和目的地(destination)当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。3.异步消息主要有两种形式的目的地1.队列(queue):点对点消息通信(point-to-point)2.主题(topic):发...
2020-04-10 22:41:41
293
原创 SpringBoot(九) 缓存
内容概览:JSR-107、Spring缓存抽象、整合Redis1、JSR-107简介Java Caching定义五个核心接口:CachingProvider、CacheManager、Cache、Entry和Expiry;CachingProvider 定义了创建,配置,获取,管理和控制多个CacheManager,一个应用可以在运行期间访问多个CacheProvider;CacheMa...
2020-04-10 21:06:31
251
原创 SpringBoot(八) 自定义starter
1、自定义starter需要考虑的问题虽然SpringBoot给我们定义了大多数环境下需要使用的starter,但是也不能完全满足我们的需要,所以我们应该要能自己定义starter(场景启动器)。既然要自定义starter,我们就可以借鉴 SpringBoot 的模式来定义,首先要明确以下三个问题:1、这个自定义场景启动器需要使用到那些依赖,需要自己去引入;具体要引入什么依赖,根据自己的需...
2020-04-04 21:13:25
284
原创 SpringBoot(七) 启动配置原理
注意关注:几个重要的事件回调机制这两个需要配置在META-INF/spring.factories:ApplicationContextInitializer、SpringApplicationRunListener这两个只需要放在ioc容器中:ApplicationRunner、CommandLineRunner此次讲解的SpringBoot版本是:2.2.61、启动配置流程讲解Spr...
2020-04-04 20:03:42
546
原创 SpringBoot(六) 数据访问(JDBC/MyBatis/Spring Data Jpa)
JBDC、MyBatis、Spring Data JPA1、简介对于数据访问层,无论是SQL还是NOSQL,Spring Boot默认采用整合 Spring Data的方式进行统一处理,添加大量自动配置,屏蔽了很多设置。引入各种xxxTemplate,xxxRepository来简化我们对数据访问层的操作。对我们来说只需要进行简单的设置即可。我们将在数据访问章节测试使用SQL相关、NOSQL在...
2020-04-02 22:26:28
988
2
原创 SpringBoot(四) Web开发(3)错误处理机制和容器管理
这篇文章是以上一篇为基础的:https://blog.youkuaiyun.com/zengdongwen/article/details/1051782841、错误处理机制1.1 SpringBoot默认的错误处理机制原理分析为了方便分析处理错误机制,可以先注释掉之前的登录拦截器;1.1.1 默认的错误效果1、如果是浏览器访问一个不存在的资源,效果如下:浏览器发送请求的请求头:2、如果是其...
2020-03-31 08:50:24
754
原创 SpringBoot(四) Web开发(2)Restful风格的CRUD操作
1、创建工程使用之前使用的Spring提供的向导,快速创建一个包含web模板的SpringBoot工程:springboot-web-restful;1.1 pom.xml如下<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=...
2020-03-29 14:32:16
420
原创 SpringBoot(四) Web开发(1):SpringBoot关于静态资源的映射、Thymeleaf了解和SpringMVC的自动配置
1、简介SpringBoot就是为了来简化和快速开发我们的项目的,所以使用SpringBoot是很简单的,只需要简单的几步就好了;如果要使用SpringBoot进行Web开发,那我们需要选中web模块,SpringBoot便会帮我们做好Web开发相关的自动配置,我们只要写业务代码就行了。1)、创建SpringBoot应用,选中我们需要的模块;2)、SpringBoot已经默认将这些场景配置好...
2020-03-28 17:19:02
641
原创 SpringBoot(五)docker
1、首先安装好Oracle提供的小巧的虚拟机:Virtual Box;2、然后安装好CentOS7,然后启动,登录,通过命令:ip addr 查看虚拟机的IP;3、使用Linux的客户端连接工具(这里用的是XShell),连接虚拟机;执行命令:uname -r 查看内核版本,必须要3.10及以上;如果低于这个版本,要执行:yum update 进行更新操作执行命令:yum in...
2020-03-25 09:25:32
257
原创 VirtualBox安装CentOS7 ip addr 看不到IP
在VirtualBox上面安装完CentOS7,启动,使用 ip addr 命令查看IP地址,却看不到IP地址的内容,显示如下:记住这个enp0s3 这个就是一会修改的文件后缀,这个文件在/ect/sysconfig/network-scripts目录在文件路径下找到 ifcfg-enp0s3 文件然后进行修改cd/ect/sysconfig/network-scripts...
2020-03-24 23:17:32
2509
1
原创 SpringBoot(三)日志
1、日志框架介绍 市场上存在非常多的日志框架。JUL(java.util.logging),JCL(Apache Commons Logging),Log4j,Log4j2,Logback、SLF4j、jboss-logging等。Spring Boot在框架内容部使用JCL,spring-boot-starter-logging采用了slf4j+logback的形式,Spring...
2020-03-21 21:08:18
192
原创 SpringBoot(二)配置
1、SpringBoot的配置文件简介 SpringBoot引入了大量的自动配置,同时也支持自定义配置,SpringBoot使用一个全局的配置文件,配置文件名是固定的;application.properties 和 application.yml yml是YAML(YAML Ain't Markup Language),YAML A Markup Languag...
2020-03-20 22:52:18
281
原创 SpringBoot(一)入门
SpringBoot是学习尚硅谷的视频,我只是照写,记录笔记,作为自己的复习资料,整个SpringBoot的学习笔记包括:一、Spring Boot入门二、Spring Boot配置三、Spring Boot与日志四、Spring Boot与Web开发五、Spring Boot与Docker六、Spring Boot与数据访问七、Spring Boot启动配置原理八、Spring...
2020-03-18 23:21:29
203
原创 Maven 华为镜像仓库
拉不下jar包的时候,在maven的settings.xml文件的<mirrors>中加上下面华为的镜像仓库:<mirror> <id>huaweicloud</id> <mirrorOf>*</mirrorOf> <url>https://mirrors.huaweicloud.c...
2020-03-18 08:19:06
3181
原创 Spring注解驱动开发(三)servlet3.0以及整合SpringMVC
1、Servlet3.0 在Servlet3.0之前,创建web工程都是需要web.xml文件的,三大组件:Servlet、Filter和Listener以及SpringMVC的前端控制DispatchServlet等都是需要在web.xml文件中进行配置的。 但是这次我们要做的是基于Spring的注解配置,不想使用web.xml来进行Spring的Listener...
2020-03-16 22:40:30
430
原创 Spring注解驱动开发(二)AOP和事务管理
1、AOP AOP:【动态代理】指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式; Spring的AOP实现是基于 AspectJ 的,要在 Spring 中声明 AspectJ 切面,只需要在 IOC 容器中将切面声明为 Bean 实例. 当在 Spring IOC 容器中初始化 AspectJ 切面之后,Spring IOC 容器就会为那...
2020-03-15 17:02:33
281
spring-boot-04-web-restful.zip
2020-04-02
generatorSqlmapCustom.zip
2019-11-06
ORM思想的深入学习ORM.zip
2019-07-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人