<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[哈哈哈]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/codeliang20</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; codeliang20]]></copyright><item><title><![CDATA[什么！1024你就给我看这 ConcurrentModificationException]]></title><link>https://blog.csdn.net/codeliang20/article/details/120942623</link><guid>https://blog.csdn.net/codeliang20/article/details/120942623</guid><author>codeliang20</author><pubDate>Sun, 24 Oct 2021 22:24:45 +0800</pubDate><description><![CDATA[前言
​	今天是1024节日，首先和大家说声节日快乐哈，也好久没更新过博客了，从去年停更以来这段时间确实经历了很多事情，也就是我从一个学生慢慢转变为一个职场人的过程，以后有机会的话可以和大家分享这段时间的经历。
正文
回到正题，今天主要和大家分享一个我之前在工作中遇到的一个异常。

java.util.ConcurrentModificationException

emm…
大家是不觉得稍微有点陌生，没关系，上代码，大家来看看这个异常是如何产生的。
		List&lt;String&gt; list = ]]></description><category></category></item><item><title><![CDATA[解决CORS : No ‘Access-Control-Allow-Origin’ header is present on the requested resource访问跨域问题]]></title><link>https://blog.csdn.net/codeliang20/article/details/108248066</link><guid>https://blog.csdn.net/codeliang20/article/details/108248066</guid><author>codeliang20</author><pubDate>Wed, 26 Aug 2020 21:37:21 +0800</pubDate><description><![CDATA[一. 抛出问题
今天在使用写前端代码的时候，在HBuilder中用JQuery异步请求eclipse中的项目
报出了下面的错误

问题copy下来就是：

Access to XMLHttpRequest at ‘http://localhost:6230/all/allexams?accId=1’ from origin ‘http://127.0.0.1:8848’ has been blocked by CORS  : No ‘Access-Control-Allow-Origin’ header i]]></description><category></category></item><item><title><![CDATA[SpringCloud神兽（五）之Zuul]]></title><link>https://blog.csdn.net/codeliang20/article/details/108222732</link><guid>https://blog.csdn.net/codeliang20/article/details/108222732</guid><author>codeliang20</author><pubDate>Tue, 25 Aug 2020 15:47:50 +0800</pubDate><description><![CDATA[一. Zuul路由网关概述
Zuul包含了对请求的路由和过滤两个最主要的功能：
其中路由功能负责将外部请求转发到具体的微服务实例上，是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预，是实现请求校验、服务聚合等功能的基础.
Zuul和Eureka进行整合，将Zuul自身注册为Eureka服务治理下的应用，同时从Eureka中获得其他微服务的消息，也即以后的访问微服务都是通过Zuul跳转后获得。
注意：Zuul服务最终还是会注册进Eureka
Zuul能干嘛：代理、路由、过滤
二. 路由基]]></description><category></category></item><item><title><![CDATA[SpringCloud神兽（四）之Hystrix]]></title><link>https://blog.csdn.net/codeliang20/article/details/108183962</link><guid>https://blog.csdn.net/codeliang20/article/details/108183962</guid><author>codeliang20</author><pubDate>Sun, 23 Aug 2020 15:42:46 +0800</pubDate><description><![CDATA[一. Hystrix断路器概述
分布式系统面临的问题
复杂分布式体系结构中的应用程序有数十个依赖关系，每个依赖关系在某些时候将不可避免地失败。
服务雪崩
多个微服务之间调用的时候，假设微服务A调用微服务B和微服务C，微服务B和微服务C又调用其它的微服务，这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用，对微服务A的调用就会占用越来越多的系统资源，进而引起系统崩溃，所谓的“雪崩效应”.
对于高流量的应用来说，单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和。比失败更糟]]></description><category></category></item><item><title><![CDATA[解决“org.xml.sax.SAXParseException: 元素内容必须由格式正确的字符数据或标记组成”]]></title><link>https://blog.csdn.net/codeliang20/article/details/108183929</link><guid>https://blog.csdn.net/codeliang20/article/details/108183929</guid><author>codeliang20</author><pubDate>Sun, 23 Aug 2020 15:40:25 +0800</pubDate><description><![CDATA[抛出问题
分享一下今天写代码碰到的一个小问题吧，个人认为是一个比较细节的知识点
不多说，上图

可以看到异常信息为： org.xml.sax.SAXParseException: 元素内容必须由格式正确的字符数据或标记组成。
解决方案
当你看到这个异常的时候，大概率就是你的SQL映射文件写错了
我找到了我的SQL映射文件，最终发现了问题

原来在SQL映射文件里 &lt;= 和 &gt;= 属于特殊字符
需要添加&lt;![CDATA[]]&gt;
我的解决如下：

