自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 收藏
  • 关注

原创 mysql 函数

find_in_set(str1, str2)1) select find_in_set('b', 'a,b,c,d'); 返回str2(逗号分隔)中str1的个数,比如b个数为12) select * from srv_contract where FIND_IN_SET(id, '10000,10001,10002'); 等价于 in3)select * from srv_contract where FIND_IN_SET(#{id}, '10000,10...

2020-10-20 15:50:54 245

原创 史上最清晰 mysql8 安装

1)从服务器下载mysql8安装包,或者上传一个mysql安装包tar,并且解压2)安装aio的依赖包yum install -y libaio3)把解压的文件放到默认的安装目录下/usr/localmysql4)创建以下文件夹和文件 4.1)存放实际表数据 /usr/local/mysql/data 4.2)存放log日志 /usr/localmysql/log/mysqld_3306.log 4.3)新建一个pid文...

2020-10-19 23:36:32 242

原创 史上最清晰 Java WebService

WebService就是Http+XML的文本模式传输webservice必须是Web服务器,所以sping-web是必须的<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency>...

2020-10-19 22:58:51 307

原创 sql - 解决一种checked(选中)问题

解决所有管理员中,哪些管理员是绑定角色A的解决方案(子查询+左连接+ISNULL()函数):第一步:子查询使admin和角色做inner join,选出的admin'必然是绑定了角色的第二步:外部查询使用所有的admin和之前选出的admin'做left join,admin没有连接上admin',必然是没有绑定角色的第三步:没有连接上的temp.id为NULL,使用ISNULL()函数,转换成对应字段ISNULL(column)为NULL是1 ,不为NULL是0具体例子selec

2020-09-19 11:34:28 360

原创 consul配置

spring.cloud.consul.discovery.enabled = truespring.cloud.consul.host = consul-client.matrixspring.cloud.consul.port = 8500#[1]spring.cloud.consul.discovery.serviceName = myService#[2]spring.cloud.consul.discovery.prefer-ip-address = true#[3]sprin

2020-09-14 14:21:16 1224

原创 Validator 使用笔记

