自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hello world !

https://zglgithubx.github.io

  • 博客(37)
  • 收藏
  • 关注

原创 基于AOP实现的接口异常通知工具

如何在接口或者方法出现异常时及时处理,并通知相应的人员。本文介绍的工具将会为你解决这个问题。

2023-03-01 19:06:02 258

原创 手写一个SpringBoot组件发布到Maven中央仓库

springboot组件也叫starters(场景启动器),这也是SpringBoot最强大的特点,把可以与SpringBoot集成的技术封装成一个个启动器,供有需要的人,因需引入。以下是来自官网的 starters 描述:starters 是一组方便的依赖性描述符,可以包括在应用程序中。您可以为所有Spring和所需的相关技术提供一站式服务,而无需搜索示例代码并复制粘贴的依赖描述符负载。

2022-10-15 11:33:03 1718 1

原创 gRPC入门

在 gRPC 中,客户端应用程序可以直接调用另一台计算机上的服务器应用程序上的方法,就好像它是本地对象一样,从而使您可以更轻松地创建分布式应用程序和服务。与许多 RPC 系统一样,gRPC 基于定义服务的思想,指定可以使用其参数和返回类型远程调用的方法。在服务器端,服务器实现此接口并运行 gRPC 服务器来处理客户端调用。在客户端,客户端有一个存根,该存根提供与服务器相同的方法。...

2022-08-14 19:32:14 1159

原创 Dubbo入门

1、为什么需要dubboRPC:远程服务调用在互联网的发展过程中,在以前,我们只需要一个服务器,将程序全部打包好就可以,但是,随着流量的增大,常规的垂直应用架构已无法应对,所以,架构就发生了演变。应用架构的发展1 单一应用架构2 应用和数据库单独部署3 应用和数据库集群部署4 数据库压力变大,读写分离5 使用缓存技术加快速度6 数据库分库分表7 应用分为不同的类型拆分发展到这个阶段的时候,我们发现,应用与应用之间的关系已经十分的复杂了,就会出现以下几个问题(以下摘录于官网):① 当服

2022-03-27 17:19:06 1789

原创 Bean的生命周期

1、Bean的简介在Spring中,那些组成应用程序的主体及由Spring IoC容器所管理的对象,被称之为bean。简单地讲,bean就是由IoC容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了。而bean的定义以及bean相互间的依赖关系将通过配置元数据来描述。Spring中bean对象默认都是单例的,同一个beanname获取的bean对象都单例的。对于Web应用来说,Web容器对于每个用户请求都创建一个单独的Sevlet线程来处理请求,引入Spring框架之

2022-02-20 22:03:04 550 2

原创 企业付款到零钱功能实现

