自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 资源 (1)
  • 收藏
  • 关注

原创 @Mapper注解的使用

@Mapper注解的的作用1:为了把mapper这个DAO交給Spring管理 http://412887952-qq-com.iteye.com/blog/23926722:为了不再写mapper映射文件 https://blog.csdn.net/weixin_39666581/article/details/1038994953:为了给mapper接口 自动根据一个添加@Mapp...

2018-07-16 13:36:38 165069 8

原创 springcloud实战篇十一之 springcloud-config 分布式配置中心二

上篇展示了如何通过config-server和config-client读取服务,现在新建一个服务提供者工程,把他当做config-client,读取配置中心中的文件工程目录示例1.pom.xml文件<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XML...

2018-07-15 20:41:01 173

原创 springcloud实战篇十之 springcloud-config 分布式配置中心

一、简介在分布式系统中,由于独立的微服务数量很多,为了方便服务配置文件统一管理,并实现不重启服务自动刷新配置,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config,支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,它是属于CS架构 ,一是co...

2018-07-15 20:22:25 294

原创 Mysql 更新一条数据的过程

mysql固然是俺们后台同学每天都会使用接触到的关系型数据库,而我们通过标准的sql语句当然可以很熟练的操作mysql实现常规的CRUD。但是如果突然有一天,领导问你一个update一句怎么执行的,如果执行update语句的时候突然宕机了,数据怎么恢复。。。。。。感觉一下子就涉及到了俺的知识盲区,然而,学而知不足,不懂就学嘛。写个文章记录一下,我对于mysql最常用的update怎么执行的理解下图是从视频截图的,简单介绍了下innoDB的大致结构使用innoDB引擎的mysql的...

2020-11-09 23:25:46 1744 1

原创 Jenkins的master单实例的吗

工作上接触过Jenkins比较多,但是大多是停留在使用阶段,对于其架构原理,其实也是有点模糊今天看了Jenkins-Master/Slave模式的什么是Master/Slave模式?这个其实软件里面一些比较耗时job分派给其他服务执行的模式,分担jinkins服务器的压力,任务分配到其他执行机来执行,这种模式除了Jenkins,大名鼎鼎的K8S也是使用到。Master:Jenkins服务器Slave:执行机(奴隶机)。执行Master分配的任务,并返回任务的进度和结果。1、slave向m.

2020-08-30 16:22:50 547

原创 idea社区版无法创建springboot项目

因为之前的idea破解出了问题,无奈下载社区版,但是却发现社区版无法快速安装springboot项目等,郁闷ing。。。。。。于是,想着应该是插件问题,所以就在插件市场找到了spring Assistant,然后安装然后再次创建项目的时候,就可以看到这插件得了然后就看到了...

2020-06-07 08:49:16 11408 6

原创 redis

1. 要进行Master-slave配置,出现服务故障时可以支持切换。2. 在master侧禁用数据持久化,只需在slave上配置数据持久化。3. 物理内存+虚拟内存不足,这个时候dump一直死着,时间久了机器挂掉。这个情况就是灾难!4. 当Redis物理内存使用超过内存总容量的3/5时就会开始比较危险了,就开始做swap,内存碎片大5. 当达到最大内存时,会清空带有过期时间的ke...

2020-04-28 22:29:08 334

原创 linux网络:用户态以及内核态

学习linux网络编程的时候,经常看到用户态以及内核态,但是不是很理解,所以写个博客认真研究一番:多数计算机有两种运行模式:内核态和用户态。 软件中最基础的部分是操作系统,它运行在内核态(也称管态、核心态)。在这个模式中,操作系统具有对所有硬件的完全访问权,可以执行机器能够运行的任何指令。软件的其余部分运行在用户态下。在用户态下,只使用了机器指令中的一个子集。特别地,那些会影响机器的控制...

2020-04-19 16:37:46 779

原创 项目报错:The server time zone value '�й���׼ʱ��'

启动项目报错Caused by: java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the se...

2020-04-06 16:04:19 1913

原创 volatile大补

对于volatile这个关键字,相信很多朋友都听说过,甚至使用过,这个关键字虽然字面上理解起来比较简单,但是要用好起来却不是一件容易的事。这篇文章将从多个方面来讲解volatile,让你对它更加理解。计算机中为什么会出现线程不安全的问题volatile既然是与线程安全有关的问题,那我们先来了解一下计算机在处理数据的过程中为什么会出现线程不安全的问题。大家都知道,计算机在执行程序时,每条...

2020-04-06 11:30:05 136

原创 记录一次解决了CPU飙升的问题

