- 博客(65)
- 资源 (2)
- 收藏
- 关注
原创 springcloud微服务基本概念
微服务架构的4个核心问题 1.服务很多,客户端怎么访问 2.这么多的服务,服务之间怎么通信 3.这么多的服务,怎么统一治理 4.服务挂了怎么办解决方案: SpringCloud 生态 1.Spring Cloud NetFlix 一站式解决方案! 但停更了 api网关,zuul组件 Feign---...
2024-10-11 14:12:23
946
1
原创 Spring-cloud-gateway报错问题总结
1.访问接口出现There was an unexpected error (type=Service Unavailable, status=503).Unable to find instance for order假设我们有服务 spring-appication-name: order 但命名路由id 也为order 就会出现这类错误因为 gateway 有默认路由...
2024-09-14 14:45:21
379
1
原创 easyExcel合并单元格导出
*** 自定义合并策略 该类继承了AbstractMergeStrategy抽象合并策略,需要重写merge()方法**//*** 分组,每几行合并一次*//*** 目标合并列index*//*** 需要开始合并单元格的首行index*//*** @param exportDataList exportDataList为待合并目标列的值* @param targetColumnIndex 需要合并的列*/@Override。
2023-09-05 16:39:34
2270
原创 Mysql存储函数和过程
drop procedure if exists proc1;CREATE PROCEDURE proc1()BEGINdeclare my_id varchar(255); DECLARE my_desc varchar(255);DECLARE done INT DEFAULT FALSE; DECLARE My_Cursor CURSOR FOR (select id from test); -- 定义游标并输入结果集-- 当使用MySQL游标时,还必须声明一个NOT FOUN.
2022-01-04 17:26:16
650
原创 Oracle数据库PL/SQL块-存储函数和过程
PL/SQL块PL/SQL程序由三个块组成,即声明部分、执行部分、异常处理部分结构如下:declare /*声明部分,在此声明变量,类型及游标*/begin /*执行部分,过程及sql语句,程序主要部分*/exception /*执行异常部分,错误处理*/end;变量赋值variable :=expression字符连接<字符串>||<字符串>注意:空值加数字仍是空值可转换类型赋值char转number
2022-01-04 15:19:20
412
原创 maven项目-多环境配置
一、SpringBoot 多环境配置对于一个项目来讲基本都 4 有个环境dev,test,pre,prod,对于 SpringBoot 项目多建立几个配置文件就可以了。然后启动的时候可以通过配置spring.profiles.active来选择启动的环境。java -jar BasicProject.jar --spring.profiles.active=prod二、Maven 多环境配置假如想在打包的时候动态指定环境,这个时候就需要借助 Maven 的 xml 来实现。1.配.
2021-12-23 10:16:29
832
原创 SpringBoot使用Hikari构建数据库操作工具
用于程序需要根据配置不同操作不同数据库的场景。技术使用SpringBoot自带数据库连接线程池框架Hikari
2021-12-17 15:10:36
2514
原创 Java使用ScriptEngineManager调用js脚本
import org.springframework.core.io.ClassPathResource;import javax.script.Invocable;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import java.io.*;/** * @author reshui * @version 1.0 * @date 2021/12/10 */public clas..
2021-12-10 11:09:29
2064
原创 微服务-下单退单流程
主要使用的技术1.SpringCloud2.RocketMq数据库建表主要的表有 商品表、商品流水表、订单表(大致的关系,主要是为了方便模拟,所以简化了表之间关系与字段)DROP TABLE IF EXISTS `goods`;CREATE TABLE `goods` ( `goods_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商品唯一标识',
2021-09-21 13:23:08
755
原创 Java调用系统指令
public class ExecTask {//// public static void main(String[] args) {// exec();// } public static void exec(String runCmd,String param1,String param2){ if(runCmd==null){ log.error("run-cmd指令为空"); return;.
2021-09-18 16:11:25
779
原创 MyBatis-Plus 的代码生成器
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率第一步-导包 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis
2021-08-28 17:12:41
293
原创 步坦协同(前后端协同开发)之前端总结
后端最常用的####本人是专注于后端开发的开发人员,所以对于前端熟练度较为一般。基本知道前端怎么处理,毕竟编程语言都是相近趋同的。一、请求发起情景一Ajax-JSON请求参数实体@Data@EqualsAndHashCode(callSuper = true)@Accessors(chain = true)@ApiModel(value="ObjectVO 对象")public class ObjectVO implements Serializable { ..
2021-08-27 23:35:05
396
原创 Oracle与MySQL-Mybatis批量插入踩坑
平常用mysql比较多,oracle少点。之前个人觉得mysql 和 oracle 很多语法层面的东西很相似,但是还是有一些细微差别,比如一些函数上的差异。mysql批量插入 <insert id="batchUserRole"> insert into sys_user_role(user_id, role_id) values <foreach item="item" index="index" collection="list" separator=",">
2021-08-27 14:44:55
247
原创 MySQL 过滤掉重复数据
问题:由于bug存在,导致数据库存在重复数据的问题,需要去除多余重复数据,仅保留一条有效数据1.建立测试环境DROP TABLE IF EXISTS `student`;CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) COLLATE utf8_bin DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id
2021-08-11 15:29:54
557
原创 Docker之可视化操作-Portainer
官方文档:https://documentation.portainer.io/Portainer是一个可视化的容器镜像的图形管理工具,利用Portainer可以轻松构建,管理和维护Docker环境。而且完全免费,基于容器化的安装方式,安装起来非常的简单方便!安装开启dockerservice docker start#启动dockerservice docker stop#停止dockerservice docker restart#重启docker开机自启动设置...
2021-08-06 09:46:14
672
原创 修改el-table-column type=“expand“展开行触发点-更多按钮触发
默认展开点目标展开点解决代码:html部分: <el-table :row-class-name="tableRowClassName" size="small" :header-cell-style="{background:'#0069cf',color:'#ffffff','text-align':'center'}" :data="tableData" :expand-row-keys="expands" :row-key="getRow
2021-07-13 17:06:10
4606
原创 MySQL和Oracle学习到的一些知识点
1.列转行并且用逗号拼接mysql//mysqlSELECT SYS_ID, group_concat(TBL_ID SEPARATOR ',')FROM md_db_tableGROUP BY SYS_IDA a,b,c,d,e,foracle//oracleSELECT SYS_ID, listagg (TBL_ID, ',') within GROUP (ORDER BY TBL_ID)FROM md_db_tableGROUP BY SYS_ID;
2021-07-08 09:47:33
168
原创 Java实现文件分割与合并
Java实现文件分割与合并我们在上传一些文件时,由于文件过大,单一线程进行上传过于耗时。我们需要对文件进行分割,将大文件分割成若干个文件进行上传,再有文件系统终端进行合并。简单模拟实现一下吧!主要使用到的类RandomAccessFile它可以灵活读写文件,类似指针操作。具体实现逻辑夹杂在代码内package com.highjet.demo.file;import org.springframework.web.multipart.MultipartFile;i
2021-04-23 17:59:15
1582
原创 MVCC多版本并发控制
MVCC是什么?Multi-Version Concurrency Control ,即多版本并发控制;通过记录多个修改的历史版本替代锁,实现事务间的隔离效果,保证非阻塞读,提高性能,而不是一味地锁记录。锁可以解决不可重复度问题,但依旧会阻塞,性能不是最佳。MVCC实现核心表的隐藏列:记录事务id以及上个版本数据地址;TRX_ID 事务ID,每处理一次,则加1 ROLL_PTR 指向undolog中的一个指针 ROW_ID 用于索引 ...
2021-04-05 02:47:32
151
原创 使用Layui构建一个简单点餐页面
遇到个同学做毕设,他实在不会,需要我帮忙写个前端页面,由于个人比较专注于后端开发,所以前端不是特别熟练。第一次做这个花的时间多了点。记录一下吧。1.首先后端的菜品信息数据格式{ "code":0, "msg":"返回消息", "count":15, "data":[ { "id":6, "foodName":"牛排", "price":200, "pi
2021-03-29 18:58:02
1736
原创 MySQL查询-一个星期内的每天记录总数
DATE_SUB(NOW(), INTERVAL 1 DAY)一天前DATE(create_time)格式化时间UNION ALL 合并(不去重)SELECT NOW();2021-03-20 13:49:34select DATE_SUB(NOW(), INTERVAL 1 DAY);2021-03-19 14:17:04 SELECT count(*) AS num, ...
2021-03-20 14:18:19
996
1
原创 微信小程序使用Vant组件uploader完成上传回显
一、限制个数为1:选择图片后先上传,后回显,具有删除功能1.wxml <van-cell title="公司logo" value="请上传公司logo" border="{{ false }}" /> <van-uploader file-list="{{ fileList }}" max-count="1" bind:after-read="afterRead" bind:delete="delete" />2.js //////
2021-01-15 17:26:53
5121
2
原创 微信小程序wx.uploadFile回显删除上传
1.CSS.add_pic { padding: 0 40rpx; background: #fff;}.add_pic view { display: inline-block; margin-top: 20rpx; width: 430rpx; height: 200rpx; line-height: 200rpx; text-align: center; background: url(https://avatar) no-repeat left cen
2021-01-15 17:15:33
705
原创 @JsonIgnore带来的字段忽略问题
@JsonIgnore此注解用于属性或者方法上,常用在属性上,作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。我本想忽略返回密码字段,但是连提交json数据,也忽略了提交的密码字段。 /** * 密码 */ @JsonIgnore @NotNull(groups = {SysUser.AddUser.class},message = "用户密码不能为空") @Size(groups = {SysUser.Ad...
2020-12-10 16:50:17
1649
原创 Spring-Validation校验参数
Spring-Validation校验参数全方面使用参数校验工具//被注释的元素,值必须是一个字符串,不能为null,且调用trim()后,长度必须大于0@NotBlank(message="")//被注释的元素,值不能为null,但可以为"空",用于基本数据类型的非空校验上,而且被其标注的字段可以使用@size、@Max、@Min等对字段数值进行大小的控制@NotNull(message="")//被注释的的元素,值不能为null,且长度必须大于0,一般用在集合类上面@...
2020-11-20 00:34:33
2012
原创 实现读写分离SpringBoot+MyBatis+Druid
实现读写分离SpringBoot+MyBatis+Druid1.读写分离概念理解读写分离要做的事情就是对于一条SQL该选择哪个数据库去执行,至于谁来做选择数据库这件事儿,无非两个,要么中间件帮我们做,要么程序自己做。因此,一般来讲,读写分离有两种实现方式。第一种是依靠中间件(比如:MyCat),也就是说应用程序连接到中间件,中间件帮我们做SQL分离;第二种是应用程序自己去做分离。这里我们选择程序自己来做,主要是利用Spring提供的路由数据源,以及AOP。然而,应用程序层面去做读写分离最大的弱点
2020-11-16 03:13:48
1994
原创 API接口-假定时间内限制访问次数-限频率
API接口-假定时间内限制访问次数-限频率在实际项目中,往往需要对一些公开的接口进行限制在一定时间内的访问次数,避免他人的恶意攻击占用系统资源。方案:设置拦截器,每次访问记录ip地址+访问URL作为key,使用redis按key查询是否有访问记录。如果未有访问redis记录,redis记录这次访问,如果redis查询到有访问次数,比较系统限制次数是否大于现在访问次数,大于则放行,小于等于则拒绝。(redis存储带过期时间,过期后自动清除) String key = IpU
2020-11-15 18:02:02
3312
1
原创 ip2region离线IP地址定位库,给你的日志AOP加上个地址定位
ip2region离线IP地址定位库,给你的日志AOP加上个地址定位Ip2region是什么?ip2region - 准确率99.9%的离线IP地址定位库,0.0x毫秒级查询,ip2region.db数据库只有数MB,提供了java,php,c,python,nodejs,golang,c#等查询绑定和Binary,B树,内存三种查询算法标准化的数据格式每条ip数据段都固定了格式:_城市Id|国家|区域|省份|城市|ISP_只有中国的数据精确到了城市,其他国家有部分数据只能定位到国
2020-11-14 14:37:10
555
原创 利用AOP做一个完善的日志LogAspect切入以SpringBoot为框架基础
利用AOP做一个完善的日志LogAspect切入以SpringBoot为框架基础日常的记录日志,不会还有人还在每个方法都重复书写log.info log....,还有些更初级的sout 哈哈哈,我们要学会用Spring中的利器,那就是AOP思想,替我们把这些重复的工作做了。AOP思想其实我们接触得很多了,像日志记录,权限控制,事务管理啊,基本都用过,里面运用的核心就是AOP。具体AOP详细的介绍和使用我这里就不赘述了,网上有很多资料。今天我想学做个比较细致些的日志记录方式以SpringBo.
2020-11-13 21:37:53
1310
原创 Spring Boot-多环境配置文件切换
Spring Boot-多环境配置文件切换在代码中新增多个配置文件,文件名可以是application-{profile}.properties,然后在applcation.properties文件中配置激活profile。applcation.properties - 公共配置application-dev.properties - 开发环境配置application-prod.properties - 生产环境配置1、配置文件激活在applcation.properties文件
2020-11-11 23:49:45
213
原创 WebSocket在SpringBoot中的小应用
WebSocket 简介WebSocket 协议是基于 TCP 的一种新的网络协议,它实现了浏览器与服务器全双工(full-duplex)通信—允许服务器主动发送信息给客户端,这样就可以实现从客户端发送消息到服务器,而服务器又可以转发消息到客户端,这样就能够实现客户端之间的交互。对于 WebSocket 的开发,Spring 也提供了良好的支持,目前很多浏览器已经实现了 WebSocket 协议,但是依旧存在着很多浏览器没有实现该协议,为了兼容那些没有实现该协议的浏览器,往往还需要通过 ST
2020-11-10 18:50:58
134
原创 脏读、幻读、不可重复读,傻傻分不清楚
脏读(针对未提交数据)脏读又称无效数据读出(读出了脏数据)。一个事务读取另外一个事务还没有提交的数据叫脏读。例如:事务T1修改了某个表中的一行数据,但是还没有提交,这时候事务T2读取了被事务T1修改后的数据,之后事务T1因为某种原因回滚(Rollback)了,那么事务T2读取的数据就是脏的(无效的)。解决办法:把数据库的事务隔离级别调整到READ_COMMITTED(读提交/不可重复读)不可重复读(针对其他提交前后,读取数据本身的对比)不可重复读是指在同一个事务内,两次相同的查.
2020-11-10 10:44:46
8897
5
springmvc+jdbc的报名表
2018-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人