文章目录需求前期准备1、登录微信商户平台官网:[微信支付 - 中国领先的第三方支付平台 | 微信支付提供安全快捷的支付方式 (qq.com)](https://pay.weixin.qq.com/index.php/core/home/login?return_url=%2F)2、找到产品中心的企业付款到零钱,并开通企业付款到零钱功能3、找到AppID账号管理,添加关联AppID4、将微信商户号和小程序进行绑定5、申请API证书和APIv2密钥,妥善保存,后面会使用6、获取商户号代码实现(SpringBoo

2022-02-12 21:54:40 4433 3

原创 微信扫码登录实现

需求使用微信扫码登录的授权方式登录系统实现此扫码登陆过程中使用了,微信开放平台(需支付300开通开发者认证)的网站应用实现的。官方文档:https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html流程:大概就是:前端调接口获取后端生成的state(可以用验证登录授权的有效性)——>用户扫码后确认授权——>前端开始调用微信开放平台的接口之后回调服务端接口——>回

2022-02-05 21:18:09 9080 2

原创 微信第三方平台开发

文章目录需求实现步骤:获取component_verify_ticket——>获取component_access_token——>获取authorizer_access_token——>调接口发布小程序1、获取component_verify_ticketcontroller实现类2、获取component_access_token实现类3、获取authorizer_access_token步骤:获取预授权码pre_auth_code——>微信公众平台管理员授权——>获取au

2022-01-28 19:05:31 3743 5

原创 前后端项目部署辅导

Linux常用命令:lsof -i:8090 //查看端口是否被占用kill -s 9 pid //杀死进程jps //查看启动的java应用进程scp -P 22(服务器端口号) smpe-system-1.0.0-RELEASE.jar root@ip地址:/data/nginx/www/cloudsafe/cloudsafe_server(服务器中文件夹的绝对路径) //远程复制,将本地的xx.jar, 上传到服务器的xxxx/cloudsafe_server文件夹,注:()为解释,执行时

2021-11-08 17:35:29 1421

原创 如何解决Vue无法显示网络图片的问题

缘由因为项目需求,项目中引用了图片的网络链接,但是发现了很奇怪的问题,图片链接如果在浏览器的地址栏中可以直接打开,如果在前端项目的Img标签中却无法被渲染。如何解决在vue项目中的头部添加meta标签在index.html中添加:<meta name="referrer" content="no-referrer">或者在img标签中添加:<img referrerpolicy="no-referrer" src="xx"/>Referrer是什么Referer是h

2021-08-22 17:49:26 6449 2

原创 Mybatis-plus条件构造器的简单使用

来自官方文档的说明例如:query.like(StringUtils.isNotBlank(name), Entity::getName, name) .eq(age!=null && age >= 0, Entity::getAge, age)解释:like函数中的三个参数:第一参数是boolean类型,表示该条件是否加入最后生成的sql,条件构造器可以是链式的,能添加许多条件。第二个参数是查询的实体类属性的get方法。第三个参数是实体类属性所需要匹配的值。eq和其他

2021-08-22 17:48:03 435

原创 单表多次查询和联表查询的选择

1.单表和联表查询的效率比较比如:有两张表,用户表和部门表,查询用户名称和部门名称//联表查询:select user.username,dept.name from sys_user user,sys_dept dept where user.id=#{userId} and user.dept_id=dept.id//分解后的单表查询,先查用户表,在查部门表select username,dept_id from sys_user where id=#{userId}select name

2021-08-08 13:53:13 2425

原创 数据结构笔记

此笔记是本人学习数据结构的笔记,持续更新中一、链表1.双向链表优点:对于链表中一个给定的结点,可以从两个方向进行操作。在单向链表中,只有获得结点的前驱结点的指针,才能删除该结点。在双向链表中,每个结点都有一个指向前驱结点的指针,可以直接后退到前驱结点。缺点:需要更多的空间开销。结点的插入或删除更加费时(需要更多指针的操作)。public class DLLNode{ private DLLNode next; private DLLNode previous; publi.

2021-07-18 14:13:56 386

原创 常用的SQL命令

基础登录数据库mysql -u root -p;输入数据库密码;创建数据库create database database-name;删除数据库drop database database-name;进入数据库use databse-name;创建新表create table table-name(col1 type1 [not null] [primary key],col2 type2 [not null],..);//根据已有表创建新表create table tab

2021-07-11 11:50:12 137

原创 docker安装nginx

1、下载docker pull nginx2、运行1)简单启动docker run --name docker-nginx -p 80:80 -d nginx命令解析:--name docker-nginx ->docker-nginx 为自定义的容器名称-p 80:80 ->第一个80对应宿主机的端口(如果服务器的80端口被占用可以使用其他端口),第二个80对应docker容器内部的-d ->以守护进程的方式启动nginx ->镜像名称,也可以指定某个版本,如

2021-05-23 12:29:52 296

原创 结构型模式之桥接模式

1、 意图桥接模式是一种结构型设计模式,可将 一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,从而能在开发时分别使用。2、问题假如你有一个几何形状类,从它能扩展除两个子类:圆形和方形。你希望对这样的类层次结构进行扩展以使其包含颜色,所以要创建名为红色Red和蓝色的形状子类。但是,由于你已有两个子类,所有总共序要创建四个类才能覆盖所有组合,例如蓝色圆形和红色方形。3、解决方案问题的根本原因使我们试图在两个独立的维度——形状和颜色——上扩展形状类。这在处理类继承时是很常见的问题。桥

2021-05-16 10:49:31 162

原创 结构型模式之适配器模式

1、适配器模式适配器模式是一种结构型设计模式,它能使接口不兼容的对象能够相互合作。 适配器可担任两个对象间的封装器,它会接收对于一个对象的调用,并将其转换为另一个对象可识别的格式和接口。2、适配器模式适合应用场景1)当你希望使用某个类,但是其接口与其他代码不兼容时,可以使用适配器类。2)如果你需要复用这样的一个类,它们处于同一个继承体系,并且他们又有了额外的一些共同方法,但是这些共同的方法不是所有在这一个继承体系中的子类所具有的共性。3、实现方式1)确保至少有两个类的接口不兼容:一个无法修

2021-05-09 10:03:51 189

原创 security遇java.lang.IllegalArgumentException Cannot pass null or empty values toconstructor

1.遇到这个报错大概都是因为在实现UserDetailService接口,执行查库操作发现有null值2.确定null值的字段在测试类中//注入Mapper@Autowiredprivate UserMapper userMapper;@Testvoid contextLoads() { //调用方法 System.out.println(userMapper.getUserByPhoneNumber("1"));}//打印的结果User{phoneNumber='nul

2021-05-09 09:00:45 2660

原创 Spring注解之@Autowired失败的解决方案

