自定义博客皮肤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)
  • 收藏
  • 关注

原创 Spring 整合 Hibernate JPA

Spring 整合 Hibernate步骤:1、在项目中导入 HIbernateJPA 相关的 jar 包2、新建applicationContext.xml文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co

2021-05-11 12:01:46 360

原创 解决SpringBoot定时任务阻塞问题的3个方法

方法一:在普通线程池中异步方法二:springboot支持定时任务线程池spring.task.scheduling.pool.size=10(默认是1,所以阻塞)但有些版本有bug不好使方法三:直接让定时任务以异步方式执行 – SpringBoot异步任务类上@EnableAsync+方法上@Async(其实就是调用TaskSchedulingAutoConfiguration,属性绑定在TaskExecutionProperties)...

2021-05-01 10:51:49 2611

原创 一定要先看!Kubernetes+KubeSphere+DevOps的安装与踩坑

1、安装本人于2020/9安装的k8s,不同时间段的官方资料会有变动,从而使初学者很抓狂(比如链接404等),所以一定要先看我这篇,尽量一次全部安装成功,不然重装又会出现许多疑难杂症。官方安装文档首先,我按照文档一步一步操作,前面都没有问题,直到“最小化安装Kubernetes”,系统找不到此文件。原因是官方在github上的项目改了,导致链接也废了。这时候我们直接跳到 github,发现最新版本是3.0,按照它的步骤执行就行了。不过还是有那个问题,就是要执行的文件链接不对。这时我们可以直

2020-09-23 10:58:56 10296

原创 MyBatis运行原理(附源码)

我们在学习初学MyBatis的时候,一般都会写一个MyBatisUtil,以提供SqlSession的获取和关闭方法。其中一开始的片段是这样的:InputStream is = Resources.getResourceAsStream("mybatis.xml");SqlSessionFactory factory = new SqlSessionFactoryBuilder().build...

2020-07-10 15:11:28 343

原创 深入浅出地讲解 java代理设计模式(附例子)

java动态代理

2020-07-10 11:59:58 929

原创 mysql的读已提交和可重复读(Read Committed和Repeatable Read隔离级别)

共享锁和排他锁READ-COMMITTED读已提交REPEATABLE-READ可重复读

2020-06-27 18:56:02 12329 6

转载 Paxos算法

Paxos算法能够保证分布式环境中数据的一致性。一、 生活例子——选举1.1 角色我们知道,投票中有三种角色,分别是Proposer提议者、Acceptor接受者和Learner学习者。Proposer负责提案;Acceptor负责投票;Learner负责执行。1.2 选举阶段整个选举过程分为两个阶段。第一阶段:选出意见领袖第二阶段:处理意见领袖的提案二、 Paxos算法流程(可搭配此图食用下文三、具体实现)三、 具体实现server-master选举假设我们有server1

2020-06-23 09:18:42 312

转载 基于redis / zookeeper的分布式锁方案

分布式锁

2020-06-22 11:35:29 216

原创 Collections.sort() / Arrays.sort()内部排序原理(附源码追踪)

