自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

段朝旭的博客

世上有两种设计软件的方法。一种是尽量的简化,以至于明显没有任何缺陷。而另一种是尽量复杂化,以至于找不到明显的缺陷。如果你交给某人一个程序,你将折磨他一整天;如果你教某人如何编写程序,你将折磨他一辈子。

  • 博客(145)
  • 论坛 (14)
  • 收藏
  • 关注

原创 Spring batch 如此优秀的框架,你造吗?嘿嘿嘿~

1 前言Spring Batch是一个轻量级的、完善的批处理框架,作为Spring体系中的一员,它拥有灵活、方便、生产可用的特点。在应对高效处理大量信息、定时处理大量数据等场景十分简便。结合调度框架能更大地发挥Spring Batch的作用。2 Spring Batch的概念知识2.1 分层架构Spring Batch的分层架构图如下:通过例子讲解Spring Batch入门,优秀的批处理框架可以看到它分为三层,分别是: Application应用层:包含了所有任.

2020-11-03 17:08:09 16

原创 java中的静态代理和动态代理

1. 代理模式代理模式是一种比较好的理解的设计模式。简单来说就是我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。代理模式的主要作用是扩展目标对象的功能,比如说在目标对象的某个方法执行前后你可以增加一些自定义的操作。举个例子:你的找了一小红来帮你问话,小红就看作是代理我的代理对象,代理的行为(方法)是问话。代理模式有静态代理和动态代理两种实现方式,我们 先来看一下静态代理模式的实现。...

2020-10-27 11:09:36 26

原创 在spring boot中使用Guava基于令牌桶实现限流(简单易用)

限流说详细了,名堂也多。这种算法那种算法,这种策略那种策略的。没有绝对的银弹。都要结合实际的场景来实现。最简单的,使用Google的Guava,几行代码。就可以优雅的对一个接口完成限流。令牌桶算法在springboot中使用Guava基于令牌桶实现限流通俗的理解就是,有一个固定大小的水桶,水龙头一直按照一定的频率往里面滴水。水满了,就不滴了。客户端每次进行请求之前,都要先尝试从水桶里面起码取出“一滴水”,才能处理业务。因为桶的大小固定,水龙头滴水频率固定。从而也就保证了数据接口的访问流量。

2020-10-24 19:33:46 53

原创 二进制,位运算,以及java中的基本数据类型的存储

目录JDK自带的进制转换位运算java中的整数类型大数类 BigIntegerjava中的浮点类型​精确小数 BigDecimaljava中的字符型和布尔型char类型的存储和计算boolean 类型的存储JDK自带的进制转换java中可以直接声明二进制、八进制、十进制、十六进制例如:二级制: int bin = 0b1100010;八进制: int oct = 0142;十进制: int dec = 98;十六进制: int hex = 0x

2020-10-20 14:23:48 33

原创 springboot项目整合quartz动态创建,停止,恢复,删除定时任务,整合swagger3.0

springboot项目整合quartz动态创建,停止,删除定时任务一、添加quartz依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId>...

2020-10-15 14:29:51 167 4

原创 彻底吃透java8函数式编程

Lamda表达式箭头左边是参数列表,右边是函数体。方法引用 : class::method静态方法引用: User::combine 参数方法引用: String::indexOf 实例方法引用: user::getUserName 构造器引用: User::newjava函数式接口有且仅有一个未实现的非静态方法的接口叫做“函数式接口”interface IProducer<T>{ T produce();}// ()=>User.bu...

2020-10-13 14:28:27 65 2

原创 java并发包之ExecutorCompletionService、Exchanger、Phaser使用

ExecutorCompletionService类当我们通过Executor提交一组并发执行的任务,并且希望在每一个任务完成后能立即得到结果,有两种方式可以采取:方式一:通过一个list来保存一组future,然后在循环中轮训这组future,直到每个future都已完成。如果我们不希望出现因为排在前面的任务阻塞导致后面先完成的任务的结果没有及时获取的情况,那么在调用get方式时,需要将超时时间设置为0static class Task implements Callable<St.

