代码文档
文章平均质量分 68
易佰菜鸟
记录日常工作、学习get的技术
展开
-
Spirng的事务传播
总结:方法A调用方法B:如果A和B方法在同一个类中:如果A加@Transactional注解,B加不加@Transactional注解,事务是有效的,则AB在同一事务中。如果A不加@Transactional注解,B加不加@Transactional注解,事务都是无效的。如果A和B不在同一个类中:如果A加@Transactional注解,B加不加@Transactional注解,事务是有效的。如果A不加@Transactional注解,B加了@Transactional注解,只有B是有原创 2022-03-31 14:02:12 · 304 阅读 · 0 评论 -
LengthFieldBasedFrameDecoder解码器自定义协议解决粘包、拆包问题
LengthFieldBasedFrameDecoder解码器自定义协议解决粘包、拆包问题原创 2022-02-17 18:55:33 · 2325 阅读 · 1 评论 -
Spring Cloud灰度发布方案----ribbon框架
Spring Cloud灰度发布方案----ribbon框架Spring Cloud灰度发布方案(自定义路由规则)请移步:https://blog.csdn.net/han949417140/article/details/121420529一、简介1.1 不停机部署服务策略介绍蓝绿部署蓝绿部署的模型中包含两个集群A和B1、在没有上线的正常情况下,集群A和集群B的代码版本是一致的,并且同时对外提供服务。2、在系统升级的时候下,我们首先把一个集群(比如集群A)从负载列表中摘除,进行新版本的原创 2021-11-22 15:10:02 · 1431 阅读 · 0 评论 -
Spring Cloud灰度发布方案----自定义路由规则
灰度发布的核心就是路由转发,如果我们能够自定义网关==>服务a、服务a==>服务b中间的路由策略,就可以实现用户引流,灰度发布。原创 2021-11-22 11:45:32 · 2677 阅读 · 0 评论 -
java大数据量导出csv文件并压缩
java大数据量导出csv文件并压缩java使用POI大数据量导出excel一般会存在以下几个问题:一次从数据库查询出这么大数据,查询缓慢查询数据量过大时会内存溢出解决方案:分页查询数据,比如一次查询5w数据,生成多个excel文件大数据量生成excel文件过慢解决方案:生成excel改为生成csv文件本文主要 介绍java 导出csv文件csv文件导出工具类package com.yss.datamiddle.util;import javax.servlet.Servl原创 2021-11-17 13:55:56 · 5899 阅读 · 3 评论 -
springboot自定义异常处理
项目中我们是一定要碰到的情况就是无论在控制层,业务层还是Dao层都需要校验一些数据,无论是前端传过来的,还是经过业务处理判断的,如果不合法需要友好的提示给用户,否则用户收到一个NullPointerException这玩意,他可能会很懵逼,再说直接将错误的信息直接暴露给用户,这样的体验也不是太好。通过统一异常拦截,可以手动抛出异常,异常拦截格式化异常返回数据。一、集成统一异常处理响应结果统一封装类package com.hld.free.common;import io.swagger.原创 2021-10-22 13:30:40 · 671 阅读 · 0 评论 -
aop+自定义注解实现接口权限控制
实现思路:控制层添加自定义权限注解 @PreAuthorize(“system:menu:list”),然后权限组件通过AOP和反射原理获取权限注解中配置的权限标识,与菜单维护的权限标识做匹配,一致则放行,不一致则返回未授权信息菜单表维护权限标识字段:permsCREATE TABLE `sys_menu` ( `menu_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID', `menu_name` varchar(50) NOT .原创 2021-10-22 11:25:13 · 874 阅读 · 0 评论 -
mysql统计本周、本月、近一年数据并分组
最近碰到一个需求是统计某张表的数据,统计时间维度分别为当天、本周、本月、近三月、近一年,其中当天的统计单位为时(h)、本周和本月统计单位为天(d)、近三月和近一年统计单位为月(m),如果当前时间单位没有数据置为0。这里记录一下实现方法。原创 2021-09-24 10:43:29 · 1349 阅读 · 0 评论 -
springboot2.x集成redis 发布订阅监控过期key,实现超时订单处理
场景方案:当我们的平台上的用户下了订单,但是没有付款时,我们一般会给这个订单保存 一定时间 ,过期之后,就要对这个订单进行做废处理,把订单上的商品的库存 归还。方案:它主要是用了redis的发布订阅机制,redis的notify-keyspace-events 会自动发布一个频道 频道的名称有固定的格式,这里我们监听 键的失效事件 的订阅频道名是 __keyevent@0__:expired 订阅了这个频道,当redis的 第0号数据库中有键名失效时,就会收到一个推送,我们就利用这个特点原创 2021-08-06 11:08:45 · 839 阅读 · 0 评论 -
springboot2.x+shardingjdbc分库分表实现
一、概览1.1 简介ShardingSphere-JDBC定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务。 它使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。适用于任何基于 JDBC 的 ORM 框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template 或直接使用 JDBC。支持任何第三方的数据库连接池,如:DBCP, C3P0原创 2021-06-04 17:23:31 · 14014 阅读 · 1 评论 -
POI实现word转html
最近公司有需求word转html,这里记录一下方便以后使用。添加maven依赖 <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-spring-boot-starter</artifactId> <version>4.2.0</version> .原创 2021-05-19 11:31:25 · 2043 阅读 · 2 评论 -
java解析office数学公式
一、概述公司的项目遇到一个需求是从office word中导入数据回显到页面当中,里面穿插着一些数学公式,又不想使用图片的方式存储数学公式。所以敲定了将公式转换成latex表达式,然后前端使用MathJax渲染出数学公式的方案。1.1 所需资源名称地址描述mmltx.xslhttps://sourceforge.net/projects/xsltml/files/xsltml/MathML转LaTex工具MML2OMML.XSLhttps://download.cs原创 2021-05-08 13:13:52 · 3686 阅读 · 5 评论 -
springcloud+seata1.4.0+nacos整合详细教程
seata分布式事务本文档默认您已经具备如下环境:Nacosmysql一、环境准备1.1 资源名称地址Nacos2.0https://github.com/alibaba/nacos/tags注册中心、配置中心seata1.4.0http://seata.io/zh-cn/blog/download.html分布式事务项目示例https://github.com/HLDBanana/seata_demoseata示例项目1.2 seata介转载 2021-04-27 15:54:58 · 2280 阅读 · 9 评论 -
rocketmq安装使用教程
rocketmq安装使用教程本文假设您已经完成了下列前序步骤:docker安装配置一、docker安装rokcetmq1.1 安装namesrvdocker pull rocketmqinc/rocketmq:latest/** - 安装namesrv - -d # 后台运行 - -p #设置默认端口,这里rocketmq默认9876端口 - -v #设置映射本地目录到容器内的目录,这个注意我都是把本地 的/usr/local/docker/rocketmq/**映射到容原创 2020-10-13 17:49:03 · 1090 阅读 · 1 评论 -
Java多线程-主线程等待子线程结束
最近有个项目需求是线程池子线程进行数据处理、入库,所有子线程运行完成之后需要汇总子线程运行数据。这里简单介绍一下主线程等待子线程结束的集中方式原创 2020-09-18 16:47:20 · 3713 阅读 · 0 评论 -
java.lang.UnsupportedOperationException解决方法
在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的,通过看源码发现问题,并写测试程序如下。代码块:public class ListTest { public static void main(String[] args) { String[] array = {"1","2","3","4","5"}; List<String> list = Arr转载 2020-07-30 10:14:25 · 6440 阅读 · 0 评论 -
easyPoi使用教程
添加pom.xml依赖<dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-spring-boot-starter</artifactId> <version>4.1.0</version></dependency>ExcelUtils导入导出excel工具类package com.yss.dat.原创 2020-07-09 10:47:34 · 3635 阅读 · 0 评论 -
feign+hystrix整合
feign+hystrix整合一 项目准备pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:s...原创 2020-04-09 14:00:08 · 846 阅读 · 0 评论 -
springboot2.x整合fastDfs
如果需要自己搭建文件服务器请移步:fastDfs安装配置教程springboot整合fastDfspom.xml添加配置 <!-- https://mvnrepository.com/artifact/com.github.tobato/fastdfs-client --> <dependency> <g...原创 2020-03-27 17:39:10 · 1081 阅读 · 0 评论 -
java后台工具类调用api接口,解析数据
httpclient后台调用接口,解析数据一 、 引入jar包 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> ...原创 2019-05-10 13:56:26 · 4011 阅读 · 3 评论 -
Springboot整合swagger2
Springboot整合swagger2一、依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version></dependency...原创 2019-07-12 10:27:03 · 365 阅读 · 0 评论 -
SpringCloud教程|第一篇:搭建eureka注册中心
一、搭建eureka注册中心1.1 搭建springboot模板项目此步骤省略,自行搭建项目结构:1.2 修改pom.xml文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/...原创 2019-07-31 16:24:25 · 115 阅读 · 0 评论 -
MybatisPlus自动生成映射文件
MybatisPlus自动生成映射文件一、pom.xmlpom.xml添加以下依赖: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artif...原创 2019-07-23 12:15:22 · 4760 阅读 · 0 评论 -
config多文件夹配置中心
一、搭建config配置中心1.1 搭建springboot模板项目忽略项目结构:1.2 修改pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSche...原创 2019-08-05 15:16:19 · 546 阅读 · 0 评论 -
SpringCloud教程|第三篇:搭建zuul网关
一、网关介绍1.1 微服务网关1.2 介绍API Gateway,是系统的唯一对外的入口,介于客户端和服务器端之间的中间层,处理非业务功能 提供路由请求、鉴权、监控、缓存、限流等功能 统一接入 智能路由 AB测试、灰度测试 负载均衡、容灾处理 日志埋点(类似Nignx日志) 流量监控 限流处理 服务降级 安全防护 鉴权处理 ...原创 2019-08-05 16:59:34 · 209 阅读 · 0 评论 -
springboot项目改造成springcloud微服务并docker部署
一、改造项目1.1 修改pom.xml<properties>节点下添加---------------------------------------------------------<spring-cloud.version>Greenwich.SR1</spring-cloud.version><docker.image.prefix&g...原创 2019-08-20 16:53:03 · 3994 阅读 · 1 评论 -
springboot2.x+mybatis plus整合多数据源
springboot2.x+mybatis plus整合多数据源一、springboot2.x+mybatis plus整合多数据源1.1 数据库oa库DROP TABLE IF EXISTS `sys_user`;CREATE TABLE `sys_user` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键...原创 2019-09-24 15:16:39 · 3271 阅读 · 3 评论 -
linux下gitlab安装配置
linux下gitlab安装配置一、环境准备1.1 下载gitlab包我将资源文件都放到了/opt/resources下cd /opt/resourcewget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-10.8.2-ce.0.el7.x86_64.rpm安装(linux内存至少2g官方...原创 2019-09-26 15:05:22 · 323 阅读 · 0 评论 -
javamail发送带附件普通邮件、outllook会议邀请、取消、修改会议邮件
一、配置环境准备1.1 mail.smtp.host查看打开outlook:文件–》信息–》账户设置–》双击账户1.2 修改本地hosts文件最好在C:\Windows\System32\drivers\etc\hosts文件配置一下主机名,ip可以在命令行中 ping mail.unipower.cn 查看到hosts文件新增一行:ip mail.unipower.cn...原创 2019-05-14 15:04:14 · 5408 阅读 · 12 评论