1.关于@Autowired介绍使用spring,在进行配置时,主要有两种方式,一是XML方式,二是Java config的方式。@Autowire就是配置注解的其中之一,它的功能就是为我们注入一个定义好的bean对象。作用首先从范围来说,它属于Spring容器配置的注解,于它同属容器的配置还有:@Required,@Primary,@Qualifier等。@Autowired从字面的意思来说就是自动装配。自动装配本来的意思是指的一些工业上的用机器代替人工,自动将一些需要完成的组装任务或者其他的任

2021-05-02 13:15:51 5590

原创 Uniapp如何全局使用websocket

此教程基于uniapp提供的uniapp-tools的socket.js插件1.创建socket.js(封装好的websocket连接对象)const noop = function() {};class Socket { static stopTime = 0; static concatCount = 0; constructor({ url = '', onOpen = noop, onMsg = noop, onClose = noop, onError = noop

2021-04-20 17:31:10 8050 9

原创 Netty的使用-spring boot整合篇

1、什么是Netty?Netty是 一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。Netty是基于nio的,它封装了jdk的nio,让我们使用起来更加方法灵活。2、它有什么特点?高并发:Netty 是一款基于 NIO(Nonblocking IO,非阻塞IO)开发的网络通信框架,对比于 BIO(Blocking I/O,阻塞IO),它的并发性能得到了很大提高。传输快:Netty 的传输依赖于零拷贝特性,尽量减少不必要的内存拷贝,实现了更高效率的传输。封装好:N

2021-04-11 16:38:21 3341

原创 创建型模式之建造者模式

假如有一个盖房的项目需求要求盖房子有个三个步骤,打桩,砌墙,封顶房子有各种各样的,比如普通房,高楼,别墅解决方案①传统方式将盖房的方法统一封装到一个父类,用子类(普通房,高楼,别墅)去继承盖房盖房统一父类House.javapublic abstract class House{ //通用的打桩方法 void abstract buildBasic(); //通用的砌墙方法 void abstract buildWalls(); //通用的封顶方法

2021-03-28 11:46:14 104

原创 创建型模式之抽象工厂模式

????问题假设你正在开发一款家具商店模拟器。代码中包含这些类:1.产品:椅子,沙发,咖啡桌2.系列产品的不同变体。例如,你可以使用现代,维多利亚,装修风艺术等风格生成椅子,沙发和咖啡桌。你需要设法单独生成每件家具对象,这样才能确保其风格一致。如果顾客收到的家具风格不一样,他们可不会开心。此外,你也不希望在添加新产品或心风格时修改已有代码。家具供应商对于产品目录的更新非常频繁,你不会想在每次更新时都去修改核心代码。????解决方案首先,抽象工厂模式建议为系列中的每件产品明确声明接口(例如椅子,

2021-03-21 13:55:50 146

原创 el-admin前端学习笔记

### 1.用v-permission代替v-if即使用自定义指令代替v-if### 2.路由跳转发起get请求的流程views/xxx/index.vuecruds() { return CRUD({ title: "部署", url: "api/deploy", crudMethod: { ...crudDeploy }, }); },components/Crud/crud.jscreated() { for (const

2021-03-07 22:29:24 1358

原创 el-table中加入el-select实现默认显示且可差异化每一行

1.场景描述项目中用到了element-ui的el-table组件,在表格中加入了下拉框,下拉框实现默认显示第一条数据。2.出现的问题v-model的值不知如何定义:服务器列表是个数组,每行的数据都不一样,如果绑定一个data中的一个变量,那么每一行绑定的值都是一样的,而且还不能默认显示第一值。下面是错误示例:在data中定义一个变量serverId<el-table ref="table":data="tableData" highlight current-row stripe st

2021-02-24 21:22:52 3896

原创 创建型模式之工厂模式

1.简介工厂方法模式原理是在父类提供一个创建对象的方法,允许子类决定实例化对象的类型。2.工厂方法结构1)产品(Product)将会对接口进行声明。对于所有由创建者及其子类构建的对象,这些接口都是通用的。2)具体产品(Concrete Products)是具体实现接口的产品。3)创建者(Creator)类声明返回产品对象的工厂方法。该方法的返回对象类型必须与产品接口相匹配。4)具体创建者(Concrete Creators)将会重写基础工厂方法,使其返回不同类型的产品。注意,并不一定每次调用

2021-02-21 15:24:22 108

原创 创建型模式之原型模式

概述:将一个对象作为原型,通过对其进行复制而克隆除多个和原型类型类似的新实例。原型对象那个可以生成自身的完成副本,因为相同类的对象可以相互访问对方的私有成员变量。1.优缺点1).优点:Java自带的原型模式基于内存二进制流的复制,在性能上比直接new一个对象更加优良。可以使用深克隆方式保存对象的状态,使用原型模式将对象复制一份,并将其状态保存起来,简化了创建对象的过程,以便在需要的时候使用,可辅助实现撤销操作。2).缺点:克隆包含循环引用的复杂对象可能会非常麻烦。2.应用场景如果你