我们直奔重点,看sort() public static void sort(Object[] a) { if (LegacyMergeSort.userRequested) legacyMergeSort(a); else //底层调用此方法,a指要排序的数组(集合) ComparableTimSort.sort(a, 0, a.length, null, 0, 0); } stat

2020-06-14 11:14:36 328

原创 SpringCloud 版本号说明(版本号命名规则)

常见版本号说明Spring Cloud 版本号说明一、常见版本号说明软件版本号: 2.0.2.RELEASE2: 主版本号。 当功能模块有较大更新或者整体架构发生变化时, 主版本号会更新0: 次版本号。 次版本表示只是局部的一些变动。2: 修改版本号。 一般是 bug 的修复或者是小的变动RELEASE:表示该版本最终版。希腊字母版本号Base: 设计阶段。只有相应的设计没有具体的功能实现。Alpha:初级版本。存在较多 bugBate:表示相对 alpha 有了很大进步,消除了严.

2020-05-31 12:36:24 1617

原创 微服务的设计及其原则

AKF 拆分原则前后端分离原则无状态服务原则RestFul 通信风格一、AKF 拆分原则业界对可扩展的系统架构设计有一个朴素理念:通过加机器解决容量和可用性问题。这一理念在“云计算”概念疯狂流行的今天, 得到了广泛的认可! 对于一个规模迅速增长的系统而言, 容量和性能问题是首当其冲的。 但随着时间的向前,系统规模的增长, 除了面对性能与容量的问题外, 还需要面对功能与模块数量上的增长带来的系统复杂性问题以及业务的变化带来的提供差异化服务问题。 而许多系统, 在架构设计时并未充分考虑到这些问题.

2020-05-31 11:32:34 558

原创 Quartz 定时任务框架的使用

使用Quartz做一个定时任务步骤:1、在pom文件中添加 Quartz 坐标 <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version> </dependency>2、创建Job类public class Quartz

2020-05-29 16:42:25 426

原创 SpringBoot 定时任务中的 cron 表达式详解

Cron 表达式Cron 表达式是一个字符串, 分为 6 或 7 个域, 每一个域代表一个含义。Cron 有如下两种语法格式:(1) Seconds Minutes Hours Day Month Week Year(2) Seconds Minutes Hours Day Month WeekCron 表达式中的特殊字符Cron 表达式的时间字段除允许设置数值外, 还可使用一些特殊的字符, 提供列表、 范围、 通配符等功能, 细说如下●星号(*): 可用在所有字段中, 表示对应时间域的每一

2020-05-29 16:03:38 2565

原创 SpringCloud 中 Spring Data Redis 最原始的配置方法

@Configurationpublic class RedisConfig { /** * 1.创建JedisPoolConfig对象。在该对象中完成一些链接池配置 * */ @Bean public JedisPoolConfig jedisPoolConfig() { JedisPoolConfig config = new JedisPoolConfig(); // 最大空闲数 config.setMaxIdle(10); // 最小空闲数 config.se

2020-05-29 11:16:46 300 1

原创 springboot 使用 Thymeleaf 时,出现org.xml.sax.SAXParseException异常的解决方法

解决方式一让 html 的标记按照严谨的语法去编写<meta charset="UTF-8">解决方式二Thymeleaf.jar更新为 3.0 以上的版本thymeleaf-layout-dialect.jar更新为 2.0 以上的版本在pom.xml文件中添加:<properties><thymeleaf.version>3.0.2.RELEASE</thymeleaf.version><thymeleaf-layout-dia.

2020-05-26 11:38:04 580

原创 SpringBoot 中整合 Servlet、Filter、Listener 的两种方式

一、SpringBoot中整合Servlet方式一:通过注解扫描完成 Servlet 组件的注册步骤:1、编写 servlet,并加上@WebServlet注解@WebServlet(name="FirstServlet",urlPatterns="/first")public class FirstServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletRe

2020-05-25 12:20:12 212

原创 超实用网络通讯原理

一、URLhttp://localhost:8080/project/myServleturl 的组成:协议:服务器地址(ip) : 端口号 / 虚拟项目名 / servlet的别名其中,/ 虚拟项目名 / servlet的别名是uri浏览器发送请求到服务器,服务器根据请求 URL 地址中的 URI 信息在 webapps 目录下找到对应的项目文件夹,然后在 web.xml 中检索对应的 servlet,找到后调用并执行Servlet二、IP地址IP是32位(bit)二进制数据,通常以点分十

2020-05-23 21:38:14 656

原创 接口安全机制(DES和AES加密)

加解密

2020-05-23 18:02:20 1879

原创 网页存储webstorage(Local Storage 和 Session Storage)

webstorage 分为 localStorage 和 sessionStoragelocalStoragelocalStorage 的生命周期是永久的, 关闭页面或浏览器之后 localStorage 中的数据也不会消失。除非主动删除数据, 否则数据永远不会消失。sessionStoragesessionStorage 是会话相关的本地存储单元, 生命周期是在仅在当前会话下有效。sessionStorage 引入了一个“浏览器窗口”的概念, sessionStorage 是在同源的窗口中始终存

2020-05-23 17:34:53 727

原创 JWT(JSON Web Token)的数据结构

JWT 的数据结构是 : A.B.C。 由字符点‘.’来分隔三部分数据。A - header 头信息B - payload (有效荷载,用于记录用户非隐私数据)C - Signature 签名header数据结构: {“alg”: “加密算法名称”, “typ” : “JWT”}alg 是加密算法定义内容,如: HMAC SHA256 或 RSAtyp 是 token 类型,这里固定为 JWT。payload在 payload 数据块中一般用于记录实体(通常为用户信息)或其他数据的。主要分

2020-05-23 17:25:33 969

原创 十步讲解solr和solrCloud的安装与配置

window环境1.下载solr-4.10.3.zip(或其他版本),解压2. 修改solr-4.10.3\example\solr\collection1\conf下的solrconfig.xml(即SolrCore运行配置文件,路径中的collection1就是一个SolrCore实例)一个solrHome中可以创建多个SolrCore,即可以有collection1、collection2、collection3…修改solrconfig.xml文件: <lib dir="${sol

2020-05-14 12:20:56 590

原创 SpringMVC 拦截器 Interceptor

什么是 Interceptor?SpringMVC的拦截器HandlerInterceptor,针对调用Controller的请求,进行拦截和处理。我们首先自定义一个Interceptorpublic class DemoInterceptor implements HandlerInterceptor { // 在进入控制器之前执行 // 如果返回值为false,阻止进入控制器 ...

2020-05-04 17:46:44 287

原创 SpringMVC中值的传递方式

SpringMVC 作用域传值的几种方式方式一:使用原生 Servlet方式二:使用Map集合方式三: 使用 SpringMVC 中的 Model 接口方式四:使用 SpringMVC 中 ModelAndView 类方式一:使用原生 Servlet在 HanlderMethod 参数中添加作用域对象 @RequestMapping("demo1") public String demo1...

2020-05-04 14:56:37 112

原创 SpringMVC运行原理(附源码追踪)

我们知道,SpringMVC是对servlet的封装SpringMVC是对servlet的封装SpringMVC是对servlet的封装提到Servlet,我们会想到什么?首先,三大作用域application、session、request //接口 ApplicationContext ac = null; HandlerMapping hm = null; Hand...

2020-05-03 22:20:44 209

原创 依赖 jquery的几种AJAX写法

第一层 $.ajax({ 属性名:值,属性名:值})jquery中功能最全的ajax,写起来相对麻烦 /* url: 请求服务器地址 data:请求参数 dataType:服务器返回数据类型 error 请求出错执行的功能 success 请求成功执行的功能,function(data) data 服务器返 回的数据.type:请求方式 */ $...

2020-04-29 11:57:23 581

原创 单例模式的3种写法

懒汉式(被调用时才实例化)public class SingleTon { private static SingleTon singleton; private SingleTon() { } public static SingleTon getInstance() { // 添加逻辑如果实例化过,直接返回 if (singleton == null) { // ...

2020-04-28 22:28:49 169

原创 为什么要重写equals和hashCode方法?

首先我们来看看,Object类的equal方法是怎样写的: public boolean equals(Object obj) { return (this == obj); }咦,不对啊,不是说好了==是比较地址,equals()是比较值么?这句话其实没说全,完整版是:使用equals()比较八大包装类对象和String类对象时,比较的是值;而对于其它对象,...

2020-04-25 18:00:32 255

原创 org.eclipse.swt.SWTError: No more handles at org.eclipse.swt.SWT.error(SWT...

eclipse在子窗口切换至编辑窗口时出现Unhandled event loop exception报错org.eclipse.swt.SWTError: No more handles解决方法一安装WindowBuilder插件,把*.java等文件设置成使用WindowBuilder打开编辑解决方法二在试遍了网上所有的方法后,活马当死马医,找到了一个很毒的方法:把集显(集成显卡)驱...

2020-04-24 01:15:15 934 1

转载 十图详解红黑树原理(HashMap)

二叉查找树 Binary Search Tree(BST)不知道大家有没有玩过一个游戏,叫“猜数字”。甲先在纸上写一个数字(如11),然后让另外一些人在1-100的范围内猜这个数字(如A猜49),若猜中,则此人输,游戏结束;若没有猜中,则由甲缩小数字范围(甲说,范围变为1-49),由下一人继续猜,直至猜出数字为止。这也是二叉查找树的精髓,通过不断比较大小,缩小范围,最终查找到想要的元素的位置。...

2020-03-12 20:52:31 910

原创 高可用的分布式管理与协调框架ZooKeeper

什么是zookeeper?zookeeper是一个高效的分布式协调服务,用于暴露一些公用服务(如命名、配置管理、同步控制、群组服务)。zookeeper原理?基于ZAB(原子消息广播协议)的paxos算法,能够很好地保证分布式环境中数据的一致性。应用场景配置管理(如机器的配置列表、运行时的 开关配置、数据库配置信息)集群管理发布与订阅数据库切换分布式日志的收集分布式锁、队列管......

2020-03-09 17:49:49 317

原创 java虚拟机JVM及其垃圾回收机制GC

JVM

2020-03-09 15:34:39 399

原创 mysql某表不能访问的可能原因

原因:使用了mysql关键字做表名mysql版本:8.0.18表名:member

2019-11-08 16:56:13 676

原创 yum提示Another app is currently holding the yum lock;

强制关掉yum进程:#rm -f /var/run/yum.pid

2019-09-28 10:07:49 129

原创 org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.ljm.pojo.People with

报错:Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.ljm.pojo.People with invalid types () or values (). Cause: java.lang.NoSuchMethodException: com.ljm.pojo.Peopl...

2019-07-19 11:02:44 537

原创 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start com

启动项目时报错 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].是由于@WebServlet(“show”)没写 /改成@WebS...

2019-07-18 16:14:09 171

原创 java.lang.IllegalArgumentException: Expected MultipartHttpServletRequest: is a MultipartResolver con

java.lang.IllegalArgumentException: Expected MultipartHttpServletRequest: is a MultipartResolver configured?解决方法:在springmvc.xml配置 <!--Mutipart解析器 --> <bean id="multipartResolver" class=...

2019-07-17 16:02:09 2668 3

原创 Redis Desktop Manager连接Redis连接不上

解决方法一:关闭防火墙Linux#service iptables stop解决方法二:把网络连接方式改为桥接模式一般网线连接的话使用NAT无线连接使用桥接

2019-07-09 09:59:03 498

原创 Linux错误 yum Error: Cannot retrieve repository metadata (repomd.xml) for repository:fedora...

解决方法一:重建yum的库#yum clean all#rm -f /var/lib/rpm/__db*#rpm --rebuilddb#yum clean metadata#yum makecache解决方法二:修改报错里提示的文件打开/etc/yum.repos.d/xxx.repo,如我是fedora.repo将[fedora]中的enabled=1改为enabled=0...

2019-07-08 20:41:15 2477

空空如也

空空如也

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

TA关注的人

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