这样就不会报错了
希望可以帮到你！

.]]></description><category></category></item><item><title><![CDATA[SpringCloud神兽（三）之Feign]]></title><link>https://blog.csdn.net/codeliang20/article/details/108154229</link><guid>https://blog.csdn.net/codeliang20/article/details/108154229</guid><author>codeliang20</author><pubDate>Fri, 21 Aug 2020 19:05:24 +0800</pubDate><description><![CDATA[一. Feign负载均衡（接口式编程）概述
Feign是一个声明式的Web服务客户端，使得编写Web服务客户端变得非常容易，只需要创建一个接口，然后在上面添加注解即可。
Feign能干什么
Feign旨在使编写Java Http客户端变得更容易。
前面在使用Ribbon+RestTemplate时，利用RestTemplate对http请求的封装处理，形成了一套模版化的调用方法。但是在实际开发中，由于对服务依赖的调用可能不止一处，往往一个接口会被多处调用，所以通常都会针对每个微服务自行封装一些客户端类来包装]]></description><category></category></item><item><title><![CDATA[SpringCloud神兽（二）之Ribbon]]></title><link>https://blog.csdn.net/codeliang20/article/details/108136187</link><guid>https://blog.csdn.net/codeliang20/article/details/108136187</guid><author>codeliang20</author><pubDate>Thu, 20 Aug 2020 22:15:10 +0800</pubDate><description><![CDATA[一. Ribbon概述
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。
简单的说，Ribbon是Netflix发布的开源项目，主要功能是提供客户端的软件负载均衡算法，将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时，重试等。简单的说，就是在配置文件中列出Load Balancer（简称LB）后面所有的机器，Ribbon会自动的帮助你基于某种规则（如简单轮询，随机连接等）去连接这些机器。我们也很容易使用Ri]]></description><category></category></item><item><title><![CDATA[Eureka对比Zookeeper，到底谁更优秀]]></title><link>https://blog.csdn.net/codeliang20/article/details/108108893</link><guid>https://blog.csdn.net/codeliang20/article/details/108108893</guid><author>codeliang20</author><pubDate>Wed, 19 Aug 2020 19:45:23 +0800</pubDate><description><![CDATA[一. 作为服务注册中心，Eureka比Zookeeper好在哪里
著名的CAP理论指出，一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性P在是分布式系统中必须要保证的，因此我们只能在A和C之间进行权衡。
因此
Zookeeper保证的是CP,
Eureka则是AP。
二. 详谈CAP理论
1.一致性
在分布式环境中，一致性是指数据在多个副本之间是否能够保持一致的特性。在一致性的需求下，当一个系统在数据一致的状态下执行更新操作后，应该保证系统的数据任然处于一致的状态。
]]></description><category></category></item><item><title><![CDATA[SpringCloud神兽（一）之Eureka]]></title><link>https://blog.csdn.net/codeliang20/article/details/108066138</link><guid>https://blog.csdn.net/codeliang20/article/details/108066138</guid><author>codeliang20</author><pubDate>Mon, 17 Aug 2020 22:33:07 +0800</pubDate><description><![CDATA[一. Eureka的基本架构
Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现(请对比Zookeeper)。
Netflix在设计Eureka时遵守的就是AP原则。CAP原则又称CAP定理，指的是在一个分布式系统中，Consistency（一致性）、 Availability（可用性）、Partition tolerance（分区容错性），三者不可兼得
Eureka 采用了 C-S 的设计架构。Eureka Server 作为服务注册功能的服务器，它是服务]]></description><category></category></item><item><title><![CDATA[SpringCloud入门概述]]></title><link>https://blog.csdn.net/codeliang20/article/details/108033668</link><guid>https://blog.csdn.net/codeliang20/article/details/108033668</guid><author>codeliang20</author><pubDate>Sun, 16 Aug 2020 11:06:17 +0800</pubDate><description><![CDATA[一. SpringCloud简介
SpringCloud，基于SpringBoot提供了一套微服务解决方案，包括服务注册与发现，配置中心，全链路监控，服务网关，负载均衡，熔断器等组件，除了基于NetFlix的开源组件做高度抽象封装之外，还有一些选型中立的开源组件。
SpringCloud利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发，SpringCloud为开发人员提供了快速构建分布式系统的一些工具，包括配置管理、服务发现、断路器、路由网关、微代理、事件总线、全局锁、决策竞选、分布]]></description><category></category></item><item><title><![CDATA[微服务简介]]></title><link>https://blog.csdn.net/codeliang20/article/details/108023877</link><guid>https://blog.csdn.net/codeliang20/article/details/108023877</guid><author>codeliang20</author><pubDate>Sat, 15 Aug 2020 15:56:06 +0800</pubDate><description><![CDATA[一. 什么是微服务
微服务化的核心就是将传统的一站式应用，根据业务拆分成一个一个的服务，彻底地去耦合，每一个微服务提供单个业务功能的服务，一个服务做一件事，从技术角度看就是一种小而独立的处理过程，类似进程概念，能够自行单独启动或销毁，拥有自己独立的数据库。
二. 微服务和微服务架构
**微服务：**强调的是服务的大小，它关注的是某一个点，是具体解决某一个问题/提供落地对应服务的一个服务应用,
狭意的看,可以看作Eclipse里面的一个个微服务工程/或者Module
**微服务架构：**是一种架构模式，它提倡]]></description><category></category></item><item><title><![CDATA[SpringBoot整合Mybatis快速入门]]></title><link>https://blog.csdn.net/codeliang20/article/details/107967574</link><guid>https://blog.csdn.net/codeliang20/article/details/107967574</guid><author>codeliang20</author><pubDate>Wed, 12 Aug 2020 21:50:08 +0800</pubDate><description><![CDATA[一. 前言
​	首先来介绍一下什么是SpringBoot

