8 JAVA菜鸟程序员

尚未进行身份认证

我要认证

不要在该奋斗的年纪选择了安逸,只有度过了一段连自己都被感动的日子,才会变成那个最好的自己。

等级
TA的排名 3w+

mybatis-generator生成工具(最新版,非gui版本)

一、背景 mybatis现如今已经成为了我们使用比较频繁的持久层了,但是我们在开发的过程中,如果手动的去写持久层的东西比较耗时和麻烦,虽然GitHub已经有gui版本的生成工具了,虽然可以减轻一部分工作量;但是在使用起来还是不太方便!所以自己重构了一套既可以生成前台页面,又可以生成mybatis持久层的工具,分享出来,希望能够帮助到大家!二、Mybatis-GUI版本回顾 前几天去github上下载了一个gui版本的生成工具使用了下,界面比价简洁(如图一),使用起来也很...

2020-09-16 10:23:18

支付宝当面付

一、背景目前公司支付平台集成了支付宝app、微信app、支付宝小程序、微信小程序、支付宝H5(扫码-主扫)、微信H5(扫码-主扫)、云闪付、建设钱包付等多种支付方式,今天给大家分享支付宝当面付的支付流程。二、代码目前我们当面付是把支付宝和微信集成在一个Controller里面的,今天先拆分下,分享支付宝当面付,下面是主要的代码。@RequestMapping("/createOrder") public String creatOrder(@Valid FaceToFaceCrea

2020-07-03 15:31:42

支付宝H5支付

一、背景最近在公司做支付平台相关的工作,涉及到微信、支付宝、建设银行、平安银行、云闪付相关的支付对接,在这里总结下在实际工作中涉及到的与第三方渠道的对接,以及如何融入到自己项目的业务流程中。今天先总结下支付H5的支付流程。由于H5支付我们这边目前集成了微信、支付宝和银联,这个三个渠道支付,今天主要是总结支付宝H5支付,所以微信和银联的处理先省去了。二、技术实现下面这个部分代码是通过扫码付进入的(由于我们的业务是针对社康和医院的扫码支付)。 @RequestM...

2020-06-30 16:11:39

10大排序算法时间复杂度和空间复杂度总结

中文名称 英文名称 平均时间复杂度 最坏时间复杂度 最好时间复杂度 空间复杂度 稳定性 选择排序 Selection n2 n2 n2 1 不稳 冒泡排序 Bubble ...

2020-06-02 15:38:01

git统计代码行数

git log --since=2018-01-01 --until=2020-05-25 --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'注:since和until分别表示开始和结束时间,可根据实际情况修改...

2020-05-25 18:05:53

SpringBoot整合Dubbo+zookeeper(吐血整理)

一、背景 以前用spring单独整合过Dubbo+zookeeper,因为用springboot已经好长时间,而且配置也方便,想着重新用springboot整合下Dubbo+zookeeper;各种心酸,因为一个注解的问题导致消费者无法注册到Dubbo中,心累!后面会提到的。二、前期准备1.zookeeper安装下载地址:链接:https://pan.baidu...

2020-04-16 18:40:51

多线程处理大量数据

一、背景最近在在建设银行代发功能,需要批量处理代发数据,线性处理效率比较低,大概1秒钟一条数据;然后考虑用多线程处理。刚开始使用的是Executors.newFixedThreadPool(10)这种方式创建固定数量线程池;后面考虑到数据量大的时候,可能队列装不下,导致异常,然后换成了ExecutorService executorSer = new ThreadPoolExecutor(10...

2020-04-15 18:12:34

常用正则表达式

public final static String EMAIL = "([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+";public final static String EMAIL_MSG = "请输入正确的邮箱";public final static String PHONE = "^[0-9-]{6,40}$";public...

2020-04-14 21:28:30

java 元分互转

/** * 将金额从元转换为分 * @param amount 金额(单位:元) * @return 金额(单位:分) */ public static String changeY2F(String amount){ String currency = amount.replace("\\$|\\¥\\,", ""); ...

2020-04-08 10:00:52

SpringBoot的三种启动方式

1、背景 这几天在看面试题,看到了有关SpringBoot的相关知识点,其中有一个问题是:“SpringBoot有哪几种启动方式?”。一下子懵逼了,脑子里面只记得在本地启动的时候是在Main方法中直接启动的(因为我们的测试环境是自动安装部署的,生产环境是运维负责安装部署的)。2.启动方式有三种启动方式: 1)Main方法启动:这种方式一般在本地测试的时候用的比较...

2020-04-02 11:14:16

Shell学习

1.shell脚本以#!/bin/bash开头2.小练习 vi test.sh #!/bin/bash echo "hello world" #屏幕上打印出“hello world” mkdir /home/dengchao/temp #创建temp目录 touch /home/dengchao/temp/a.txt #创建a.txt文件3...

2020-04-01 11:20:06

Nginx学习

nginx安装1.yum install gcc-c++2.yum -y install pcre pcre-devel3.yum -y install zlib zlib-devel4.yum -y install openssl openssl-devel5.wget(下载ngixn安装包)6.解压...

2020-04-01 11:18:00

mongoDB学习笔记

1.mongodb启动./mongod --dbpath=/usr/local/mongo/data/db/ --logpath=/usr/local/mongo/data/logs --fork --port 27017解释:--dbpath:数据库路径--logpath:日志路径--fork:后台运行--port:端口(默认端口:27017)2.正常关闭mongodb...

2020-02-27 19:10:42

mongoDB部署安装

一、安装包下载到mongoDB观望下载安装包:https://www.mongodb.com/download-center/community本文使用的mongoDB暗装包版本为:mongodb-linux-x86_64-3.0.6.tgz二·、安装1.将下载到服务器上的安装包解压 tar zxvf mongodb-linux-x86_64-3.0.6.tgz 2.将解...

2020-02-26 11:29:10

reids安装部署

一、安装包下载下载地址:http://download.redis.io/releases/redis-5.0.7.tar.gz直接在linux上在线下载 wget http://download.redis.io/releases/redis-5.0.7.tar.gz二、安装1、将下载好的安装包解压到/usr/local/redis目录下tar -zxvf re...

2020-02-17 10:48:02

Java设计模式-适配器模式

1 初步认识适配器模式的定义  将一个类的接口转成客户期望的另外一个接口。适配器模式使得原本由于接口不匹配而不能一起工作的那些类可以一起工作。大白话  适配器模式就像旅行插座转换器(图1)、Type-c转VGA转接口(图4)一样。 图1. 图片来源网络 ...

2020-01-14 11:28:04

Java设计模式-策略模式

介绍策略模式的思想是提取算法或者行为,对算法或者策略进行封装成类,并装配到一个环境类(context)上,使得环境类可以使用不同的算法或者策略来解决不同的问题。策略模式是一种行为型设计模式。这种设计模式解决的是硬编码场景中的算法扩展问题。针对某一个场景,可能存在多个算法来进行处理。这多个算法,可能是写在一个工具类的不同的方法中,也有可能是写在一个方法中根据不同的条件进行if-else的选择...

2020-01-10 16:08:13

JAVA设计模式-观察者模式

1、初步认识观察者模式的定义:  在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。大白话:  其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。2、这个模式的结构图3、可以看到,该模式包含四个角色抽象被观察者角色:也就是一个抽象主题,它把所有对观察者对象的引用保存在一个集合中,...

2020-01-10 14:57:23

缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题

一、缓存雪崩缓存雪崩我们可以简单的理解为:由于原有缓存失效,新缓存未到期间(例如:我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期),所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。缓存正常从Redis中获取,示意图如下:缓存失效瞬间示意图如下:缓存失效时的雪崩...

2020-01-08 18:01:33

缓存穿透、缓存击穿、缓存雪崩区别和解决方案

一、缓存处理流程前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。二、缓存穿透描述:缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导...

2020-01-08 17:22:03

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享小兵
    分享小兵
    成功上传3个资源即可获取