自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(203)
  • 资源 (4)
  • 论坛 (1)
  • 问答 (1)

原创 Controller接List参数,Vo里加的校验不起作用解决办法

//vopublic class TestVo { @NotEmpty(message="id不能为空") private String id; ........}//Controllerpublic String test(@RequestBody List<TestVo> list) { //单独校验 for(TestVo testVo: list){ validator.validate(testVo,new BindException(testV.

2020-10-22 19:44:35 7

转载 idea 生成api文档

IDEA API文档的导出1.打开项目后点击IDEA顶部菜单栏的"Tools"2.选择:Generate JavaDoc Scope3. 如图按照需求配置;编码格式设置: -encoding UTF-8 -charset UTF-8然后点击"OK",就会自动生成API文档到指定路径了.4.若日志仍然报错,这里提供一种解决方案打开设置 配置如下然后再打开"Tools"的Generate JavaDoc Scope,再生成一次就可以了...

2020-08-18 15:06:46 62

原创 Nginx 入门知识

1 Nginx 与 Nginx 中的反向代理Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,具有正反向代理,负载均衡,HTTP 服务器等功能,以其高性能、稳定、功能丰富、配置简单及占用系统资源少而著称。正向代理与反向代理的区别在正向代理中,客户端是可以明确知道服务器地址的,客户端会把请求发送给代理,代理再把请求转发给服务器,那么响应的传递顺序也是服务器 -> 代理 -> 客户端,客户端知道服务器,而服务器不知道客户端,事实上隐藏了客户端的真实信息。与正向代理相反,反

2020-05-27 15:50:09 69

原创 ThreadLocal使用--缓存

在微服务中需要经常查询一些共用的东西,比如当前登录用户id,不断跨服务查询会消耗性能,使用ThreadLocal缓存起来使用更方便//存:private ThreadLocal<String> currentUser= new ThreadLocal<>();currentUser.set(userId);//使用:userId=currentUser.get();//清除:currentUser.remove();因为每个线程可能携带不同的user.

2020-05-25 17:14:51 156

原创 Eureka使用小案例

Eureka架构中的三个核心角色:服务注册中心:Eureka的服务端应用,提供服务注册和发现功能,就是刚刚我们建立的eureka-demo 服务提供者:提供服务的应用,可以是SpringBoot应用,也可以是其它技术实现,只要对外提供的是Rest风格服务即可。 服务消费者:消费应用从注册中心获取服务列表,从而得知每个服务方的信息,知道去哪里调用服务方。Eureka就好比是滴滴,负责管理、记录服务提供者的信息。服务调用者无需自己寻找服务,而是把自己的需求告诉Eureka,然后Eureka会把符合你.

2020-05-20 17:40:34 162

原创 mysql order by按照汉字拼音进行排序

直接对汉字对应的字段使用order by,查询的结果并不按照所预期的按照汉字对应拼音进行排列出现这个问题的原因是因为MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象。解决方法:修改查询语句:在查询语句的order by部分使用 CONVERT函数。select * from student uorder by CONVERT(u.name USING GBK) asc;...

2020-05-19 16:36:12 138

原创 group by 多个字段

select * from test1; 结果如下图:第二次查询 按照 b列来分组 代码如下select count(a),b from test1 group by b;第三次 按照 c列来分组 代码如下select count(a),c from test1 group by c;第四次 按照 b c两个条件来分组select count(a),b,c from test1 group by b,c;可以看出 group by 两...

2020-05-18 17:15:47 110

原创 一张表的多个字段关联另外一张的同一个字段(获取不同操作人名称)