2020-10-10 13:46:49 21

原创 idea快捷键指南:让你开发效率蹭蹭蹭的上涨

没有写使用说明的就表示没有特别的注意事项直接用就可以了。 Ctrl+Shift+A 说明:IDEA 把所有的可以执行的操作都定义为action,也就是一个动作。它定义的快捷键相当多,所以使用此快捷键,你不需要记住快捷键,你只需要输入你想要的操作的英文,就可以迅速找到你想要执行的操作。 说明:勾选Include non-project items后,搜索范围将包括依赖的jar包 下文的快捷键全是基于windows平台的,当然Mac也有相对应的快捷键...

2020-10-09 18:28:45 22

原创 Spring boot集成 minio 文件服务器

一、下载启动minio文件服务器https://dl.min.io/server/minio/release/windows-amd64/minio.exe 启动minio文件服务器minio.exe server D:\Photos访问localhost:9000,输入 minioadmin ,minioadmin登录成功,可看到如下界面:二、添加依赖 <dependency> <groupId>io.mini..

2020-10-04 15:48:23 108

原创 大话java近代版本特性

我们都知道,在 Java 9 之后,每六个月就会发布一次新版本。下面的 Java 发布周期可以看到,从 95 年发布的 JDK Beta 至今的 25 年时间,已经发布了 16 个版本。然而从 17 年开始,短短 3 年时间就发布了 6 个版本,占比 37.5% 。因此更多、更新鲜的特性也更集中在最近几年:一、Java 的发布周期1995 年 alpha 和 beta Java 公开版本发布,取名为 WebRunner。1996.1.23 Java 第一个版本发布,取名叫 Oak。在

2020-09-29 12:24:00 173

原创 spring boot项目集成jwt实现权限控制

前面一篇介绍了springboot同时集成shiro和jwt实现的登录检验,权限控制功能,但是我们有时候仅仅需要进行一个登录校验而不需要权限的控制,那么我们就只需要集成jwt即可。一、编写用户实体类package com.sf.gis.boot.rcboot.jwt;import lombok.AllArgsConstructor;import lombok.Data;import lombok.EqualsAndHashCode;import lombok.NoArgsConstruc

2020-09-27 13:38:30 44

原创 黑魔法!徒手撸啊撸Spring Boot Starter启动器

我们在项目中经常会引用一些spring-boot-starter-xxx之类的依赖,然后就在配置文件中进行配置 ,例如:spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver type: com.zaxxer.hikari.HikariDataSource url: jdbc:mysql://10.82.232.149:3306/rc?characterEncoding=UTF-8&useU..

2020-09-27 12:40:55 76

原创 Springboot通用配置之(集成Caffeine缓存之王)

一、添加maven依赖 <dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> <version>2.8.5</version> </dependency>二、代码方式配置Bea

2020-09-24 11:40:34 66

原创 springboot项目通用配置之(mybatis分页插件,swagger2文档,AOP切面控制台打印请求url输入输出参数)

