自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张育嘉的博客

你值得更好

  • 博客(229)
  • 资源 (21)
  • 收藏
  • 关注

原创 【毕业设计】在线学习平台

页面截图:单点登录门户试题后台

2019-08-20 00:00:52 7260 28

原创 【Nginx】通过Nginx在同一台服务器上配置多个二级域名

背景:同个域名下的三个子域名各自绑定了一个项目,每个项目都在自己的tomcat里运行,而且这三个tomcat都在同一个服务器上。www.portal.a.comwww.blog.a.comwww.backadmin.a.com需求:都通过浏览器默认的80端口访问。问题:我们知道,服务器只有一个80端口,正常情况下一个tomcat会占用80端口,导致其他监听不了。解决方案:N...

2018-08-10 01:47:59 7650 4

原创 上传图片到七牛云(前端和后端)

在开发项目的时候,经常会用到上传图片的功能,如果把图片全都存放在项目路径下,会导致项目越来越臃肿,因此可以考虑把图片上传交给第三方处理,此处采用七牛云进行图片存储。经过测试,通过七牛云获取图片确实比直接通过自己的服务器获取的速度要快得多,赶快去注册七牛云吧。上传图片的方式有两种:通过服务器,将文件传到服务端,由服务端上传到七牛云通过前端js,将文件直接上传到七牛云两种方式都可...

2018-08-06 14:56:09 23517 26

原创 微信小程序与Java的Servlet通信小示例

微信小程序<!--index.wxml--><view class="container"> &amp

2018-05-19 11:15:41 9154 13

原创 【Spring】实现自定义事件的发布与处理