简单来说就是约定大于配置，很多集成方案已经帮你选择好了，能不配置就不配置。
回想当初Maven创建SSM工程，我们在pom.xml文件写了多少依赖，而在Spring和SpringMVC的配置文件写了多少配置；现在有了SpringBoot，它会为我们选择最合适的依赖，没有冗余代码生成和XML配置的要求（都给默认了）。
二. 基于SpringBoot搭建SSM项目
准备工作：

java version “1.8.0_221”
Apache Maven]]></description><category></category></item><item><title><![CDATA[解决SpringBoot“Cannot determine embedded database driver class for database type NONE”问题]]></title><link>https://blog.csdn.net/codeliang20/article/details/107922234</link><guid>https://blog.csdn.net/codeliang20/article/details/107922234</guid><author>codeliang20</author><pubDate>Mon, 10 Aug 2020 21:10:37 +0800</pubDate><description><![CDATA[一. 前言
​	说一下今天的心路历程吧，崩溃了（笑哭），今天第一次接触springboot，不得不说太香了，但却碰到了一个令人头疼的问题，不多说，上图。

就是这个Cannot determine embedded database driver class for database type NONE，翻译过来的意思是
无法确定数据库类型none的嵌入式数据库驱动程序类
二. 解决思路
从翻译结果的角度来看，估计是和我们数据库或者数据库驱动的配置有关

SpringBoot全局配置文件


看起来似乎没什]]></description><category></category></item><item><title><![CDATA[深入理解Redis事务]]></title><link>https://blog.csdn.net/codeliang20/article/details/107895770</link><guid>https://blog.csdn.net/codeliang20/article/details/107895770</guid><author>codeliang20</author><pubDate>Sun, 09 Aug 2020 16:26:11 +0800</pubDate><description><![CDATA[一.Redis事务简介
可以一次执行多个命令，本质是一组命令的集合。一个事务中的
所有命令都会序列化，按顺序地串行化执行而不会被其它命令插入，不许加塞
Redis事务的作用：一个队列中，一次性、顺序性、排他性的执行一系列命令
二.Redis事务演示
①正常执行

②取消事务 discard

③全体连坐------事务块中指令语法错误

④冤头债主------所有事务块中的指令没有语法错误，但是执行某一条指令出现错误，其他指令正常执行

