- 博客(20)
- 资源 (2)
- 收藏
- 关注
原创 Spring事件发布监听机制实现业务解耦
Spring事件发布监听机制实现业务解耦文章目录Spring事件发布监听机制实现业务解耦1.引言2.Spring事件发布监听机制3.三要素3.1 事件(ApplicationEvent)3.2 事件监听者(ApplicationListener)3.3 事件发布者(ApplicationEventPublisher)4.测试5.支持异步5.1 设置Executor的方法实现异步(推荐)5.2 异步注解6.Demo代码参考链接:Spring事件监听机制 - 知乎深入浅出Spring/SpringBo
2020-06-10 18:45:02
508
原创 布隆过滤器 - Bloom Filter
布隆过滤器 - Bloom Filter文章目录布隆过滤器 - Bloom Filter0.引言1.使用场景2.什么是布隆过滤器(1) 数据结构(2) 原理(3) 使用参考链接:1:JavaGuide - 布隆过滤器2:亿级数据过滤和布隆过滤器0.引言P:我们平时在刷抖音时,开发人员如何保证 不会刷到同样的内容 ?1:把算法推荐中的内容根据历史记录做一遍筛选?在用户量大,用户查看内容多的场景,性能低2:历史记录全部计入缓存?资源量大,并且会随着时间逐渐上涨,服务器耗费up3:布隆过
2020-05-29 09:45:12
1002
2
原创 Redis Cluster 搭建
Redis Cluster 搭建文章目录Redis Cluster 搭建1. 配置2. 构建集群3. 验证集群(1) 随机登陆一台redis客户端(2) 查看集群(3) 故障转移4. redis-manager搭建搭建说明(1) 创建项目所需目录(2) 添加到开机自启动(3) redis-manager添加集群1. 配置实例角色说明192.168.10.139Master主节点192.168.10.142Slave从节点,对应139192.168.10.140
2020-05-29 09:44:36
374
原创 线程和线程池
线程和线程池文章目录线程和线程池1.new Thread的弊端2.线程池的好处3.线程池相关名称解释4.线程和线程方法5.合理配置线程池5.1 cpu密集型任务5.2 io密集型任务6.线程池配置使用例子6.1 配置类 ThreadPoolConfig.class6.2 使用1.new Thread的弊端每次new Thread新建对象,性能差线程缺乏统一管理,可能无限制的新建线程,相互竞争,有可能占用过多系统资源导致死机或者OOM缺少更多功能,如更多执行、定期执行、线程中断2.线程池的好处
2020-05-29 09:44:01
223
原创 xxl-job任务调度中心文档
xxl-job任务调度中心文档文章目录xxl-job任务调度中心文档0.简介1.xxl-job管理端1.1 配置1.1.2 xxl-admin服务端1.1.2 xxl-job客户端配置文件:application.yml配置类:XxlJobConfig.class1.2 部署启动1.3 界面说明(演示xxl-job版本为2.0.2)1.3.1 执行器管理1.3.2 任务管理1.3.3 日志管理...
2020-05-06 22:07:48
1667
原创 Beetl模版引擎
Beetl模版引擎0.简介 本文只简单介绍使用hutool中的BeetlUtil结合FileWriter实现模版文件的数据渲染Beetl模版引擎网址:Beetl模版引擎hutool网址:Hutool 前提:pom引入hutool工具类<dependency> <groupId>cn.hutool</groupId> <a...
2020-04-30 16:47:05
1015
原创 基于Git+Jenkins+Ansible实现自动化部署与持续交付
自动化部署与持续交付@[CentOS 7, Jdk 1.8, Git, Maven, Jenkins, Ansible]日常工作中,每个程序员都会经历项目部署,而很多人在这时大多会经历以下环节:Git :分布式版本控制系统,负责项目代码的分支拉取与分支更新等;Maven :项目管理工具,负责项目打包;项目部署 :日常可能使用ftp方式传输项目包,Shell相关脚本部署,或者使用IDEA...
2020-04-27 14:31:24
1185
原创 阿里云CentOS7.3版本安装Java jdk/MySQL/Nginx/Tomcat/Redis个人记录
因为第一个上手项目需要,但在这上面浪费过很多时间(阿里云的实例系统盘一天被我更换了7、8次..),大佬博客加上个人经历永远是最适合自己的,所以在博客上记录在这里以上各个版本为: Java jdk:1.8 Mysql:5.7.17 Nginx:1.11.7 Tomcat:8.0 Redis:3.2.8 (提示:命令直接复制会导致符号不对进而出现执行问题,所以最好自己手打)一.My
2018-01-05 18:58:49
506
原创 SpringBoot Web小进阶学习
一:Valid表单验证 作用:在参数(例如girl类)前添加注解 @Valid 表示对这个参数进行验证 而需要验证的条件则是写在参数中(girl中的年龄等属性),而验证结果则是由bindingResult对象返回:实体类: @Min(value = 18,message = "此女生未成年") private Integer age;更多限制属性注解:http://blog.jav
2017-12-29 14:18:01
192
原创 SpringBoot两小时课程学习小总结
一:SpringBoot SpringBoot是SpringMVC的升级版,相对于编码、配置、部署和监控方面,会更加简单 特点: 1.化繁为简,简化配置。 2.备受关注,是下一代框架。 3.微服务的入门级微框架Spring 为 微服务提供了一整套的组件-SpringClound , SpirngBoot 就是该基础。而微服务则是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为
2017-12-27 16:09:48
642
原创 分布式与集群的简单解释
可能是因为对分布式和集群的敬畏,所以一直没有专门去了解,但是两者在日常工作学习中却是不可或缺以及必须理解的。专门去查了下,在这里做个简单解析。前言(抛砖引玉):小饭店原来只有一个厨师A,切菜洗菜备料炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师B,两个厨师都能炒一样的菜。为了让厨师专心炒菜,把菜做到极致,又请了个配菜师C负责切菜,备菜,备料。 这个背景下,厨师A和厨师B
2017-12-20 16:56:28
272
原创 关于Spirng框架个人总结
- 一:Spring是什么Spring是一个开源框架,pring使用基本的JavaBean来完成以前只可能由EJB(为了服务集群、分布式应用的)完成的事情。然而,Spring的用途不仅限于服务器端的开发。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。按我的理解来说,就是Spring是一个管理着javabean的容器,我们把平时创建、维护类实例的操作给java
2017-09-23 20:56:05
306
原创 关于Mybatis框架的个人总结
一:什么是Mybatis? 刚学会jdbc的时候,对数据库进行增删改差,都要事先先写一个连接工具类,用来加载驱动、获取数据库连接还有用完关闭连接这些通用操作,就像下面这张图然后操作dao层,增删改差方法每个还要封装一遍,代码重复枯燥,很没意思。 所以为了解决这个问题,由ibatis改进的Mybatis出现了,他让我这样的瓜皮程序员能够不因为太多繁杂重复的代码粗心犯低级错误,直接把jdbc对数据库
2017-09-23 20:08:39
987
原创 关于Redis的相关知识个人总结
redis简介redis不同于像以往我用的mysql,oracle这样的关系型数据库,他是一个以key-value键值对形式存储的数据库。1.支持多种原子性操作的数据结构但是区别于别的key-value数据库的是,他还支持String(字符串)、set(无序集合)、sorted set(有序集合)、hash(哈希)、list(列表)这些数据类型,并且这些的操作都是原子性操作(原子性只有一点印象,百度
2017-09-20 20:46:02
285
原创 Java Web权限管理
上周在学习过程中,对权限管理大体上有了一个模糊的认识,借博客来加深一下整体印象以及各个具体流程那么,我们现在开始具体操作一下:前提:eclipse、Spring、SpringMVC、Mybatis、MySQL、easyUI1.设置表我在数据库里设置了五张表 三张实体类表 用户表:user 角色表:role 菜单表:menu 两张关系表: 用户角色表:user_role 角色菜单表:ro
2017-09-14 17:12:55
935
2
原创 activiti基本流程操作
这几天在学习了activiti一些基本的流程操作之后,在此记录。只有步骤,概念参考官方文档(官方文档看了半天,因为不了解Activiti Explorer所以看到一半…)参考了网上大佬们的教程,终于摸了个门清。 http://blog.csdn.net/u011320740/article/details/53018040 http://blog.csdn.net/qiumuxia0921/ar
2017-09-14 12:35:15
770
转载 Java Comparable 和Comparator接口的使用及区别
一、Comparable简介 1、Comparable 是排序接口。2、若一个类实现了Comparable接口,就意味着“该类支持排序”。 即然实现Comparable接口的类支持排序,假设现在存在“实现Comparable接口的类的对象的List列表(或数组)”,则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序。3、此外,“实现Comp
2017-06-17 15:04:39
294
原创 Gradle build(高版本到低版本)遇到的错误总结
把跑通的项目换了一个设备运行,竟然一下出了458个error(s)…..初学者的我感觉很难受 从第一个error开始是Error:warning: Ignoring InnerClasses attribute for an anonymous inner class 去网上查了查,大佬给出了建议: 第一步:修改Gradle配置文件,启用MultiDex并包含MultiDex支持:defaul
2017-06-05 21:44:43
2462
原创 Gradle学习——读懂Gradle语法
Gradle是一种声明式的构建工具。在执行时,Gradle并不会一开始便顺序执行build.gradle文件中的内容,而是分为两个阶段,第一个阶段是配置阶段,然后才是实际的执行阶段。在 配置阶段,Gradle将读取所有build.gradle文件的所有内容来配置Project和Task等,比如设置Project和Task的Property,处理Task之间的依赖关系等。虽然很多时候我们只需要照着
2017-06-05 20:38:27
318
原创 关于探探图片滑动操作
之前一段时间,在朋友的推荐下,玩了探探这一款软件,初玩的时候,就发现,这款软件与一般的社交软件如陌陌之类的大相径庭,让我耳目一新,特别是探探里关于图片滑动操作让人觉得非常新鲜。所以在下通过网上之前的前辈的经历加上自己的理解,也来涉涉水。下面是网上找的探探的原界面 ” 当时就非常想通过自己来实现这种仿探探式的效果,然而却没什么思路。不过毋庸置疑的是,这种效果的原理肯定和 ListView
2017-06-02 17:44:16
1543
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人