先自定义一个事件:public class NotifyEvent extends ApplicationEvent { private String email; private String content; public NotifyEvent(Object source) { super(source); } public NotifyEvent(Object source, String email, String content) {

2021-04-18 10:37:48 423

原创 OptionalBean

import java.util.Objects;import java.util.function.Supplier;public class OptionalBean { private static final OptionalBean<?> EMPTY = new OptionalBean<>(); private final T value; private OptionalBean() { this.value = nu

2020-10-13 00:01:22 1026 2

原创 【线程池】ScheduledThreadPool异常处理

背景某个任务类负责定时处理一些抽取数据的逻辑,通过定时线程池来实现。问题这天发现数据没有被处理,初步检查后定位到是因为放到线程池的这个任务并没有执行,而其他任务却可以正常地执行。分析梳理该任务的代码逻辑,其中因为在处理数据的过程中遗漏了对数据的合规校验,而正是因为这次残缺的数据而导致代码抛出异常。通过查找资料和demo测试,发现ScheduledThreadPool这个定时线程池对抛出异常的任务会进行挂起,此后不会再进行调用。解决在任务中对任务进行合规校验可对不可避免的异常进行捕获,避免异

2020-07-12 22:42:12 1094

原创 【福利】同性交友网站(github)知名项目(持续更新)

前言没上过Github,都不敢说自己是程序猿。没事逛逛Github还是收获颇丰滴。在这推荐下自己在网上收集并且觉得质量很不错的Github项目,其中包括文档类和代码类的,排名不分先后。文档类1、advanced-java链接:advanced-java,star 41k,fork 11.3k互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等...

2020-03-27 14:51:24 261671 1

原创 由RestTemplate引发的加班惨案

前言今天真是美好的一天呢,股市一如往常地绿,我一如往常地坐在办公桌前敲代码。上级交给我一个刷新历史数据的需求,一般刷新历史数据可以采用的方式有SQL脚本以及定时任务。以往大多数时候我都是采用SQL脚本的方式,因为这次涉及接口的调用,于是打算使用后台任务来实现。本来很日常的一个任务,没想到还会有意外的插曲。过程需求根据新的业务逻辑修复历史数据,就是更新某些表的某些字段。这里的业务就...

2020-03-20 00:07:54 337

原创 缓存中间件与数据库的相爱相杀

前言先更新数据库,再删除缓存先删除缓存,再更新数据库解决方案大前提:使用缓存就要容忍数据不一致。能保证最终一致性即可。设置有效期好处:缓存超过有效期被淘汰之后,程序会从数据库获取最新的数据重新放入缓存,保持一致性。坏处:因为缓存会失效,会引发缓存击穿、缓存雪崩等问题。加锁不管是单机锁还是分布式锁,这种做法可以保证不同线程之间的操作不会出现不确定的结果,但是实际上在项目中...

2020-03-13 00:02:51 924

原创 【Spring】Bean生命周期以及应用场景(注解版)

前言理清Spring容器管理Bean的过程有助于我们更好地根据需求制定更合理的设计方案,提升系统扩展性和执行效率。正文下面通过简单的示例来理清Bean在Spring容器中的生命周期。我们从整体到细节,首先是启动容器加载Bean,这是一个整体的过程。/** * 测试 Spring Bean 生命周期 * @author zyj */public class LifeCycleTes...

2020-03-06 15:48:44 1450

原创 《Java并发编程实战》学习笔记(4)

第六章:任务执行大多数并发应用程序是围绕执行任务(task)进行管理的。所谓任务就是抽象、离散的工作单元(unit of work)。把一个应用程序的工作(work)分离到任务中,可以简化程序的管理;这种分离还在不同事务间划分了自然的分界线,可以方便程序在出现错误时进行恢复;同时这种分离还可以为并行工作提供一个自然的结构,有利于提高程序的并发性。在线程中执行任务理想情况下,任务是独...

2020-03-03 17:17:50 256

原创 【Redis】听说Redis是单进程单线程的?

很久很久以前,在某公司的会议室里正在进行一场面试…面试官:看到你简历上写着“熟练掌握Redis”,你说说对Redis的理解。马D梅:Redis作为一款流行的缓存中间件,其显著的性能是由于单进程单线程的设计…面试官:等等,你说Redis是单进程单线程的?马D梅:这个…(我记得网上都是这么说的…)结论一:Redis并不是纯粹的单线程。可能有伙伴会有疑问,为什么会是这个结论?举个简单...

2020-03-02 23:25:56 4373 1

原创 《Java并发编程实战》学习笔记(3)

第四章:组合对象设计线程安全的类设计线程安全类的过程应该包括下面3个基本要素:确定对象状态是由哪些变量构成的;确定限制状态变量的不变约束;制定一个管理并发访问对象状态的策略。名词解释:先验条件(precondition):针对方法(method),它规定了在调用该方法之前必须为真的条件。例如,你无法从空队列中移除一一个条目:在你删除元素前,队列必须处于“非空”状态。后验条件(...

2020-02-25 16:20:54 249

原创 【问题总结】由于Spring事务使用不当引起的数据库死锁

现象这次版本发完生产不久,主管就在群里通知了数据库有性能问题,产生了死锁。这条SQL一直占用了CPU,导致系统其它服务都出现性能问题。背景这是一条更新人员索引日志表的SQL,这张表的作用就是用来标记哪些人员的数据发生变化。涉及这条SQL的模块有后台任务和操作人员数据的功能。后台任务从这张表获取需要更新的人员,将数据同步到solr。操作人员数据的功能需要在这张表中标记该人员为待更新...

2020-02-19 16:36:50 4142

原创 《Java并发编程实战》学习笔记(2)

第三章:共享对象可见性除了synchronize,同步还具有另一个重要、微妙的方面:内存可见性。我们不仅希望能够避免一个线程修改其他线程正在使用的对象的状态,而且希望确保当一个线程修改了对象的状态后,其他的线程能够真正看到改变。在一个单线程化的环境里,如果向一个变量先写入值,然后在没有写干涉的情况下读取这个变量,是可以得到相同的返回值。但是当读和写发生在不同的线程中时,情况却根本不是这样。...

2020-02-17 16:45:02 217

原创 《Java并发编程实战》学习笔记(1)

第一章知识点:进程是资源(CPU、内存等)分配的基本单位线程是CPU调度和分派的基本单位一个进程包括一个或多个线程1、为什么应用程序需要从单线程发展为多线程?资源利用。程序有时候需要等待外部的操作,比如输入和输出,并且在等待的时候不可能进行有价值的工作。在等待的时候,让其他的程序运行会提高效率。公平。多个用户或程序可能对系统资源有平等的优先级别。让他们通过更好的时间片方式来...

2020-02-12 11:47:52 211

转载 【Oracle】根据条件更新多个字段的值

需求更新表中的N个字段的值1、根据A表字段的值,更新B表字段的值2、根据条件更新字段的值方法更新多个字段-- 方法一update a set a.province=(select province from b where b.mobile=a.mobile);update a set a.city=(select city from b where b.mobile=a.mobi...

2020-01-19 17:41:17 4192

原创 【源码】ThreadLocal与Thread的关系

这是两个很基础的类了,大多数情况下都会用到。今天在群里有人说到这个问题,我顺便就看了下源码。这里就简单说下这两个类的关系吧。我们知道,在多线程环境下 ThreadLocal 对每个 Thread 是隔离的,每个 Thread 都拥有自己的 ThradLocal。从 ThreadLocal 的 get 方法入手,看看数据是从哪里取的public class ThreadLocal<T&...

2020-01-04 17:10:25 1589

原创 【Ajax】多次异步请求的顺序以及回调处理问题

背景通过搜索框进行检索:触发发送检索请求的事件是keyup,也就是当按完每个键之后发送一次检索请求。问题在输入框输入内容,然后快速地删减,有时会发现列表显示的数据和检索的关键字并不匹配;而缓慢地操作则不存在这个问题比如输入“我是中国人”,列表的统计数显示20W条数据;而“我”,则显示有30W条数据;而当快速改变输入框内容时,这两个关键字检索出来的数据量有时不会和原来保持一致。分析通过浏...

2020-01-04 15:34:45 1619 1

原创 【工具】Java Decompiler:Java反编译工具

我们都知道,Java的源代码文件(.java)编译之后会生成字节码文件(.class),直接用普通的文件浏览工具打开就是一堆晦涩难懂的代码(至少对我来说是这样)。很多时候修改完成后进行编译,我们需要确认目前程序所运行的是否为最新的代码,其中一个途径就是查看字节码文件是否包含了最新的修改。这时就可以通过 Java Decompiler这个工具来查看字节码文件的内容,它将class文件反编译为ja...

2020-01-02 20:51:24 714

转载 【IDEA】On 'Update' action设置

设置On ‘Update’ action :手动触发 update 动作的时候做什么,一般选择Update classes and resourcesOn frame deactivation :IDE 失去焦点时做什么。开发过程中IDE会频繁失焦,为避免浪费CPU资源,选择Do nothing选项Update resources:更新html,js,css等静态资源,运行模式和调试...

2019-12-25 23:45:53 2503

原创 【Oracle】模糊查询&按匹配度排序

select t.zh_name from psn_ins t where t.ins_id = 857 and t.zh_name like '%' || '肖锐' || '%';select t.zh_name from sie2.psn_ins t where t.ins_id = 857 and t.zh_name like '%' || '肖锐' || '%' ord...

2019-12-17 20:47:15 1723

转载 【Oracle】IS TABLE OF和BULK COLLECT INTO+FORALL

IS TABLE OF :指定是一个集合的表的数组类型,简单的来说就是一个可以存储一列多行的数据类型。INDEX BY BINARY_INTEGER:指索引组织类型BULK COLLECT :指是一个成批聚合类型,简单的来说 , 它可以存储一个多行多列存储类型,采用BULK COLLECT可以将查询结果一次性地加载到集合中。【type】在SCOTT模式下,使用IS TABLE OF获取所...

2019-12-12 23:09:41 347

转载 【Oracle】函数常用语法

变量的定义、赋值及使用declare l_dept integer := 20; currtime date := sysdate; l_nam varchar2(20) := to_char(add_months(trunc(sysdate),-12),'yyyymmdd'); -- to_char(sysdate,'MM')-13;...

2019-12-12 22:57:06 383

转载 【Oracle】存储过程基本语法

1、基本语法CREATE OR REPLACE PROCEDURE 存储过程名(param1 in type,param2 out type) IS 变量1 类型(值范围); 变量2 类型(值范围);   BEGIN   select count(*) into 变量1 from 表名 where 列名=param1;   if (判断条件) then     sel...

2019-12-12 22:30:54 221

原创 【技术总结】使用Filter进行XSS过滤

一般来说,系统进行表单数据处理时都需要解决类似XSS攻击以及转义这样的问题,这样的问题具有普遍性,不可能在每个提交表单数据的处理中都加入重复的处理代码。通常通过 Filter 或 Interceptor 来拦截处理。这里介绍下通过 Filter 进行XSS过滤的方法。流程:使用Filter拦截请求,将普通请求转化为包装过的可以处理XSS的自定义请求,之后获取参数时都会经过XSS处理。主要实...

2019-11-18 16:41:52 5331

转载 【Java8】默认方法

Java 8中加入默认方法主要是为了支持库设计师,让他们能够写出更容易改进的接口。这一方法很重要,因为你会在接口中遇到越来越多的默认方法,但由于真正需要编写默认方法的程序员相对较少,而且它们只是有助于程序改进,而不是用于编写任何具体的程序,我们这里还是不要啰嗦了,举个例子吧。List<Apple> heavyApples1 = inventory.stream().filter((A...

2019-11-16 15:45:23 220

原创 前端通过ajax发送请求与后端通过HttpClient发送请求的区别

发送HTTP请求不外乎两种方式:前端的Ajax与后端的HttpClient。两者的目的是一样的,就是通过HTTP请求与目标服务端进行交互。但是这两者有什么区别呢,由我今天遇到的一个问题说起。背景:服务器A和服务器B是在公司的局域网中,运维通过网关设置了部分接口(/inner/**)只能在局域网中访问问题:这时候如果 Client 所需的数据(/inner/data)需要从 ServerB...

2019-10-30 19:57:42 1267 1

转载 【MySQL】MySQL5.7配置主从复制

参考链接:LINUX服务器MYSQL5.7配置主从复制mysql5.7主从复制原理及基本配置MyCat教程【mysql主从复制实现】查看从库状态:show slave status\G;所遇问题:1、The slave I/O thread stops because master and slave have equal MySQL server UUIDs解决:syst...

2019-10-19 11:36:04 276

转载 【ZooKeeper】安装ZooKeeper

准备CentOS7.7ZooKeeper官网下载安装ZooKeeper//解压tar -zxvf zookeeper-3.4.14.tar.gz//拷贝cp zookeeper-3.4.14 /usr/local/zookeeper -r//查看目录cd /usr/local/zookeeper/conf//复制配置cp zoo_sample.cfg zoo.cfg...

2019-10-16 22:55:21 181

转载 分布式数据库之读写分离

读写分离解决方案应用层中间件层Spring动态数据源 + Mybatis Plugin 实现读写分离

2019-09-01 23:17:11 1087 1

转载 分布式之分布式锁

什么叫分布式锁自行百度。。。为什么需要分布式锁分布式锁技术选型文件系统流程从一个指定的位置判断是否存在lock.txt,不存在则创建(也就是意味着当前线程获得了锁),执行结束后删除lock.txt;存在时则创建不成功(进行循环等待,直到创建成功)。问题当t1创建lock.txt后,突然出现问题导致中断,那么lock.txt就不会被t1(创建它的线程)删除。这样就会导致lock....

2019-08-29 23:38:54 155

转载 分布式事务之基础理论

什么是分布式事务分布式事务指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。分布式事务产生的原因从上面本地事务来看,我们可以分为两...

2019-08-25 23:01:14 189

转载 分布式事务之TCC

业务场景介绍假设现在有一个电商系统,里面有一个支付订单的场景。那对一个订单进行支付之后,我们需要做下面的步骤:更改订单的状态为“已支付”扣减商品库存给会员增加积分创建销售出库单通知仓库发货以上业务场景对应下面的代码:public class OrderService { // 库存服务 @Autowired private InventoryServ...

2019-08-25 22:47:39 274

转载 【MySQL】对JSON数据进行查询

MySQL根据JSON字段的内容检索查询数据使用 字段->’$.json属性’ 进行查询条件使用json_extract函数查询,json_extract(字段,"$.json属性")根据json数组查询,用JSON_CONTAINS(字段,JSON_OBJECT(‘json属性’, “内容”))MySQL5.7以上支持JSON的操作,以及增加了JSON存储类型一般数据库存储j...

2019-08-24 17:21:01 63598 3

转载 Redis(六)之问题与解决

请问大家,在使用redis的过程中有没有遇到过什么问题呢?比如缓存雪崩,缓存穿透,阻塞等。这些问题的产生原因是什么呢?又该怎么解决呢?本篇文章就说说这个。阻塞因为redis是单线程架构,所有的读写操作都是在一条主线程中完成的,所以一旦出现阻塞,将是致命的。内在原因(1)API或数据结构使用不合理// 获取最近的10条慢查询slowlog get 10(2)CPU饱和(3)持久化相...

2019-08-19 16:16:22 155

转载 Java基础之创建对象的四种方式

1.使用new创建对象使用new关键字创建对象应该是最常见的一种方式,但我们应该知道,使用new创建对象会增加耦合度。无论使用什么框架,都要减少new的使用以降低耦合度。public class Hello{ public void sayWorld() { System.out.println("Hello world!"); }}public...

2019-08-14 16:14:43 284 1

原创 【Vue】axiox基本使用

安装依赖npm install axios在全局配置文件main.js引入import axios from 'axios'// 将axios绑定到全局Vue原型上Vue.prototype.$axios = axios使用this.$axios.get('api',{ params:{ id:1 } }).then(functi...

2019-07-29 22:49:04 991

原创 【Vue】引入第三方组件(Layui)

关于Vue引入第三方组件的方式有很多,但测试过很多方式都不可行。我的需求是在使用Vue脚手架搭建的项目中引入Layui这个前端框架,方式有两种,第一种是使用npm导入,第二种拷贝Layui文件夹(js和css)。关于第一种方式,我在百度上找了很多种方法,但是都出现引用组件未定义的问题。在此我记录下可行的第二种方式。在Layui官网下载文件将其复制到static目录下在index....

2019-07-21 23:35:42 8176 9

实战Java高并发程序设计

实战Java高并发程序设计教程,百度网盘链接,视频和源码

2018-12-12

Java三端分离_SSM在线教育平台

Java三端分离_SSM在线教育平台,百度网盘,视频和源码,无加密

2018-12-12

Python全栈教学视频(三)

目录: Python全栈9期(第一部分):基础+模块+面向对象+网络编程 Python全栈9期(第二部分):并发编程+数据库+前端 Python全栈9期(第三部分):django基础 Python全栈9期(第四部分):django进阶 Python全栈9期(第五部分):django高级 Python全栈9期(第六部分):博客项目(一) Python全栈9期(第七部分):博客项目(二)+Xadmin组件 Python全栈9期(第八部分):rbac+stark组件 Python全栈9期(第九部分):stark组件(二) Python全栈9期(第十部分):CRM系统 Python全栈9期(第十一部分):vue(一) Python全栈9期(第十二部分):vue(二)+支付宝线上支付+git版本控制 Python全栈9期(第十三部分):luffy学城 Python全栈9期(第十四部分):Flask Python全栈9期(第十五部分):SQLAlchemy、爬虫、web微信、scrapy安装

2018-12-11

Python全栈教学视频(二)

目录: Python全栈9期(第一部分):基础+模块+面向对象+网络编程 Python全栈9期(第二部分):并发编程+数据库+前端 Python全栈9期(第三部分):django基础 Python全栈9期(第四部分):django进阶 Python全栈9期(第五部分):django高级 Python全栈9期(第六部分):博客项目(一) Python全栈9期(第七部分):博客项目(二)+Xadmin组件 Python全栈9期(第八部分):rbac+stark组件 Python全栈9期(第九部分):stark组件(二) Python全栈9期(第十部分):CRM系统 Python全栈9期(第十一部分):vue(一) Python全栈9期(第十二部分):vue(二)+支付宝线上支付+git版本控制 Python全栈9期(第十三部分):luffy学城 Python全栈9期(第十四部分):Flask Python全栈9期(第十五部分):SQLAlchemy、爬虫、web微信、scrapy安装

2018-12-11

[Chapte7-8]Spring Security开发安全的REST服务视频教程

百度网盘,[Chapte7-8]Spring Security开发安全的REST服务视频教程,第7-8章,无加密

2018-08-26

[Chapte5]Spring Security开发安全的REST服务视频教程

百度网盘,[Chapte5]Spring Security开发安全的REST服务视频教程,第5章,无加密

2018-08-26

[Chapter1-3]Spring Security开发安全的REST服务视频教程

百度网盘,[Chapter1-3]Spring Security开发安全的REST服务视频教程,第1-3章,无加密

2018-08-26

spring-boot-web-restfulcrud代码示例

spring-boot-web代码示例,是IDEA的项目工程,使用restful风格实现增删查改,静态数据

2018-07-22

尚硅谷SpringBoot教学文档

尚硅谷SpringBoot教学文档,使用Typora打开,尚硅谷SpringBoot教学文档

2018-07-20

FastDFS_Nginx所需工具

FastDFS_Nginx所需工具,FastDFS_Nginx所需工具,FastDFS_Nginx所需工具

2018-06-26

Maven_SSM环境搭建

eclipse的Maven_SSM环境搭建,tomcat7,jdk1.7,Maven_SSM环境搭建

2018-06-23

Lucene6.6.2API示例

Lucene6.6.2代码示例,处理的原始数据类型是数据库,内含中文分词器IKAnalyzer-6.5.0.jar,支持Lucene6.x以上版本

2018-06-14

luke-javafx-7.3.1-luke-release.zip

luke-javafx-7.3.1-luke-release.zip,luke-javafx-7.3.1-luke-release.zip

2018-06-14

luke-7.1.0-luke-release.zip

luke-7.1.0-luke-release.zip,luke-7.1.0-luke-release.zip

2018-06-14

jackson-2.6.5的jar包

1.jackson-annotations-2.6.5.jar 2.jackson-core-2.6.5.jar 3.jackson-databind-2.6.5.jar

2018-06-10

SQLyog-12.0.9-0.x64

SQLyog-12.0.9-0.x64工具,MySQL可视化工具,SQLyog-12.0.9-0.x64

2018-06-01

韩顺平_玩转Oracle教学视频

百度网盘下载链接,韩顺平_玩转Oracle教学视频。。。。

2018-05-31

韩顺平_php从入门到精通教学视频及资料

百度网盘下载链接,韩顺平_php从入门到精通教学视频及资料

2018-05-31

ATM前后端系统

本ATM管理系统包括客户端以及服务端1.客户端使用JavaFX实现图形界面2.服务端使用SSH框架,采用B/S架构

2018-05-31

spring必备jar包

struts2-2.3.15.3,spring-3.0.2,hibernate-3.6.10 spring-framework-3.0.2.RELEASE-dependencies.zip spring-framework-3.2.0.RELEASE-dist.zip

2018-03-16

空空如也

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

TA关注的人

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