⑤watch监控
案例：初始化信用卡额度（balance）及欠额（de]]></description><category></category></item><item><title><![CDATA[Redis五大数据类型]]></title><link>https://blog.csdn.net/codeliang20/article/details/107876545</link><guid>https://blog.csdn.net/codeliang20/article/details/107876545</guid><author>codeliang20</author><pubDate>Sat, 08 Aug 2020 11:02:06 +0800</pubDate><description><![CDATA[一. String（字符串）
​	string是redis最基本的类型，你可以理解成与Memcached一模一样的类型，一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型，一个redis中字符串value最多可以是512M。
常用指令：
set k1 v1
get k1
del k1				//删除键k1
append k1 abc		//在k1的value后追加ab]]></description><category></category></item><item><title><![CDATA[Redis持久化之RDB演示]]></title><link>https://blog.csdn.net/codeliang20/article/details/107869852</link><guid>https://blog.csdn.net/codeliang20/article/details/107869852</guid><author>codeliang20</author><pubDate>Fri, 07 Aug 2020 20:20:16 +0800</pubDate><description><![CDATA[一. 前言
​		由于 Redis 是一个内存数据库，所谓内存数据库，就是将数据库中的内容保存在内存中，这与传统的MySQL，Oracle等关系型数据库直接将内容保存到硬盘中相比，内存数据库的读写效率比传统数据库要快的多（内存的读写效率远远大于硬盘的读写效率）。但是保存在内存中也随之带来了一个缺点，一旦断电或者宕机，那么内存数据库中的数据将会全部丢失。
为了解决这个缺点，Redis提供了将内存数据持久化到硬盘，以及用持久化文件来恢复数据库数据的功能。Redis 支持两种形式的持久化，一种是RDB快照（sna]]></description><category></category></item><item><title><![CDATA[Linux系统下安装JDK及Tomcat]]></title><link>https://blog.csdn.net/codeliang20/article/details/107849034</link><guid>https://blog.csdn.net/codeliang20/article/details/107849034</guid><author>codeliang20</author><pubDate>Thu, 06 Aug 2020 20:28:24 +0800</pubDate><description><![CDATA[一. 前言
今天来教大家如何在Linux系统中安装jdk及tomcat
二. 安装操作
2.1安装jdk
①下载jdk
可以去官网下载，记得选择linux版本，官网地址：www.orcal.com
②将jdk放入到opt目录后解压

③查看解压后的目录，ls即可
④配置环境变量，修改文件 /etc/profile 文件就是环境变量的配置文件

将jdk的bin目录配置到path变量
将jdk的安装目录配置到JAVA_HOME目录


⑤配置完成之后需要注销用户，环境变量才能够生效 3 的级别使用logout]]></description><category></category></item><item><title><![CDATA[Linux指令大全，看完就不会在“黑窗体”下迷茫了]]></title><link>https://blog.csdn.net/codeliang20/article/details/107823935</link><guid>https://blog.csdn.net/codeliang20/article/details/107823935</guid><author>codeliang20</author><pubDate>Wed, 05 Aug 2020 20:10:22 +0800</pubDate><description><![CDATA[一. 前言
分享一波Linux实用指令
二. 指令大全
1.帮助指令
介绍：当我们对某个指令不熟悉的情况下，我们通过Linux的帮助指令来了解这个指令的使用方法，但是很不幸，帮助指令的结果全是英文。
①man指令
基本语法：man [命令或者配置]，用来获得帮助信息
举例：我们知道ls可以看到目录中的所有内容，通过man ls 查询ls 指令的选项

②help指令
基本语法：helo 指令
案例：

③当遇到一个不熟悉的指令时，建议百度
2.文件目录类指令
①pwd指令
基本语法：pwd
功能描述：显示当]]></description><category></category></item><item><title><![CDATA[Linux用户管理指令大全]]></title><link>https://blog.csdn.net/codeliang20/article/details/107798126</link><guid>https://blog.csdn.net/codeliang20/article/details/107798126</guid><author>codeliang20</author><pubDate>Tue, 04 Aug 2020 20:26:09 +0800</pubDate><description><![CDATA[一. 用户管理基本介绍
Linux系统是一个多用户多任务的操作系统，任何一个要使用系统资源的用户，都必须使用系统管理员账户统一的申请，然后这个账户才能够使用系统资源。任何的账户都必须存在于一个组中。图例如下：

二. 用户管理基本指令
1.添加用户
​	useradd  mayun	(添加新用户 mayun)
2.给用户指定密码
​	passwd   mayun	（给用户mayun设置密码）
3.删除用户
​	userdel mayun	（删除用户mayun）
4.查询用户
​	id mayun	(查询用户]]></description><category></category></item><item><title><![CDATA[Linux关机重启指令及指定运行级别]]></title><link>https://blog.csdn.net/codeliang20/article/details/107773558</link><guid>https://blog.csdn.net/codeliang20/article/details/107773558</guid><author>codeliang20</author><pubDate>Mon, 03 Aug 2020 21:10:22 +0800</pubDate><description><![CDATA[一. 关机重启指令
基本介绍：
​	shutdown：关机指令
​	shutdown -h now：现在立刻关机
​	shutdown -h 1：表示1分钟之后关机
​	shutdown -r now：表示立即重启
​	shutdown -r 1：表示1分钟之后重启1
​	halt：现在立刻关机
​	reboot：表示立即重启
​	syn：关机或重启之前将数据同步到磁盘，防止内存数据丢失。
二. 用户登录和注销
1.用户登录最好尽量少用root账户，因为root账户是管理员，拥有最高权限，不使用root就是]]></description><category></category></item></channel></rss>