负责的项目预定今天凌晨2点上进行版本更新。前几天测试对网站进行压力测试,观察服务的CPU、内存、load、RT、QPS等各种指标。在压测的过程中,测试发现我们其中一个接口,在QPS上升到400以后,CPU利用率急剧升高。在这里我不再对CPU、内存、load、RT、QPS等做过多赘述,毕竟这几个点中的任何一个拿出来探讨,一篇文章都不一定写的完。有兴趣深究自己动手查一下吧。这里我仅对QPS...

2020-04-02 23:02:10 646

原创 调查问卷

2020-03-08 21:45:02 141

原创 面试:对称加密算法及对称加密算法

对称加密:双方使用的同一个密钥,既可以加密又可以解密,这种加密方法称为对称加密,也称为单密钥加密。优点:速度快,对称性加密通常在消息发送方需要加密大量数据时使用,算法公开、计算量小、加密速度快、加密效率高。缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不...

2020-01-19 23:06:24 692

原创 网络知识学习:粘包和拆包学习

在进行Java NIO学习时,发现,如果客户端连续不断的向服务端发送数据包时,服务端接收的数据会出现两个数据包粘在一起的情况,这就是TCP协议中经常会遇到的粘包以及拆包的问题。 在讲粘包问题之前,首先得明白这个包是应用层的数据包。 当数据在传输层时,由于TCP是面向字节流的,所以它看到的数据是按照顺序一个个放在缓冲区中的,而对于应用层而言,看到的只是一连串的数据,那么应用层该从哪里...

2020-01-14 22:23:07 292

原创 网络知识学习:https服务的原理和实现

https详解目前大部分大型网站已经全部切换到了https服务,所以很有必要了解整个https的原理,https是如何保证信息安全的。这里希望大家对以下部分名词有一定的了解:数字证书 是互联网通信中的身份标识(主要是用户身份信息和公钥),一般由CA中心颁发,既CA认证中心,或第三方权威机构。数字证书上通常包括:CA的签名,证书所有人的公钥,CA中心的签名算法,指纹以及指纹算法,证书的唯一...

2020-01-13 22:13:06 412

转载 面试:客户端与服务器连接

1、TCP连接要想明白Socket连接,先要明白TCP连接。手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第...

2020-01-12 23:02:40 725

原创 网络知识学习:iptables学习

前言:学习iptables,需要知道它的工作原理,我们可以把它归纳成“三表五链”,其中“三表”分别为nat表、filter表以及raw表,“五链”为PREROUTING、FORWARD、POSTROUTING、INPUT、OUTPUT,至于他们到底怎么配置,有什么作用,请看下文。特别注意:对于centOS 7最小化系统而言,并没有自带iptables服务,需要手动安装。一、iptabl...

2020-01-12 22:42:23 232

原创 虚拟 IP原理(动态 IP 、固定 IP 、实体 IP)

1、虚拟ip概念:分析虚拟IP前,先说一下:动态 IP 、固定 IP 、实体 IP实体 IP:在网络的世界里,为了要辨识每一部计算机的位置,因此有了计算机 IP 位址的定义。一个 IP 就好似一个门牌!例如,你要去微软的网站的话,就要去『 207.46.197.101 』这个 IP 位置!这些可以直接在网际网络上沟通的 IP 就被称为『实体 IP 』了。固定 IP 与 动态 IP:基...

2020-01-11 22:10:07 3956 2

原创 如何查看java字节码

3种骚操作,教你查看 Java 字节码!在我们工作、学习、以及研究 JVM 过程当中,不可避免的要查看 Java 字节码,通过查看字节码可以了解一个类的编译结果,也能通过编译器层面来分析一个类的性能。字节码文件是不能直接打开的,下面栈长教大家几种简单的方法如何查看 Java 字节码。1、使用 javap 命令查看字节码命令格式如下:javap -c xxx.classJ...

2020-01-10 22:12:34 804

原创 面试:局部内部类对局部变量的访问

java调用处理匿名内部类的时候,内部类里面如果有需要传入外部方法的局部变量必须是final修饰的先说结论:1:匿名内部类没有构造函数,无法对引用变量进行初始化。所以引用的参数必须是在外部已经初始化的final变量。 2:匿名内部类是出现在一个方法的内部的,如果它要访问这个方法的参数或者方法中定义的变量,则这些参数和变量必须被修饰为final。因为虽然匿名内部 类在方法的内部,但实...

2020-01-10 21:51:42 507

原创 MyBatis中的@Mapper注解及配套注解使用详解