mybatis分页插件package com.sf.gis.boot.rcboot.config;import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/** * @author.

2020-09-21 09:23:41 35

原创 springboot项目通用配置之(全局异常处理,跨域请求配置)

package com.sf.gis.boot.rcboot.config;import com.sf.gis.boot.rcboot.util.JsonResponse;import lombok.extern.slf4j.Slf4j;import org.springframework.web.bind.annotation.ControllerAdvice;import org.springframework.web.bind.annotation.ExceptionHandler;im.

2020-09-21 09:20:07 516

原创 spring boot项目整合shiro,jwt实现权限控制(全网最详细哦!)

大家好,最近在忙着做权限控制项目,少有发布blog了,领导让我实现一个用户,角色,权限细粒度的权限控制功能集成到项目中,我经过了一定的调研之后,使用shiro,jwt实现了该功能,以此篇blog记之。shiro介绍Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了。对于它

2020-09-16 14:36:35 164 5

原创 JVM内存结构总结

前言 了解Java中的对象、变量等存放的内存区域十分重要 本文将全面讲解Java虚拟机中的内存模型 & 分区,希望你们会喜欢 目录1. 内存模型 & 分区Java虚拟机在运行Java程序时,会管理着一块内存区域:运行时数据区在运行时数据区里,会根据用途进行划分: Java虚拟机栈(栈区) 本地方法栈 Java堆(堆区) 方法区 程序计数器 下面,我将详细介绍每个内存模型分区2...

2020-09-09 22:11:37 16

原创 MySQL:互联网公司常用分库分表方案汇总,它不香吗?

一、数据库瓶颈 IO瓶颈 CPU瓶颈 二、分库分表 水平分库 水平分表 垂直分库 垂直分表 三、分库分表工具四、分库分表步骤五、分库分表问题 非partition key的查询问题 非partition key跨库跨表分页查询问题 扩容问题 六、分库分表总结七、分库分表示例一、数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数...

2020-09-09 13:44:35 25

原创 springboot项目,mybatis自定义sql+CompletableFuture,实现根据指定表和字段实现批量分页进行字段加密(更新)

我们在开发项目的过程中,出于系统安全性的考虑,时常会把一些敏感数据进行加密处理,今天给大家分享一个使用mysql,mybatis-plus,CompletableFuture 实现的批量分页读取并加密表字段的代码逻辑。不废话,直接上代码。一、首先是controller层package com.sf.gis.boot.realperson.controller;import com.sf.gis.boot.realperson.service.EncryptService;imp...

2020-09-05 13:38:30 78

原创 华为云线上获得证书

一、 web前端毕业证书一阶段二阶段三、华为云享专家证书

2020-08-26 09:26:45 169 4

原创 华为云官网ClassRoom.html 网页 html,css代码实现

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <meta http-equiv="X-UA-Co...

2020-08-24 09:23:11 537

原创 Sharding jdbc 实现分库分表 及 minio 文件系统上传下载删除文件的使用 demo 入门级示例

demo 地址 :https://gitee.com/dzxmy/sharding-jdbc-demo欢迎查阅,记得给star哦!

2020-08-15 10:25:49 46

原创 36个spring-boot注解详细解析,一目了然

1.@Component作用及范围:把对象加载到spring容器中,最基础的存在,很多的注解都是继承它的,只有一个属性值,默认值是“”,例子或源码:@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Indexedpublic@interfaceComponent{Stringvalue()default"";}2.@Service作用及范围:一般用于s...

2020-08-10 11:53:25 78

原创 java使用线程池实现批量数据同步

一、编写定时任务package com.sf.map.tool.station;import com.sf.map.tool.station.mapper.DeviceMapper;import com.sf.map.tool.station.service.DataSyncService;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import

2020-08-10 09:16:48 127

原创 java使用axios 或者 hutool-http包下的SoapClient 实现webservice服务调用

在项目开发过程中,有时会用到 webservice 服务,今天给大家带来一个简单好用的 soap请求 工具类。里面用到了两个第三方依赖,大家可以自主进行选择,推荐使用hutool-http包的SoapClient一、项目pom文件添加相关依赖 <!--axis依赖--> <dependency> <groupId>org.apache.axis</groupId> <artif

2020-08-05 16:06:48 433

原创 java 坐标转换工具类(很全面哦!wgs84.... gcj02(即火星坐标).... )

今天给大家分享一个java实现的地图坐标系经纬度转换工具类/* * Copyright (c). All rights reserved. * Use is subject to license terms. */package com.sf.gis.boot.utils;import org.apache.commons.codec.binary.Base64;import java.io.*;import java.math.BigDecimal;import java.ne.

2020-08-05 15:57:12 237 2

原创 js实现地图经纬度加解密