请假需要层层审批,每次审核存储当前审批人id,需要关联查出对应的名称方式一:(复杂且性能不佳)ELECTabsence.id, ( SELECT name FROM users WHERE absence.first_user_id= users.id ) AS firstName, ( SELECT name

2020-05-15 11:56:09 758

原创 group by 和 order by 一起使用问题处理

group by 和 order by 一起使用时,会先使用group by 分组,并取出分组后的第一条数据,所以后面的order by 排序时根据取出来的第一条数据来排序的,但是第一条数据不一定是分组里面的最大数据。解决方案:可以先排序,再分组,再排序:使用子查询。SELECT r.id, r.uid, r.age , r.datatimeFROM (SELECT...

2020-04-30 16:12:30 667

原创 SQL执行顺序

SQL执行顺序:  (1)from  (2) join  (3) on  (4) where  (5)group by  (6) avg,sum.... (组函数)  (7)having  (8) select  (9) distinct  (10) order by ...

2020-04-30 15:58:11 54

转载 group by与having的用法

GROUP BY我们可以先从字面上来理解,GROUP表示分组,BY后面写字段名,就表示根据哪个字段进行分组,如果有用Excel比较多的话,GROUP BY比较类似Excel里面的透视表。GROUP BY必须得配合聚合函数来用,分组之后你可以计数(COUNT),求和(SUM),求平均数(AVG)等。常用聚合函数count()计数 sum()求和 avg()平均数 max()最...

2020-04-30 15:46:02 171

原创 Mysql数据库IF、IFNULL的使用

IF(expr1,expr2,expr3)如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL), 则 IF() 的返回值为 expr2;否则返回值则为 expr3select if(size=1,"大","小") as size from apple where id = '111'IFNULL(expr1,ex...

2020-04-28 14:45:57 91

转载 Linux安装mysql

以mysql-5.7.24为例:一 安装前准备1、检查是否已经安装过mysql,执行命令[root@localhost /]# rpm -qa | grep mysql从执行结果,可以看出我们已经安装了mysql-libs-5.1.73-5.el6_6.x86_64,执行删除命令[root@localhost /]# rpm -e --nodeps mysql-lib...

2020-04-07 16:39:39 53

原创 list stream 取两个List的交集 并集 差集

字符串list:public static void main(String[] args) { List<String> list1 = new ArrayList(); list1.add("1111"); list1.add("2222"); list1.add("3333"); List<String> list2 ...

2019-12-04 13:58:28 3176

原创 list stream按照对象多个属性进行排序

/*** 按照年龄正序*/personList.stream().sorted(Comparator.comparing(Person::getAge)).collect(Collectors.toList());/*** 按照年龄倒序 reversed()*/ personList.stream().sorted(Comparator.comparing(Person::g...

2019-11-12 16:25:26 3275

原创 list stream按对象多个属性对集合进行分组

Map<String,List<E>> result=list.stream.collect(Collectors.groupingBy(e -> e.getName() + e.getAge()));

2019-11-11 14:57:33 5300

原创 list.stream().mapToDouble求最大、最小、和、平均值

求数字最大、最小、和、平均值list.stream().mapToDouble(User::getAge).sum()//和list.stream().mapToDouble(User::getAge).max()//最大list.stream().mapToDouble(User::getAge).min()//最小list.stream().mapToDouble(User::ge...

2019-10-11 18:33:49 4581

转载 关机再开机 vs 重启哪个更有用

2019-10-11 12:50:45 58

原创 缓存的使用--从缓存中获取省市区

目前微服务是企业项目运用比较多,但经常存在需要频繁调用其他模块的情况(调上千次),会导致服务崩溃。比如我遇到的在导入文件时需要对省市区进行校验,数量到达两三千时就会出问题,所以将省市区时行缓存,每次从缓存中获取数据,减少服务的调用。表结构如下:level:1--省 2--市 3--区抽象接口:AbstractCacheServicepackage com.navasmar...

2019-10-11 10:29:16 614

原创 使用git命令统计代码提交行数

我们公司每个月会统计每个人千行bug率,所以,对统计代码行数研究了一下进行以下准备:1:进行你eclipse或者idea当前工程目录下2:本地安装了git管理工具3:在工程目录下右键选择【Git Bash Here】进入命令执行区,输入以下命令即可--统计某个人时间范围的提交代码git log --author="zhaoyalan" --since='2019-04...

2019-10-10 09:31:26 972

原创 list.stream distinct列表去重

//去重后数量List<Object> result= ObjectList.stream() .distinct() .count();//集合对象去重List<Object> result= ObjectList.stream() .distinct() .collect(Collectors.toList());//所有名字为空的去重集合List...

2019-10-09 10:56:13 592

原创 list.stream.map的使用

抽取对象中所有id的集合List<String> idList = ObjectList.stream.map(Object::getId).collect(Collectors.toList());

2019-10-09 10:24:57 4252

原创 list.stream.filter常用方式

在Java8中对集合的操作可以这样操作1.查找集合中的第一个对象Optional<Object> first= ObjectList.stream() .filter(a -> "hanmeimei".equals(a.getUserName())) .findFirst();2.返回符合查询条件的集合//所有名字叫hanmeimei的集合List<O...

2019-10-09 10:23:39 2104

原创 linux下修改文件名称

命令: mv 旧名称 新名称

2019-08-15 14:01:48 143

原创 spring boot+idea项目部署

超级简单的一个项目,只有一个controller:DemoApplication ServletInitializer是创建spring boot项目时自带的双击install打成jar包(pom文件里的打包方式写成jar)将jar文件上传到linux,进行启动spring boot内置了tomcat,直接用ip:8080/接口名即可访问...

2019-08-14 16:40:23 83

转载 Java中存储金额用BigDecimal

Java中存储金额用什么数据类型?示例1问, 结果是多少? 0.01?No! 结果是0.009999999999999998!为什么会这样呢? 因为float和double都是浮点数, 都有取值范围, 都有精度范围. 浮点数与通常使用的小数不同, 使用中, 往往难以确定. 常见的问题是定义了一个浮点数, 经过一系列的计算, 它本来应该等于某个确定值, 但实际上并不是! 金...

2019-07-29 17:34:24 388

原创 redis清除缓存--windows

1 进入redis安装目录2 运行redis-cli.exe3 执行 dbsize4 执行 flushall5 执行 exit

2019-07-01 15:51:45 210 1

原创 通过git将本地项目导入github

在github上新建仓库之后根据下面提示的命令进行导入(前提是本地已安装git客户端):1:安装git客户端2:点击git bash或者右键单击本地项目目录并选择git bash,进入git命令界面3:依次执行上面的命令提示某个文件过大不能上传,所以,删除了不用的文件,重新执行下面命令完成!!...

2019-05-14 15:57:11 655

原创 Navicat快捷键

Ctrl+Q 打开查询窗口Ctrl+/ 注释sql语句Ctrl+Shift +/ 解除注释Ctrl+R 运行查询窗口的sql语句Ctrl+Shift+R 只运行选中的sql语句F6 打开一个mysql命令行窗口Ctrl+L 删除一行Ctrl+N ...

2019-05-13 17:51:28 112

原创 后台(cmd)启动基础服务

背景在微服务开发中,有些基础服务特别多,如果都用开发工具启动,会给电脑带来负担,如果把基础服务(改动小)在后台启动,将会降低电脑的压力。操作如下在cmd界面输入如下格式命令即可: start /b java -Xmx256m -Xms256m -jar C:\xx\xxx\xxx.jar补充 如果基础服务进行了修改,需要重新打包并启动...

2019-05-13 17:11:14 633

原创 linux安装zookeeper步骤

一、Zookeeper下载 ​[root@localhost 下载]# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz 已发出 HTTP 请求,正在等待回应... 200 OK 长度:11833706 (11M) [application/oct...

2019-02-22 16:14:20 148

原创 linux修改可执行文件的权限

执行文件时显示权限不够:修改权限:文件由灰色变为绿色,然后可以执行

2019-02-19 16:05:10 4994

原创 linux的zip和unzip用法

一、安装zip unzip软件如果你如法使用unzip命令解压.zip文件,可能是你没有安装unzip软件,下面是安装方法获取安装列表命令: yum list | grep zip/unzip   安装命令: yum install zip/unzip    #提示输入时,请输入y;二、使用 # zip test.zip test.txt 它会将 test.txt 文件压缩...

2019-02-19 15:50:43 415

原创 用http post连接外部服务

一 接口说明二 实现### 2.1发送通知给外系统 url="http://ip:port/xxxx/standardOut/addStandard"; Map<String, String> parameters=new HashMap<>(); parameters.put("standardName", findOne.getStandar...

2019-02-11 11:24:49 559

转载 Linux下查看jdk信息

一、查看Jdk的安装路径whereis java(获取jdk所在目录)which java (java安装路径)echo $JAVA_HOME(环境变量–jdk目录)echo $PATH(环境变量–jdk bin目录)二、查看java版本信息java(执行.class文件)javac(java编译.java文件为.class文件)java -version(java版本信息)...

2018-12-28 16:05:46 853

转载 微服务架构下的分布式

微服务架构下的分布式微服务架构的演变单体架构SOA 架构微服务架构和分布式微服务架构的演变微服务是一种服务间松耦合的、每个服务之间高度自治并且使用轻量级协议进行通信的可持续集成部署的分布式架构体系。一般业务系统发展历程都是基本相似的,从单体应用到多应用,从本地调用到远程调用。单体架构单体架构是最简单的软件架构,常用于传统的应用软件开发以及传统 Web 应用。传统 Web 应用,一般是将...

2018-12-13 11:13:49 203

转载 常见通信协议区别——tcp、udp、rpc、http、socket

TCP/IP TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。 tcp和udp tcp和udp都是传输协议,主要区别是tcp协议连接需要3次握手,断开需要四次握手,是通过流来传输的,就是确定连接后,一直发送信息,传完后断开。udp不需要进行连接,直接把信息...

2018-08-01 22:16:02 1219

转载 RPC服务和HTTP服务对比

RPC(即Remote Procedure Call,远程过程调用)他们最本质的区别,就是RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹!RPC服务从三个角度来介绍RPC服务:分别是RPC架构,同步异步调用以及流行的RPC框架。RPC架构先说说RPC服务的基本架构吧。一个完整的RPC架构里...

2018-07-02 17:50:51 520

原创 用http连接外部服务

                        String faultSource=bizFaultinfo.getFaultSource(); if("03".equals(faultSource)||"04".equals(faultSource)){ String telid=null; if("03".equals(faultSource)){//电话银行...

2018-03-29 16:41:55 394

原创 搭建个人云服务器

创建新浪云计算应用申请账号我们使用SAE新浪云计算平台作为服务器资源,并且申请PHP环境+MySQL数据库作为程序运行环境。申请地址为:注册地址:http://www.sinacloud.com/public/login/inviter/gaimrn-mddmzeKWrhKWvrICun2Z_eIlnf6Kqdg.html直接点击上述网址,可以看到右上角微博登录的链接。点击进入之后,使用新浪微博账...

2018-03-27 16:31:42 10613 1

阿里巴巴Java开发手册v1.2.0-1 高清完整PDF版

阿里巴巴Java开发手册v1.2.0-1

2017-05-23

html5shiv.js

2017-03-31

respond.js

2017-03-31

bootstrap ie9\ie8

解决bootstrap不兼容ie8和ie9问题

2017-03-31

30岁后程序员的发展方向

发表于 2017-10-09 最后回复 2017-10-14

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