从mybatis3.4.0开始加入了@Mapper注解,目的就是为了不再写mapper映射文件(那个xml写的是真的蛋疼。。。)。很恶心的一个事实是源码中并没有对于这个注解的详细解释现在我们通过一个简易的maven项目去了解@Mapper注解的使用方式完整项目请访问我的github项目地址下载构建一个maven的web项目,目录结构如下:导入相应的依赖 <depende...

2020-01-08 22:50:16 16101

原创 面试一:jdk动态代理和cglib动态代理性能比较

概念jdk动态代理: 利用拦截器(拦截器必须实现InvocationHanlder)加上反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。是在程序运行的过程中,根据被代理的接口来动态生成代理类的class文件,并加载运行的过程。 之所以只支持实现了接口的类的代理。从原理上讲是因为JVM动态生成的代理类有如下特性: 继承了P...

2020-01-08 22:28:33 2738

原创 JVM知识梳理一

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可...

2020-01-07 22:24:15 377

原创 spring的ApplicationContext、ApplicationContextAware、ApplicationContextInitializer、ApplicationListener

ApplicationContextAware当一个类实现了这个接口(ApplicationContextAware)之后,这个类就可以方便获得ApplicationContext中的所有bean。换句话说,就是这个类可以直接获取spring配置文件中,所有引用到的bean对象。ApplicationContextApplicationContext接口,它由BeanFactory接...

2020-01-06 22:50:27 942

原创 从ThreadPoolTaskExecutor看