我们在做地图服务的时候,为了安全和效率的问题,时长会将地图上点,线,面的经纬度点集合进行加解密操作。convert.js 经纬度加解密import SFMap from '../views/map-vector/sdk/'/** * 解密经纬度 * @param {*} list */export const convertExtinfo = (list) => { if (list && list.length > 0) { ...

2020-08-05 15:47:48 86

原创 Koa 框架 (基于 node.js平台的下一代web开发框架)

一、安装koa在安装完成node.js 之后 执行如下命令全局安装koacnpm install koa-generator -gkoa2 -h 命令 列出koa 命令的帮助文档二、创建 koa项目koa2 peojectname生成的项目 目录:执行 npm start ,访问 localhost:3000...

2020-07-30 17:11:34 74

原创 Java程序员必备基础结构图

前言最近看了深入理解Java虚拟机第三版,整理了一些基础结构图,算是比较全的了,做一下笔记,大家一起学习。1.Java虚拟机运行时数据区图JVM内存结构是Java程序员必须掌握的基础。程序计数器 程序计数器,可以看作当前线程所执行的字节码的行号指示器 它是线程私有的。 Java虚拟机栈 线程私有的,生命周期与线程相同。 每个方法被执行的时候都会创建一个"栈帧",用于存储局部变量表(包括参数)、操作数栈、动态链接、方法出口等信息。 局部变量表存放各

2020-07-25 22:36:57 124

原创 JavaScript常用API合集汇总

今天这篇文章跟大家分享一些JavaScript常用的API代码,有DOM操作、CSS操作、对象(Object对象、Array对象、Number对象、String对象、Math对象、JSON对象和Console对象)操作,值得收藏。一、节点1.1 节点属性Node.nodeName//返回节点名称,只读Node.nodeType//返回节点类型的常数值,只读Node.nodeValue//返回Text或Comment节点的文本值,只读Node.textContent//...

2020-07-13 11:56:16 85

原创 SQL语句大全,所有的SQL都在这里!

1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server---创建 备份数据的deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'---开始 备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create table tabna...

2020-06-02 11:31:38 95

原创 超全面的权限系统设计方案!

权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题。目前在公司负责权限这块, 所以对权限这块的设计比较熟悉, 公司采用微服务架构, 权限系统自然就独立出来了, 其他业务系统包括商品中心, 订单中心, 用户中心, 仓库系统, 小程序, 多个 APP 等十几个系统和终端1. 权限模型迄今为止最为普及的权限设计模型是 RBAC 模型, 基于角色的访问控制(Role-...

2020-05-14 14:15:44 89

原创 基于 Spring Boot 的项目骨架

最近使用Spring Boot 配合 MyBatis 、通用Mapper插件、PageHelper分页插件 连做了几个中小型API项目,做下来觉得这套框架、工具搭配起来开发这种项目确实非常舒服,团队的反响也不错。在项目搭建和开发的过程中也总结了一些小经验,与大家分享一下。在开发一个API项目之前,搭建项目、引入依赖、配置框架这些基础活自然不用多说,通常为了加快项目的开发进度(早点回家)还需要封装一些常用的类和工具,比如统一的响应结果封装、统一的异常处理、接口签名认证、基础的增删改差方法封装、基础代.

2020-05-12 15:58:21 70

原创 9 种分布式 ID 生成方式,面试官有点懵了

一、为什么要用分布式ID?在说分布式ID的具体实现之前,我们来简单分析一下为什么用分布式ID?分布式ID应该满足哪些特征?1、什么是分布式ID?拿MySQL数据库举个栗子:在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。但随着数据日渐增长,主从同步也扛不住了,就需要对数据库进行分库分表,但分库分表后需要有一个唯一ID来标识一条数据,数据库的自增ID显然不能满足需求;特别一点的如订单、优惠券也...

2020-05-12 15:49:57 88

原创 绝了!Dataway让Spring Boot不在需要Controller、Service、DAO、Mapper

最近看到了 Dataway 这个让开发者无需开发任何代码就能配置一个满足需求的接口的”神器“,感觉还挺意思的。看了 Github 之后,发现 star 数量并不多。但是,官方也说了这东西目前已经是最稳定的版本。并且,有人分享过一系列的文章。这篇文章就是转载的其中一篇,原文地址:https://my.oschina.net/ta8210/blog/3234639,如果你想阅读一系列文章的话可以在作者的主页找到,地址:https://my.oschina.net/ta8...

2020-05-12 09:22:03 193

原创 分布式系统之全局唯一ID生成策略 (UUID,基于mysql的replace into基于redis生成全局唯一id,Twitter的分布式自增id雪花算法 )

通过在 生产生活中,分布式的系统以及大数据量的存储和读取都离不开 ID的 唯一性,例如订单号,快递单号,商品编号等等。通常我们都会采用 uuid ,mysql replace into ,一、 UUID直接使用 java 代码 本地生成,没有网络消。 但是会存在以下的缺点:1. 无序,无法预测他的生成顺序,不能生成递增有序的数字。首先分布式id 一般都会作为主键,但是mysql官...

2020-05-08 16:19:02 166

原创 spring cloud alibaba seata 分布式事务组件

一、 Seata 简介Seata 是 一款开源的分布式事务解决方案,致力于在微服务架构下 提供高性能和简单易用的分布式事务服务.官方文档:http://seata.io/zh-cn/Seata术语(1 -ID + 3 模型套件)ID - Transaction ID 全局唯一的事务IDTC - 事务协调者维护全局和分支事务的状态,驱动全局事务提交或回滚。TM -...

2020-05-07 21:32:21 154

原创 spring cloud alibaba sentinel 流控,服务降级,服务熔断组件

一、 sentinel 主要特性二、sentinel 的下载及安装https://github.com/alibaba/Sentinel/releases下载 sentinel-dashboard-1.7.0.jar 前提是 java8环境OK,8080端口未被占用。启动 sentinel , java -jar sentinel-dashboard-1.7.0....

2020-05-06 16:44:43 69

原创 spring cloud alibaba nacos 注册中心,配置中心组件

一、 nacos 下载及安装nacos 官网下载nacos-server-1.2.0-beta.1.tar.gz 解压执行 startup.cmd 命令访问 localhost:8848/nacos账号: nacos密码: nacos二、创建cloudalibaba-provider-payment9001 项目‘1.添加 spring cloud aliba...

2020-05-05 16:56:33 74

原创 Vue、Vuex、MintUi、ElementUi 基础

一、搭建vue的开发环境(1)安装node.js(2) 安装脚手架工具,官方命令行工具 npm install --global vue-cli / cnpm install --global vue-cli(3) 创建项目 vue init webpack vue-demo01创建过程 看到 ESlint 字样,输入n ,不开启代码检查,否则代...

2020-02-27 23:24:36 51

空空如也

linux 上面部署redis,在windows本地项目中连接不上?怎么回事?

发表于 2017-11-05 最后回复 2020-04-25

java应用高并发频繁报Unable to acquire JDBC Connection

发表于 2019-02-22 最后回复 2019-02-22

SpringMVC的Controller接收中文参数乱码问题

发表于 2017-11-24 最后回复 2017-11-24

sso单点登录问题

发表于 2017-09-19 最后回复 2017-11-24

java 多线程处理 问题

发表于 2017-09-01 最后回复 2017-09-19

javaee linux 的版本使用问题

发表于 2017-08-29 最后回复 2017-09-19

关于java 操作 poi 导出 excel 文件的问题,求大神解答

发表于 2017-08-28 最后回复 2017-08-29

求助大神,关于java web 开发?

发表于 2017-06-22 最后回复 2017-08-29

java数据存储

发表于 2017-06-06 最后回复 2017-08-29

求助大神!关于支付宝接口调用问题!!

发表于 2017-05-24 最后回复 2017-06-06

java多线程的问题,大家有谁知道吗?

发表于 2017-03-23 最后回复 2017-06-06

小小程序题,关于final long 类型的变量

发表于 2017-03-23 最后回复 2017-06-06

java问题,快来看看,大神们

发表于 2017-03-27 最后回复 2017-06-06

关于在jsp页面中想要调用 spring注释管理的bean的问题

发表于 2017-05-23 最后回复 2017-06-01

空空如也

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

TA关注的人 TA的粉丝

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