提高 spring mvc http 参数校验开发效率,有效避免如下复杂代码使用:if(StringUtils.isBlank(name)){ return new ReponseEntity(HttpStatus.BAD_REQUEST);}配置校验器,发现错误立即返回@Configurationpublic class ValidationConfig { @Be...

2020-08-01 15:34:06 346

原创 踩坑记录 - AES

AES的秘钥必须注意AES密钥一般编码存储状态有多种(1)utf-8一般使用常用英文字符表示,一个英文字符按照utf-8字符集可以转化为一个8位2进制(byte),16个英文字符恰好16*8=128位对应128密钥(2)HEX(十六进制字符集)使用字符集'’0123456789abcdef"表示:字符"1" 表示二进制 0001字符"a" 表示二进制 1010所以32个HEX字符恰好32*4=128位对应128密钥(3)base64128位的二进制密钥直接编码成Bas.

2020-08-01 13:48:35 585

原创 fastdfs集群配置

打开端口sudo iptables -I INPUT -p tcp -m tcp --dport 22122 -j ACCEPTsudo service iptables savesudo iptables -I INPUT -p tcp -m tcp --dport 23000 -j ACCEPTsudo service iptables savetracker的配置只有一处:...

2020-04-17 20:59:19 83 1

原创 HttpServletResponse Writer 是怎么把数据写到网络上的?

问题:如下代码底层是如何把响应写到socket的???一般常用写法为:// 清空所有的头信息、状态码、数据缓存bufferresponse.reset();response.setContentType("charset=utf-8");response.setStatus(200);// 写到缓存区域,如果写的内容大于缓冲区域buffer,会自动flush到网络上,翻过来说,...

2020-03-25 17:54:46 1441

原创 mongo 文档自动过期(删除)

mongo文档自动过期(删除)有助于减少老旧文档的数量,提高搜索效率第一,需要mongo设置对某字段设置索引;第二,在插入这个字段时,必须是Date类型;(1)指定过期时间到后删除创建基于expireAt字段的索引,expireAfterSeconds参数表示过期时间到了,立即删除// 创建索引db.c_device_data_record.ensureIndex({expireAt: ...

2020-02-23 14:56:28 785

原创 子查询

子查询可以出现在:where、from 语句中1 子查询跟在where关键字后面1.1 子查询果集1行1列,标量子查询select * from t_user_applywhere user_no= (select user_nofrom t_user_info where name = 'xiaoming')在 "=" 情况下,其实和表内接连等价的:selectt_...

2020-01-30 17:51:40 526

原创 mysql 键 key

#添加外键alter table t_message_role_resourceadd constraint f_role_idforeign key (message_role_id)references t_message_role(id)#删除外键ALTER TABLE 表名DROP FOREIGN KEY 外键名;#设置联合索引alter table 表名 add u...

2020-01-16 11:43:40 163

原创 Swagger

强烈建议使用Swagger,做到代码在文档就在。很多项目发现代码有,但是没有接口文档,所以很难维护。依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId>...

2020-01-10 09:56:01 419

原创 ArrayList

ArrayList底层就是一个可以grow扩容的数组Object[] elementData1 成员属性// 默认的数组大小private static final int DEFAULT_CAPACITY = 10;// 当没有设置初始化大小时候,所有实例的elementData共享指向private static final Object[] EMPTY_ELEMENTDATA = ...

2019-11-13 22:29:42 137

原创 枚举 enum

定义一个枚举public class enum Status{ SUCCESS(1,"成功"), FAIL(2,"失败"); // 定义带参数的构造函数 Status(int code, String msg){ this.code = code; this.msg = msg; } // 本来定义的私有变量,...

2019-11-11 13:43:27 192

原创 java8 函数式编程

面向对象的编程中,程序执行期间方法不能作为值相互传递,而是二等公民。必须依赖对象或者类调用。方法作为值相互传递,构成了java8的基本思想:如stream,stream接收的参数可能只是一个方法f(),而不需要 实例.f()lamda表达式和函数式接口绑定// 定义一个函数式接口InterfaceFunctionInterface { boolean do(Apple app...

2019-11-06 15:44:34 166

原创 linux sed

sed linux替换文本sed是对文本按照行进行依次处理sed -i "s|被替换的文本匹配|替换的文本|替换第几个" /文件目录sed -i "s|\t|,|' sed.txt"替换每行第一个tab为逗号sed -i "s|\t|,|2' sed.txt"替换每行第2个tab为逗号sed -i "s|\t|,|g' sed.txt"替换每行所有tab为逗号,g表示globa...

2019-10-23 16:41:57 262

原创 bouncycastle

解决报错:java.lang.SecurityException: JCE cannot authenticate the provider BC1 需要在JDK增加 provider编辑:jre\lib\security\java.security增加一行:security.provider.10=org.bouncycastle.jce.provider.BouncyCastlePr...

2019-10-23 10:23:13 327

原创 JVM内存结构

Java堆(Heap)线程所共享资源,主要用于存储new出来的实例对象和数组方法区(No-Heap)运行时常量池:类信息、常量、静态变量、即时编译器编译后的代码等数据线程运行的内存结构java虚拟机栈(1)局部变量表存储局部变量。如果是基本类型直接存储;如果是对象和数组,仅仅存储指向他们的地址,而对象和数组本身存储到堆中。f1(){ int i = 1; Date dat...

2019-09-27 22:56:59 220

原创 包装类

byte => Byteboolean => Booleanshort => Shortchar => Characterint => Integerlong => Longfloat => Floatdouble => Double使用包装对象原因:集合Collection只能接受对象,...

2019-09-27 17:40:11 155

原创 java参数是值传递还是引用传递

f1(){ a,b f2(a, b)}值传传递:f2中会对参数a,b做独立的拷贝,所以如果f2修改了a,b,不会影响到外层f1的a,b值引用传递:f1把a,b指向的地址传入到f2中,f2中修改a,b,实际操作是修改了a,b指向的内容,故会影响到f1中a,b的值先上结论:java简单数据类型参数传递是值传递,java对象参数传递还是值传递class User{ Str...

2019-09-27 15:21:49 115

原创 五大原则

单一职责原则类的功能要尽量单一,有个常见特点是类要小,不要写超级大类;当然也有些不可避免的:Controller/Service/Repository中会大量的public方法,当然这是web的涉及套路了:Controller层:逻辑要写的尽量薄,Http的数据接收层,基本数格式的校验,基本权限的校验Service层:主要的业务逻辑,业务代码改动频繁,所以单独一层Dao层:主要sql,因...

2019-09-27 14:15:11 224

原创 linux实现简单自动部署java

1 依赖maven 需要下载tar.gz,解压即可tar -xvzf apache-maven-3.3.9-bin.tar.gz把解压目录移动到/usr/local/maven/下添加环境变量vim /etc/profileexport PATH=$JAVA_HOME/bin:$MAVEN_HOME/binMAVEN_HOME=/usr/local/maven/apache-mave...

2019-09-11 14:29:18 530

原创

树除了根节点,其他节点都有且仅有一个父节点任何节点都有且仅有一个父节点任何节点都有0-n个子节点根节点:没有父节点的节点子叶节点:没有叶子节点的节点节点高度:某节点到子叶节点最长路径的连线条数节点深度:某节点到根节点的路径连线条数子树:任何节点和它下面所有节点构成二叉树所有节点最多有两个子节点的树称为二叉树平衡树任意节点的左、右子树的高度差小于1二叉查找树(二叉搜...

2019-08-25 17:57:43 173

原创 nginx Content-Type MIME mime.types

nginx配置中有一般会有配置:include mime.types;用来引入文件类型和MIME类型映射表,在nginx安装目录的conf下有mime.types配置文件,打开配置可见:types { text/html html htm shtml; text/css...

2019-08-25 15:52:35 5868 1

原创 浏览器 nginx 允许跨域请求

参考文档http://www.ruanyifeng.com/blog/2016/04/cors.html1 nginx允许跨域配置:location / { add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; ad...

2019-08-25 14:54:08 1431

原创 nginx 配置文件关键字

L1location / { root html; index index.html index.htm;}L1可以匹配到请求127.0.0.1 、127.0.0.1/root html 是一个相对路径,表示以ng安装路径下html目录查找文件index.htmlL2location /a { root D:/plugins/nginx-1....

2019-08-24 23:22:02 1173

原创 fastdfs安装

0 问题之前使用最新版本下载,发现安装nginx编译fastdfs-nginx-module时候,make失败;所以换成网上写的版本匹配:第一组匹配FastDFS_v5.05.tar.gzfastdfs-nginx-module_v1.16.tar.gzlibfastcommon-1.0.7.tar.gzlinux版本 Linux version 2.6.32-431.el6r...

2019-07-20 13:49:46 34

原创 spring AOP

JoinPoint 对象连接点,Spring AOP 的JoinPoint就是对这个连接点的抽象,Spring中接入点一般是方法。@Before(value = "@annotation(com.changhong.yyhl.spider.worker.aop.SpiderParam)")public void param(JoinPoint joinPoint){ // JoinPo...

2019-07-15 14:02:45 221

原创 输入/输出流(1)

输入输出流IO流的一端是网卡、磁盘、键盘、音箱、文件,另一端是内存。只能单向通信,要么从网卡到内存(输入流),要么从内存到网卡(输出流),不是双端通信。字节流 InputSream/OutputSream,操作都是byte[]字符流 Reader/Writer,操作都是char[]即:java byte=8*bit,char=16*bit节点流:处理流(对节点使用装饰器模式...

2019-07-11 23:07:27 107

原创 mongo 语句

与逻辑$and是一个JSONArray数组条件,范围是json对象描述db.c_device_data_record.find({ $and: [{ nodeId: '866203040105325' }, { createTime: { $gte: '2019-07-01 00:00:00...

2019-07-05 19:06:20 176

转载 mysql 常用知识

整数类型 占用字节数 最小值 最大值 最长显示 tinyint 1 有符号 -128 无符号 0 有符号 128 无符号 255 3 smallint 2 有符号 -32768 无符号 0 有符号 -32768 无符号 65535 5 mediumint 3 ...

2019-06-20 17:05:02 91

翻译 代码规范

1 命名规范只能英文,禁止中文拼音,但是youku、alibaba可以DO、VO、DTO、BO不需要驼峰领域模型表名 xxxDO展示 xxxVO业务 xxxBO常量大写,_分割,不要嫌太长抽象类必须用Abstract开头包全部用小写,.分割符之间,只能有一个单词,不要用复数com.changhong.util使用设计模式的后面加模式类型OrderFactory...

2019-06-04 13:41:29 256

翻译 数据库使用规范

索引主键 pk_xxx唯一 uk_xxx普通索引 idx_xxx业务上具有唯一性的字段(包括组合字段),必须建立唯一索引;索引带来的写的性能损失可以忽略不计,但是读性能提升是显而易见的;根据墨菲定律,无论应用层如何保证唯一性,也不能绝对保证唯一性varchar建立索引时,必须制定索引长度,字符串20索引长度,区分度已经达到90%以上,这样可以解决索引左模糊和全模糊对索引...

2019-06-03 18:22:36 255

原创 nginx安装

1 安装gcc依赖yum install -y gcc gcc-c++2 安装pcre软件包(使nginx支持http rewrite模块)yum install -y pcreyum install -y pcre-devel3 安装openssl-devel(使nginx支持ssl)yum install -y openssl-devel4 安装zlib库支持yum ...

2019-05-24 15:42:41 167

原创 motan zookeeper

1 客户端和服务端都需要的1.1 客户和服务端公共接口公共接口,实现rpcpublic interface FooService { String hello(String name);}1.2 注册策略配置@Bean(name = "zookeeperRegistry")public RegistryConfigBean registryConfig() {...

2019-05-08 19:58:51 272

原创 web集成shiro(2)

Q:shiro对spring-session的设置是如何操作到redis的?A:假如我们对shiro的session做如下操作,最终key -> val会保存到redis中Subject subject = SecurityUtils.getSubject();Session userSession = subject.getSession();userSession.setA...

2019-05-05 18:11:24 188

原创 spring-session-redis

1 依赖<dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session</artifactId> <version>${version.redis.session}</version&g...

2019-05-05 16:37:28 432

原创 web集成shiro(1)

Q1:shiro过滤器是如何添加到servlet的过滤器链?和servlet原生拦截器是如何配合工作的?shiro是如何filter是如何拦截请求的?Q3:shiro是如何实现账号密码验证的?Q4:shiro是如何实现角色权限认证的?A1:ShiroFilterFactoryBean的getObject方法(实现spring的FactoryBean工厂方法),会创建一个SpringShir...

2019-05-03 22:31:45 419

翻译 集合转换处理

1 集合转数组List<String> list = new ArrayList();list.add("a");String[] array = new String[list.size()];list.toArray(array);2 split获得数组String s = ",1,a,,2,, 2,,,";String[] array = s.split(",")...

2019-04-26 16:05:55 161

空空如也

空空如也

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

TA关注的人

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