2021-02-16 08:35:23 137 1

原创 创建型模式之单例模式

1.创建型模式分为:1)单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。2)原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。3)工厂方法(FactoryMethod)模式:定义一个用于创建产品的接口,由子类决定生产什么产品。4)抽象工厂(AbstractFactory)模式:提供一个创建产品族的接口,其每个子类可以生产一系列相关的产品。5)建造者(Builder)模式:将一个

2021-02-07 13:41:06 125 1

原创 设计模式概述及UML的类图

1.设计模式概述1)简介设计模式是面向对象设计中反复出现的问题的解决方案。这个术语的含义还存有争议。算法不是设计模式,因为算法致力于解决问题而非设计问 题。设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者 和其他设计者掌握。设计模式还为软件重构提供了目标。2)历史肯特·贝克和沃德·坎宁安在1987年利用克里斯托佛·亚历山大在建筑设计领域里的思想开发了设计模式并把此思想应用在Smalltalk中的图形用户接 口的生

2020-12-18 21:12:39 298 1

原创 Git的使用

1.什么是Git1)它是一个代码管理工具①分布式版本控制②多个开发人员协调工作③有效监听谁做的修改④本地及远程操作2)关于git的基本命令行操作①git init //初始化本地仓库②git add //添加文件③git status //查看状态④git commit //提交到本地仓库)⑤git push //推送到远程仓库⑥git pull //从远程仓库拉取数据⑦git cl

2020-12-11 21:12:31 91

原创 SSM整合注解映射和XML映射两种方式

1.SSM整合思路(1)创建spring框架(2)通过spring容器整合springmvc(3)通过spring容器整合mybatis2.创建项目及构建基本结构在resources目录下创建:database.properties log4j.properties applicationContext.xml spring-mvc.xml mybatis-config.xml3.工作流程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rf7yN1WS-16011

2020-11-01 10:56:26 1412 2

原创 Vue快速简单入门

vue基础1.vue单文件方式及启动单文件就是以.vue结尾的文件。最终通过webpack也会编译成*.js在浏览器运行*内容:++-1:template中只能有一个根节点-2:script中按照export default{配置}来写-3:style中 可以设置scope属性,让其只在template中生效index.html:相当于坑,之后vue编译好的代码往里面插入main.js ://引入vue import Vue from ‘vue’;import App from '.

2020-10-04 14:09:32 398

原创 学Mybatis偶遇Error creating bean with name ‘xxxxxxx‘类型报错

第一次碰见它,我首先在网上找了好多类似的博客,但最终都无果.为了解决它我用了一整天的时间,最后选择放弃它.到了第二天我新建了另一个项目,然后我复用了一些上个项目(那个bug所在的项目)的代码,那些代码本身我感觉肯定没有问题,我开始配置文件,新建pojo,dao,映射文件等,建好之后,写了一个小demo开始测试,测试之前我整理一下代码格式,我无意间看到有一行代码里多了一个空格:<setting name="logImpl" value="LOG4J "/>我把这个空格删了之后,开始测试,很顺

2020-08-20 11:38:59 494

原创 学Mybatis偶遇注解实现映射器,mybatis连接数据库时遇到时区问题和Mapped Statements collection does not contain value for xxx

1.注解实现映射器遇到的问题:### Error building SqlSession.### The error may exist in com/mybatis/mapper/UserMapper2### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com

2020-08-15 22:30:29 185

原创 vue 最坑报错:Newline required at end of file but not found eol-last

这个报错解决它,我花费了一两天的时间。最后我在网上搜了一下,原来是少一空行。总计:哪个文件报的这个error就在哪个文件最后一行加一行空行。...

2020-02-13 21:07:40 15846 4

原创 Vue安装脚手架简易教程

一、脚手架需要的环境1.Node.js 运行环境安装步骤:在官网上下载????https://nodejs.org/zh-cn/或者在电脑应用市场上下载2.npm(node package manage)依赖包 (node.js安装时自带的依赖包);3.测试是否安装成功:在cmd中输入 node -v 看是否有版本号,接着输入 npm -v ,看是否有版本号。二、安装脚手架1...

2020-02-08 10:59:56 327

原创 纯CSS3实现图片轮播

1.HTML建立结构/*作者:A adiot*/<div id="photo"><div id="photos"> <img src="images/图片2.jpg /> <img src="images/图片1.jpg"/> <img src="images/图片3.jpg"/></div></di...

2019-10-27 15:07:39 179

linux.zip

linux.zip

2023-08-04

空空如也

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

TA关注的人

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