- 博客(43)
- 收藏
- 关注
原创 并发编程之生产者消费者
从一个很经典也很基础的例子入手生产者消费者模型,包含三个角色,分别是生产者,消费者,缓存,是一种经典的多线程场景下程序设计,好处是解耦,缓解生产消费两端的性能差,后面的各种消息队列其实都是这种思想发展而来。
2024-07-01 21:06:10
133
原创 Mapper如何从一个接口变成Bean
以前用iBatis,后来用Mybatis, 用MybatisSpring,再后来有了SpringBoot和。本文来描述下在SpringBoot下如何生成一个Mapper对象的。
2024-05-28 22:18:06
520
原创 MySQL查询结果排名
需求有意思的需求又出现了,公司要求能够在管理后台查询资产前5000名的用户信息,当然这是个比较简单的事情,但是需求中提到另外一点,需要展示排名。我刚开始猛地一看这个需求,就觉得很简单,实践的时候却尴尬了,这个排名一个倒序就解决了,问题是把名次要显示出来,好像很简单,又感觉不太好下手的样子…思路其实我刚开始的时候想着排完顺序之后,展示的列表不就是名次,但是这样不直观,比如翻页之后,难道让管理员通过页数*页记录数+当前页的位置去计算一下,估计要被叼。那么问题的核心很容易就凸显了,那就是如何将行号变成查询.
2021-08-11 23:22:49
519
原创 工厂模式巧用
需求由于业务需要,公司系统中接入了多家支付方式,包括支付宝,微信,京东等,现要对支付体系进行设计,达到高内聚,低耦合,易扩展的非功能性要求。思路这种需求可以用策略或者工厂模式实现,抽象出业务行为,假设行为有两种,支付,退款。使用工厂模式的话,征程流程应该是:controller->service(工厂分发)->多个service实现这中实现方式估计很多人都听过用过,但是有个问题是在分发的时候如何避免出现多余的if-else,都用设计模式了,过多的if-else看起来就有点碍眼了.
2021-08-10 23:46:31
192
原创 位图实现公告已读未读
场景:APP公告,在用户端展示需要红点标记未读之前有看到类似的业务场景,比如用户标签,用户签到这种都可以使用位图实现。原理位图就是用一个二进制数据结构,按位存储标记,举个例子,假如APP有64个用户,用户ID为自增 , 一个long类型的数据刚好32位,那么作为byte数组使用,下标0~63刚好能够表示这64个用户,每个下标对应的元素为1表示已读,0表示未读public class BitMapTest { public static void main(String[] a..
2021-08-03 23:29:47
1071
1
原创 Mybatis流读取
事情是这样子的~~由于某种原因,简单来说就是导致需要从线上导出几张千万级别的数据表到开发服进行某种计算的性能测试,然后导入表的时候漏了一张,有权限的同事已经下班了,需要把这张表生成到开发服,表的内容不重要关键要有和用户表一一对应的记录。所以,要想办法短时间根据一张已有的表生成另一张表。总不能直接insert into ... select直接一把梭哈吧,另外也试了下批量读取,然后批量插入,效果比较慢找了一圈,发现mybatis有个流读取的功能,刚好合适dao层直接来个获取所有用户的sql
2021-08-02 21:10:14
1019
原创 Maven应用
POM文件Project Object Model(项目对象模型);用于描述项目如何构建,声明项目依赖;可配置项:项目依赖 插件 执行目标 项目构建profile 项目版本 项目开发者列表 相关邮件列表信息;处理阶段阶段处理描述validate验证项目验证项目是否正确且所有必须信息是可用的compile执行编译源代码编译在此阶段完成Test...
2019-10-21 14:55:42
154
原创 CentOS7下consul安装
简介:Consul是一个分布式高可用的系统,一个发现和配置服务的工具。客户端可以利用它提供的API注册和发现服务,及监控检测功能实现服务的高可用。作用:维护不同环境下的项目配置热更新配置服务治理特性:通过DNS或者HTTP应用程序能找到它所依赖的服务,方便进行服务注册使用Key/Value方式进行数据存储支持开箱即用的多数据中心。用户不需要建立额外的抽象层来扩展业...
2019-09-16 09:14:25
2755
原创 Spring启动调用方法
spring-mvc.xml配置<bean id="initTest" class="com.cs.pro.init.InitTest" init-method="init"/>添加上面这行配置,所有工作由Spring自己完成,方法不需要多加处理。public class InitTest { public void init(){ System...
2019-03-21 15:42:00
378
原创 Redis安装
一顿操作,下载安装,启动,删除安装包#下载到local下cd /usrl/localwget http://download.redis.io/releases/redis-4.0.9.tar.gz#解压安装包tar xzf redis-4.0.9.tar.gzcd redis-4.0.9#编译安装makesudo make install#使用默认配置启动redis./...
2019-03-20 12:38:00
71
原创 MySQL的安装(CentOS 7)
前言CentOS 7默认安装了mariaDB数据库什么是mariaDB?rpm -qa | grep -i mariaDB也可以看看系统有没有自带或者安装过MySQLrpm -qa | grep -i mysql比较尴尬的是mariaDB属于MySQL的分支,并且两者版本同步,导致yum install mysql命令只会在版本不是最新的时候更新mariaDB...
2019-03-20 10:07:00
65
原创 OpenResty搭建
OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并...
2019-03-15 16:06:00
188
原创 Nginx配置文件
安装时的配置文件#user nobody;#nginx进程,一般数值为cpu核数worker_processes 1;#错误日志存放目录#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#进程pid存放位置#pid lo...
2019-03-14 16:39:00
150
原创 CentOS 7下Nginx安装
简介Nginx 是一个高性能的轻量级的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP电子邮件服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。一 安装Nginx1. gccyum install gcc-c++安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需...
2019-03-13 15:52:00
72
原创 CentOS 7网络配置
找一台同局域网下的Windows电脑右键计算机->属性,依图步骤找到网关和DNS。1.png2.png3.png4.png5.png6.png7.png打开Linux电脑,开始配置网络cd /etc/sysconfig/network-scripts/进入/etc/sysco...
2019-03-07 17:55:00
93
原创 CentOS 7安装
先在Windows上制作U盘启动并准备号待安装的系统准备8G以上空U盘 下载UltraISO,用于制作U盘启动 绿色版下载 CentOS 7系统下载官网下载1. 打开UltraISO,找到.iso镜像文件,双击2.png2. 点击启动,下拉框中点击写入磁盘映像3.png3. 选中插好的U盘,点击写入,等待完成4.png5.png4. U盘...
2019-03-07 17:55:00
69
原创 CentOS 7防火墙配置
防火墙配置的目的是让服务器能够被远程访问CentOS 7自带firewall防火墙,相关命令为:查看firewall的状态firewall-cmd --state关闭firewallsystemctl stop firewalld.service开启firewallsystemctl start firewalld.service禁止开机启动firewalldsyst...
2019-03-07 17:54:00
160
原创 工具方法
先说明一些用到的小知识,变化过程以代码说明。左位移<<,右位移>>。short i = 10;short j = -10;//右移操作short a =(short) ( i >> 2);//10->(二进制)0000000000001010->(右移2位)0000000000000010->(10进制)2short b =(...
2019-03-06 15:25:00
125
原创 Myeclipse下SpringBoot+MySQL简单搭建
一. 简单项目搭建1. 右键目录空白new project选择Maven Project1.png2. 创建一个简单的项目2.png3. Group Id,Artifact Id,Compiler Level填写Group Id和Artifact Id是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查...
2019-03-06 15:19:00
366
原创 synchronized用法
互斥锁:当一线程进入synchronized修饰的代码块或者方法,其它线程等待,知道锁被释放;内置锁:对象锁,每个java对象都能当成一个锁使用,这个锁就是内置锁,内置锁也是互斥锁;类锁:用于静态方法。类锁实际上也是对象锁,它作用于class对象,每个类只有一个class对象;synchronized可以用于修饰代码块,实例方法,静态方法,不能用于修饰类;修饰代码块和实例方法publ...
2019-02-15 17:50:00
87
原创 单例
使用单例设计模式的类只有一个对象实例,基于此核心来编写代码。懒汉式public class LazySingleton { private volatile static LazySingleton ton = null; private LazySingleton(){} public static LazySingleton lzTon(...
2019-02-15 17:49:00
70
原创 Java---中断机制
Thread中断机制涉及的方法或者属性有三个:public boolean isInterrupted();public static boolean interrupted();public void interrupt();isInterrupted首先看第一个,它很简单,用来判断这个线程是否被中断,true标识中断,此方法不影响线程的状态...
2019-01-28 15:04:00
73
原创 TCP/IP之socket短连接
简单的socket短连接文中讲述数据流,字节流,对象分别输入和输出的简单实现。客户端类,模拟客户端发送数据:import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.Obje...
2019-01-28 12:51:00
890
原创 Xcode --- 有技巧的使用Xcode
1 . 设置Xcode自带SVNhttp://blog.csdn.net/kaiyang45/article/details/491483372 . LLDB调试命令初探http://www.starfelix.com/blog/2014/03/17/lldbdiao-shi-ming-ling-chu-tan/3. IOS各种调试http://...
2016-11-08 09:20:00
90
原创 IOS --- 获取系统信息
1 . 获取项目名称 [[NSBundle mainBundle] infoDictionary][(__bridge NSString *)kCFBundleExecutableKey] ?: [[NSBundle mainBundle] infoDictionary][(__bridge NSString *)kCFBundleIdentifierK...
2016-11-07 10:28:00
153
原创 MAC --- 使用终端编写简单SQL语句
1.在桌面创建一个sqlite的文件夹;2.终端命令:cd Desktop 回车 cd sqlite 回车到达指定文件夹,我们将在这里创建数据库文件,并且操作;3.终端命令:sqlite3 sqlite.db 创建一个名字为sqlite.db的数据库,这个时候在sqlite文件夹里面看不到sql...
2016-10-20 17:21:00
823
原创 IOS --- Charles 4.0的配置
Charles 4.0 可自行百度下载安装。 1.打开Charles 4.0: 2. 配置 Charles 根证书 ...
2016-09-14 12:02:53
119
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人