1、概述在Java中,我们一般通过集成Thread类和实现Runnnable接口,调用线程的start()方法实现线程的启动。但如果并发的数量很多,而且每个线程都是执行很短的时间便结束了,那样频繁的创建线程和销毁进程会大大的降低系统运行的效率。线程池正是为了解决多线程效率低的问题而产生的,他使得线程可以被复用,就是线程执行结束后不被销毁,而是可以继续执行其他任务。(这里可以用tomcat做例子进...

2019-12-16 17:10:45 239

原创 开发必读之书

王潇:格局决定了一个人的梦想,梦想反过来决定行为。那格局是什么呢?格局是你能够看见的深度、广度和密度。王潇认为,格局是一本本书搭建起来的,正如她所言:“读书让我知道世界很大,然后才知道推开门去看看这个世界。”之前有一篇文章我写到了几乎是一个技术人从0到1的整个生涯了,其实大家发现根本就没有终点。《程序人生》风雨十年-从大学到技术专家我做了啥?我们的一生其实也基本上都在学习,...

2019-12-16 10:48:26 278

原创 MySQL 使用 B+ 树的研究

为什么 MySQL 使用 B+ 树是面试中经常会出现的问题,很多人对于这个问题可能都有一些自己的理解,但是多数的回答都不够完整和准确,大多数人都只会简单说一下 B+ 树和 B 树的区别,但是都没有真正回答 MySQL 为什么选择使用 B+ 树这个问题,我们在这篇文章中就会深入分析 MySQL 选择 B+ 树背后的一些原因。 概述首先需要澄清的一点是,MySQL 跟 B+ 树没有直接的关系,...

2019-12-16 10:12:16 457

原创 Java到底是值传递还是引用传递?

在逛 Stack Overflow 的时候,发现了一些访问量像阿尔卑斯山一样高的问题,比如说这个:Java 到底是值传递还是引用传递?访问量足足有 188万+,这不得了啊!说明有很多很多的程序员被这个问题困扰过。实话实说吧,我就是其中之一。来回顾一下提问者的问题:我一直认为 Java 是按引用传递的,但是我看一些博客上说不是的。我就纳闷了,Java 到底是值传递还是引用传递?值传递和引用...

2019-12-11 14:29:24 117

转载 mybatis什么时候用的${}

#{}的优点那么多,就不说了;但是为何还有存在有${}??突然意识到sql语句的独特语义要和代码分离,我们就不能够在代码中写sql语句!!比如我要用${}在MyBatis的sql中拼接排序类型的时候,我就不能够在Java代码中直接写参数字符串为Order By哪儿个类型#{}和${}的基本不同我就不想说了,这里要说的是进一步对占位符和字符拼接的字面语义的领悟!!#{}和${}基本不同在...

2019-03-24 22:54:39 10880 6

原创 总体概括spring的启动过程

总体概括spring的启动过程:1.首先,对于一个web应用,其部署在web容器中,web容器提供其一个全局的上下文环境,这个上下文就是ServletContext,其为后面的spring IoC容器提供宿主环境;2.其次,在web.xml中会提供有contextLoaderListener。在web容器启动时,会触发容器初始化事件,此时contextLoaderListener会监听...

2019-03-24 22:17:51 203

原创 分析Mybatis启动流程

Mybatis分析启动流程之前可以先看看mybatis的核心内容mybatis核心从MyBatis代码实现的角度来看,MyBatis的主要的核心部件有以下几个:SqlSessionFactory SqlSession 工厂,全局唯一(单库情况)Configuration MyBatis所有的配置信息都维持在Configuration对象之中。SqlSession 作为MyBat...

2019-03-24 22:06:09 292

原创 MyBatis的框架研究

我们经常使用mybatis作为ORM框架,快捷地进行数据库操作代码的编写,但是,我们在享受它的便捷时,总是存在某些疑惑,它内部到底是怎么运行的呢?一、MyBatis的框架设计1.接口层---和数据库交互的方式MyBatis和数据库的交互有两种方式:a.使用传统的MyBatis提供的API;b. 使用Mapper接口1.1.使用传统的MyBatis提供的API(类似于...

2019-03-24 21:26:38 197

转载 分享6个国内优秀Java后台管理框架的开源项目,建议收藏

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。给你java学习路线:html-css-js-jq-javase-数据库-jsp-servlet-Struts2-hibernate-mybatis-spring4-s...

2019-03-07 18:59:04 2089 1

原创 mybatisPlus填坑之逻辑删除

网上大部分的关于mybatisPlus的逻辑删除的配置介绍都是有问题的,原因可能是官网已经做了更新!!!错误如图:正确的配置是:SpringBoot 配置方式: application.yml 加入配置(如果你的默认值和mp默认的一样,该配置可无): yml文件(区别是多了一个路径db-config,同学们细看了) mybatis-plus: global-c...

2019-02-21 10:49:10 27027 9

原创 select for update是属于排他锁,也属于悲观锁

1、InnoDB行锁是通过给索引上的索引项加锁来实现的,只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁。2、由于MySQL的行锁是针对索引加的锁,不是针对记录加的锁,所以虽然是访问不同行的记录,但是如果是使用相同的索引键,是会出现锁冲突的。应用设计的时候要注意这一点。 3、当表有多个索引的时候,不同的事务可以使用不同的索引锁定不同的行,另外,不论是使用主键索...

2019-02-11 17:34:25 3200

原创 git 不弹出输入密码

各位,如果能弹出来,一定是你账号密码搞错了,就别继续看了。切换命令行:image.png 依然报错,说到这个问题,又可以长篇大论了, 我使用的是tortoisegit,window电脑 平常都是用ppk文件组合 _netrc文件进行登录的,这样设置之后基本上只需要输入密码,不再需要输入用户名就可以上传更新,要节省不少时间_netrc文件可以自己搜索在C:\Use...

2018-12-11 22:03:57 2862

原创 Spring IOC原理总结

Spring容器高层视图Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean之间的依赖关系,为上层应用提供准备就绪的运行环境。IOC容器介绍Spring 通过一个配置文件描述 Bean 及 Bean 之间的依赖关系,利用 Java 语言的反射功能实例化 Bean 并建立 Be...

2018-11-13 08:12:36 155

原创 一天一篇mysql之二十二:mysql索引之MyISAM和InnoDB索引实现区别

一、索引的底层数据结构B-Tree数据结构这点从磁盘读写上给出解释,磁盘顺序读写时才能达到其宣传的数值(fio可以进行简单的读写测试),因为随机读写,机械磁盘需要旋转及寻道时间,哪怕是ssd,随机读写也需要寻址时间;那么如果将索引tree构建的层数越低,使得key相近的数据都存在一起,伴随磁盘预读特性,能更进一步提高性能。那么使用B+Tree的关键就是Tree层数低(3层),有序的数据...

2018-10-15 23:10:05 185

原创 一天一篇mysql之二十一:mysql索引之最前缀原则

最左前缀原则:顾名思义是最左优先,以最左边的为起点任何连续的索引都能匹配上,注:如果第一个字段是范围查询需要单独建一个索引注:在创建多列索引时,要根据业务需求,where子句中使用最频繁的一列放在最左边。当创建(a,b,c)复合索引时,想要索引生效的话,只能使用 a和a,b和a,b,c三种组合实例:以下是常见的几个查询:请问:想要索引最大化的使用需要至少建几个索引SELECT...

2018-10-15 22:47:52 128

转载 分析一下exists真的就比in的效率高吗

系统要求进行SQL优化,对效率比较低的SQL进行优化,使其运行效率更高,其中要求对SQL中的部分in/not in修改为exists/not exists 修改方法如下:in的SQL语句SELECT id, category_id, htmlfile, title, convert(varchar(20),begintime,112) as pubtimeFROM tab_oa...

2018-10-07 20:55:30 512

空空如也

空空如也

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

TA关注的人

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