- 博客(248)
- 收藏
- 关注
原创 【RabbitMQ】简介
文章目录1. 为什么选择RabbitMQ1.1 RabbitMQ高性能的原因2. APMQ协议2.1 什么是APMQ协议2.2 APMQ协议模型3. RabbitMQ架构图4. RabbitMQ消息流转过程5. RabbitMQ消息从生产到消费的过程6. RabbitMQ 4种交换机Exchange类型6.1 Direct Exchange6.2 Topic Exchange6.3 Fanout ...
2019-05-26 21:30:37 336
原创 【分布式】springboot + mybatis + JTA + Atomikos 实现多数据源的分布式事务管理
文章目录1. 添加依赖(pom.xml)2. 配置数据库连接信息 (application.yml)3. 读取配置文件信息4. 创建多数据源5. 启动项添加@EnableConfigurationProperties6. 测试使用事务注解spring boot默认继承事务,只要在方法上添加@Transaction注解即可,但是这种只适用与单数据源,在多数据源下就不再适用,比如在一个servic...
2019-05-24 10:17:16 3111 3
原创 【分布式】分布式事务(X/OPEN DTP —> XA —> JTA)
文章目录1.什么是分布式事务2.分布式事务产生的原因3.X/OPEN DTP模型3.1XA规范3.1.1 XA流程3.1.2 XA两阶段提交—2pc3.1.3 3pc3.2 JTA3.2.1 是什么3.2.2 作用3.2.3 提供商4. 解决方案5. 项目实战1.什么是分布式事务 是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。通俗讲即:一...
2019-05-24 10:16:07 2080
原创 【Redis】高性能原因
从存储介质来看,它的数据存放在内存中,操作快是单线程的,避免了线程间切换和竞争产生的性能小号非阻塞I/O,Redis使用epoll作为I/O多路复用技术的实现,在加上Redis自身的事件处理模型将epoll中的链接、读写、关闭都转换为事件,不在网络I/O上浪费过多的时间Redis采用了RESP协议,此协议号称最简单的指令,,该协议是专门为redis设计的通信协议,但也可以用于...
2019-05-21 20:30:29 380 2
原创 【Redis】使用总结
文章目录1. 5种数据类型2. 持久化机制2.1 RDB2.1.1 触发时间2.1.2 触发RDB过程2.1.3 优点2.1.4缺点2.2 AOF2.2.1 触发时间2.2.2 触发AOF的过程2.2.3 文件同步sync的3种方式2.2.4 重写机制2.2.5 优点2.2.6 缺点2.3 选择RDB还是AOF3.事务处理3.1 MULTI3.2 EXEC3.3 DISCARD3.4 WATCH3...
2019-05-18 20:24:03 191 1
WebSocket使用
文章目录1.websocket的由来2.什么是websocket3.websocket的特点或作用4.应用的场景5.使用websocket的优点6.使用websocket的缺点7.websocket 的通信过程8.如何用websocket8.1 客户端如何用websocket8.2 服务端如何用websocket(以springboot项目为例)9.http 与 websocket 的区别9.1 ...
2019-05-12 21:43:16 562 2
原创 Zookeeper 总结
文章目录是什么安装单机集群配置文件讲解操作stat信息有关概念数据模型会话WatcherACL权限控制列表作用特性数据存储集群角色角色种类及区别leader,follower,observer之间的通信选举方式初始化选举宕机后选举选举机制是什么 是一个开源的分布式协调服务,是由雅虎创建的,基于google chubby,分布式数据一致性的解决方案安装单机 参见:https://blo...
2019-04-29 16:52:03 385 6
原创 【Jave基础】泛型 —— 为什么在静态方法、静态初始化块或静态变量的声明和初始化中不允许使用泛型形参
public class Persion<T> { // 编译时报错 public static T name; //编译时报错,不能在静态方法声明中使用泛型形参 public static <T> void test(T t) {} }泛型在对象创建时才知道是什么类型,但是静态方法属于类,调用test方法实际调用的Persion类的方法,而类在编译...
2019-04-26 11:52:48 2139 2
原创 【Java基础】BIO 与 NIO 的区别
文章目录1. 基础概念1.1 阻塞与非阻塞1.2 同步与异步2. BIO 与 NIO2.1 BIO2.1.1概念2.1.2 实现机制2.1.3 工作原理2.2 NIO2.2.1 概念2.2.1 实现机制2.2.2 为什么使用NIO2.2.3 三大主要组件2.2.3.1 通道 Channel2.2.3.2 选择器 Selector2.2.3.3 缓冲区 Buffer2.2.4 有关缓冲的一些概念...
2019-04-23 14:19:56 580 1
原创 【Java基础】== 和 equals()区别
文章目录==比较的是值是否相等equals()方法比较的是是否是同一个对象举例说明==比较的是值是否相等如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址equals()方法比较的是是否是同一个对象 注意:equals方法不能作用于基本数据类型的变量,equals继承Object类(Object的equal...
2019-04-16 13:58:45 171
原创 【tomcat】 部署web应用程序的4种方式
文章目录第一种: Tomcat自动部署第二种:修改%Tomcat_Home%\conf\server.xml文件第三种:独立的context xml文件总结第一种: Tomcat自动部署将web应用程序打成的war包直接拖到%Tomcat_Home%\webapps文件夹下即可第二种:修改%Tomcat_Home%\conf\server.xml文件 // 添加<Context...
2019-04-14 14:43:29 2993 1
原创 SpringBoot 集成 XXL-JOB
一. 引依赖 <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.0.1</version> </dependency>二.yml配置文件配...
2019-04-09 15:33:37 1721 1
原创 利用p6spy打印执行的sql
文章目录一.是什么二.作用三.实现 今天要新搭一个项目框架,其中要解决的一个问题是,将所有执行的sql打印到日志,放到一个文件中,注意打印的不是预编译待问号的sql,而是真正能放在数据库中执行的sql,这样更直观,更简单。(本项目是springboot项目)一.是什么 P6Spy 是针对数据库访问操作的动态监测框架,它使得数据库数据可无缝截取和操纵,而不必对现有应用程序的代码作任何修改...
2019-04-02 14:26:43 921
原创 【Redis】简介
1.NoSQL简介 1.1 NoSQL是什么 1.2 NoSQL为什么会出现 1.3NoSQL的特点 1.4NoSQL适用场景 1.5NoSQL型数据库有哪些2. redis是什么3. redis的作用4. redis的适用场合5. redis的数据类型6. redis缓存同步7.mybatis有缓存,为什么要加redis作缓存1.NoSQL简介 ...
2019-03-30 15:41:16 119
原创 SpringBoot基于@ControllerAdvice配置全局异常捕获并处理
在做web应用时,请求处理中经常遇到错误发生错误,处理方式可以再每个controller方法中添加try…catch…处理,但是这样代码非常冗余,在springboot中使用@ControllerAdvice注解可实现全局异常捕获,就不用每个controller都写try…catch…了,具体用一.具体使用方法1.错误信息封装类@Data@JsonInclude(Include.N...
2019-03-29 09:37:03 5040
原创 SpringBoot 配置Cors解决跨域请求问题
文章目录1.同源策略1.1 什么是源1.2 什么是同源1.3 是否为同源的判断1.4 哪些操作不受同源策略限制2. 跨域如何跨域3. CORS3.1 什么是CORS3.2 简单请求3.3 非简单请求4. SpringBoot 配置CORS4.1 给某一个接口配置CORS4.2 给某一系列接口配置CORS4.3 全局配置CORS4.4 原理剖析 现在前后端分离已成开发趋势,我们前端用的ionic...
2019-03-19 08:21:06 666
原创 绽放
花实习前,也就是前半年,主要学习了培养计划中java部分,对java有了宏观上的认识,大概4月中旬左右就准备面试了,这几次面试让我在以后学习的道路上有了些许的方向。今年对我一个无形的改变自己确实后知后觉,自己在学习计算机时,发现喜欢看书学习了,或许是现在的视频没有更符合我的了吧,今年也是买有关计算机说最多的一年吧,大约七八本吧。果河北大学自考完成了答辩,本来都可以申请毕业了,但是最后办理免考...
2019-02-01 12:12:40 200
原创 【多线程】Java创建多线程的4种方法
一:继承Thread类定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体创建Thread子类的实例,即创建了线程对象调用线程对象的start()方法来启动该线程public class ExtendsThreadTest extends Thread{ //重写run方法 @Override...
2019-01-13 21:31:52 252 2
原创 生成二维码
@RequestMapping(value=&amp;amp;quot;/qrCode&amp;amp;quot;) @ResponseBody public String encoderQRCoder(@RequestParam(&amp;amp;quot;id&amp;amp;quot;) String id,@RequestParam(&amp;amp;quot;type&amp;amp;quot;)
2018-12-12 18:52:24 537
原创 PropertyPlaceholderConfigurer读取属性文件使用详解
是什么PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是 BeanFactoryPostProcessor接口的一个实现。作用在Spring中,使用PropertyPlaceholderConfigurer可以在XML配置文件中加入外部属性文件,当然也可以指定外部文件的编码PropertyPlaceholderConfigurer可以将上下文...
2018-12-03 17:36:44 40032 14
原创 clean,compile,build,install,package区别
clean: 执行该命令会删除项目路径下的target文件,但是不会删除本地的maven仓库已经生成的jar文件compile:编译命令,只编译选定的目标,不管之前是否已经编译过,会在你的项目路径下生成一个target目录,在该目录中包含一个classes文件夹,里面全是生成的class文件及字节码文件。package:这个命令会在你的项目路径下一个target目录,并且拥有compile命令...
2018-11-26 11:14:26 9016 5
原创 @PathVariable 和 @RequestParam 区别
其实这两个注释是针对两种不同的url请求格式采用不同方式接受参数的两个注释,先写2个url,地址1: http://localhost:8080/plan/edit/?id=${vmPlan.id}&amp;inspectionType=${vmPlan.inspectionType}解析为:http://localhost:8080/plan/edit/?id=25a10aca638640...
2018-11-26 11:13:24 237 3
原创 Spring注解方式实现定时器
上一篇博客写到检查设备的需求,但是后来需求有所改变,收单发布只发布审核通过的计划,且只发布今天的任务,如果其它时间也要有任务,如计划是每天都执行一次,人工点发布按钮是只插入到数据库一条数据,即今天的任务,那后面每天的任务那,使用定时器每天凌晨00:00:00点发布,这时就用到了spring的定时器。下面先说一下如何使用:第一步:引jar包 如果是maven项目需要,添加quartz依赖...
2018-11-20 11:27:27 538 6
原创 Calendar 简单使用
文章目录今天遇到这样一种需求,是一个检查设备的项目,先制定计划,然后审核通过之后,然后再生成执行的每天计划的具体时间:计划分为3种,按天执行,按周执行,按月执行,如我制定的计划时间段为2018-11-1到2019-1-31,然后每月的6号执行,所以计划审核通过后要往数据库插入的数据为2018-11-6,2018-12-6,2019-1-6这3条数据...
2018-11-20 09:55:58 330 5
原创 【MyBatis】collection一对多查询
最近项目中有这样一种需求,有一张园区表t_zone;一张图片表t_picture,一个园区可能对应好几张图片(可以把t_zone理解为订单,t_picture理解为商品,一张订单可能对应好几件商品)t_zone实体public class Zone extends BaseEntity { private String id; private String name;//园区名称 ...
2018-11-12 19:01:18 9268 6
原创 【Docker】运行机制
文章目录1.Docker 运行底层原理 1.1 运行原理 1.2 Docker为什么比JVM运行的快2.镜像原理 2.1是什么 2.2Docker镜像加载原理 2.3Docker镜像为什么采用分层结构 2.4特点3.容器数据卷 3.1是什么 3.2能干什么 3.3添加 3.2.1V命令添加 3.2.2DockerFile添加4.DockerFile 4.1是什么 4.2构建过程 4.3 执行流...
2018-11-05 14:07:42 1346 3
原创 【Docker】简介
文章目录一:docker为什么会出现二:docker理念二:概念三:组成 1.仓库: 2.镜像: 3.容器: 总结 四:安装一:docker为什么会出现 开发与运维人员经常出现得一个问题就是:开发人员在本地代码能正常运行,但是交付给运维人员部署时却不能整成运行。代码是一样的,为什么不能运行那,那就是运行环境的问题了,比如开发人员开发的程序必须运行在tomcat8中,但是运维人员那边用的是to...
2018-10-30 18:06:44 245 14
原创 Java中 excel导入导出
文章目录一:导出1.数据库查询得到要导出的数据list2.工具类:导出,将list数据转换为excel(将excel数据转为ByteArrayOutputStream,间接传给下载方法)3.工具类:浏览器下载excel二:导入1.页面设置2.servlet设置3.工具类:导入三:工具导入导出工具代码:注解类: 其实此处用的主要是apache提供的POI组件,POI参考:https://blog...
2018-10-24 10:44:59 612 16
原创 Session详解
四大域对象 1.概念 称为实体类实例,对应数据库字段。域:翻译英文未field,即我们常用的字段或属性。作用是用于保存数据,获取数据,可以在不同的动态资源之间共享数据。2.包含的对象 (1)Session域 A: 产生: 第一次调用 request.getSession()时产生 B:作用: 存储访问该程序的一个用户的信息 C: 生命周期: 第一次调用re...
2018-10-18 16:59:30 6616 35
原创 【Java基础】集合collection
在开始讲集合之前,我们先说一下数组和集合的区别:数组是大小固定的;同一个数组只能存放类型一样的数据(基本类型,如int/引用类型);可创建可读并可写的数组,但不能创建只读的;操作快集合大小事可变的;同一个集合只能存放引用类型的的数据(不能存放基本数据类型,但能存储基本类型的包装类,如Integer);可创建只读的的集合;功能多容器类仅能持有对象引用(指向对象的指针),而不是将对象信息co...
2018-10-03 17:28:58 194 6
原创 java程序mysql数据库每隔2分钟左右就会中断,必须重启tomcat
本人用的是mysql数据库,dbcp连接池1.问题解决方案及说明: https://blog.csdn.net/liuyangvoid/article/details/259751572.removeAbandoned 是否清除已经超过“removeAbandonedTimout”设置的无效连接。如果值为“true”则超过“removeAbandonedTimout”设置的...
2018-09-26 11:30:34 1989 46
原创 【MyBatis】动态SQL——foreach使用 /批量更新或批量插入
1.foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合2.可以传递一个 List 实例或者数组作为参数对象传给 MyBatis。当你这么做的时候,MyBatis 会自动将它包装在一个 Map 中,用名称作为键。List 实例将会以“list”作为键,而数组实例将会以“array”作为键3.foreach的collection能够支持的三种集合类型list,arra...
2018-09-17 15:06:42 12298 10
原创 【MyBatis】 动态SQL——模糊查询 LIKE
一:LIKE % %SELECT * FROM t_usr WHERE name like '%${name}%' SQL解析为:SELECT * FROM t_usr WHERE name like '%海%' 可以看到,传参必须用${}不能用#{},所以这样写的弊端就是不安全,不能防sql注入 有关LIKE使用,请参见:https://blog.csdn.net...
2018-09-11 20:46:51 20365 16
原创 tomcat 配置 数据库连接池
1.在项目的META-INF下面,添加context.xml文件(指定单个项目使用数据库连接池,也可配置全局的):&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;Context &gt; &lt;WatchedResource&gt;WEB-INF/web.xml&
2018-09-06 20:57:32 20353 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人