自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 资源 (2)
  • 收藏
  • 关注

原创 超详细的springBoot学习教程,springboot学习看这篇就够了

springBoot学习https://docs.spring.io/spring-boot/docs/2.2.6.RELEASE/reference/html/index.html (官方文档)spring boot的Maven基础配置1.父项目springboot的版本仲裁管理依赖的版本号<!-- 父项目springboot的版本仲裁管理依赖的版本号,后续导入就不需要导入版本号了...

2020-04-12 13:31:24 69373 11

原创 linux 安装常用服务依赖

【代码】linux 安装常用服务依赖。

2023-05-06 17:29:06 245 1

原创 IDEA 调试java程序

address 为之前idea设置的监听端口,运行下面命令即可实现远程调试。主要就是设置远程主机和需要监听的端口以及jdk版本,保存并开启debugger模式。

2023-01-04 13:28:07 528

原创 java 网络文件读取

将网络图片的url预览地址,变为本地a.png图片。

2022-10-26 11:02:21 447

原创 Nginx判断请求来自pc端还是移动端

通过user_agent 判断请求的来着pc端还是移动端,从而加载对应终端的样式。

2022-10-12 16:48:11 5167

原创 企业微信客户端调试

调试工具名称 devtools_resources.pak 不能改变

2022-10-11 14:40:10 685

原创 vue 数据监听失败原因和解决方式

如果操作对象是数组,改变数组的值用Vue的 $ set方法,改变数组的长度用数组的splice方法使数组变化变成可监听的。如果操作对象是对象。如果操作的属性是对象内已经有的值,使用$ watch,加上关键字deep深度监听对象,如果操作的属性是对象内没有的新属性。使用$set使对象变成可监听的。

2022-09-19 19:50:48 7864

原创 微服务2-nacos 配置中心

在微服务架构中,当系统从一个单体应用,被拆分成分布式系统上一个个服务节点后,配置文件也必须跟着迁移(分割),这样配置就分散了,不仅如此,分散中还包含着冗余,如下图:见nacos 注册中心篇4.2 bootstrap.yml 配置配置中心地址 默认按照application-name去匹配配置文件,默认读properties后缀。namespace:名称空间用于隔离不同租户的配置。组和数据 id 可以在不同的名称空间中相同。名称空间的典型场景是不同环境的配置隔离,例如,开发/测试环境和生产环境(配置

2022-07-17 11:59:53 314

原创 微服务 1-nacos注册中心

注册中心在微服务项目中扮演着非常重要的角色,是微服务架构中的纽带,类似于通讯录,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。通过向nacos上注册服务,进行服务调用时就可通过http//服务名/rest路径进行调用了。httpshttpshttps。............

2022-07-17 11:04:53 263

原创 springboot中定时任务的使用

这里的 @EnableScheduling 注解,它的作用是发现注解 @Scheduled的任务并由后台执行。没有它的话将无法执行定时任务。@Scheduled(fixedRate=2000):上一次开始执行时间点后2秒再次执行,无论上一个任务是否执行完过2s就开始下一个任务;@Scheduled(fixedDelay=2000):上一次执行完毕时间点后2秒再次执行,上一个任务执行完后过2s 才执行下个任务;@Scheduled(initialDelay=1000, fixedDelay=2000):第一

2022-07-03 12:33:33 4261

原创 AES 配合mybaties 实现指定字段自动加解密

测试:结果:通过使用MyBatis的typeHandler功能,对入参和出参进行处理,实现无缝加密解密(将明文加密后保存至数据库;从数据库读取时,自动将密文解密成明文)实体属性配置:要开启autoResultMap 自动配置ResultMap使用@TableField注解标识属性,并通过typeHandler 指定我们自定义的mybaties 参数结果处理器。@TableField(typeHandler = AESEncryptHandler.class)测试新增:执行sql:数据库结果:

2022-06-16 10:17:36 1697

原创 Mybaties-plus 分页使用

查询分页分为物理分页和逻辑分页。1)逻辑分页: 一次性查出所有数据,然后在内存中筛选需要的数据。缺点:大数据量时容易造成内存溢出,因为是一次性查出每次返回需要的所有数据时效性低不推荐使用。2)物理分页: 通过sql 的limit 去控制数据的偏移量每次只查出需要的数据效率高,推荐使用。mybaties-plus 默认的分页插件为逻辑分页不推荐使用所以需要扩展分页插件。2.2 配置mybaties-plus 分页插件2.3 分页查询实操2.31)使用mybaties-plus 自动生成方法分页使用s

2022-06-15 21:34:59 680

原创 使用策略模式 + 工厂模式 +模版方法减少if-else

以不同平台(tt,wx,hy)发放刷视频奖励为例,包括用户认证 ->绑定银行卡->风险校验->发放奖励 这些步骤进行案例讲述。策略模式一般是通过定义接口去扩展一类行为(算法),通过不同的实现类达到行为的多样化。(所有实现类称为算法镞)本例中段视频平台发放奖励这一行为就可理解为是一个算法,而不同平台的发放方式就构成了算法镞。所以我们先定义一个发放策略的接口。定义一个平台枚举类用来维护平台信息。不同的平台实现这个接口,代码后面会贴出来。对于 用户认证 ->绑定银行卡->风险校验->发放奖励 这类统一的步骤

2022-06-12 01:37:30 235

原创 mybaties-plus 代码成器使用笔记

1. 简介:MyBatis Plus Generator 可以生成 Controller,Service,Mapper,Entity,也支持自写 SQL 的 mapper。步骤:1)数据库中创建相应表2)引入maven依赖freemarker 是用于对模板的解析,代码生成本质是在文本中定义代码的模板,动态部分用参数占位,运行时用数据替换参数,所以需要模板引擎依赖。3)编写代码生成器配置工具类4)结果:

2022-06-01 16:50:42 124

原创 HttpServletRequestWrapper 使用笔记

产生背景:HttpServletRequest 不能对前端传来的参数进行修改,但实际场所像过滤xss攻击,取认证token统一去除token前缀等需要进行请求参数的处理。此时HttpServletRequestWrapper 就应运而生了。原理:HttpServletRequestWrapper 采用装饰者模式对HttpServletRequest进行包装,我们可以通过继承HttpServletRequestWrapper 类去重写getParameterValues,getParameter等方

2022-06-01 15:07:49 12888 4

原创 mybatis-plus 实现自动填充时间

**1.引入pom依赖** <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency> <!-

2022-05-24 10:01:28 4466

原创 js下载base64格式的图片

步骤:1)创建一个a标签2)给a标签创建点击事件3)将base64数据转为Blob类型4)将a标签的href指向Blob类型数据5)触发a标签代码:template:vue-qr 组件可以自动将 :text绑定的url地址转换为二维码,callback第一个参数可以获取到二维码的base64格式的数据。base64数据样例:data:image/png;base64,iVBORw0KeeAACH930BWkAEcECBkwEeQJaSfAwKE9H8DWUEGcECAkAEfQZaQfg

2022-05-17 15:04:14 3507

原创 设计模式之适配器模式

适配器模式简介: 将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。使用场景:1)系统需要使用现有的类,但现有的类却不兼容。2)需要建立一个可以重复使用的类,用于一些彼此关系不大的类,并易于扩展,以便于面对将来会出现的类。3)需要一个统一的输出接口,但是输入类型却不可预知。角色:Source:需要被适配的类、接口、对象,即Datas。Destination:需要得到的类,Source通过适配得到的类对象,

2022-05-15 16:24:09 219

原创 spring 的 事件监听机制实现以及使用线程池异步处理监听事件

使用spring提供的事件监听机制:为什么需要使用事件这种模式?spring中实现事件有几种方式?上述两个问题可以参考:链接博客本文主要是解释如何通过注解简便实现事件监听以及让事件监听支持异步。1.使用注解实现事件监听涉及三个对象:1)监听的事件(提供事件处理时的元数据)2)监听器(事件处理者)3)事件发布者(调用者)事件:实现 ApplicationEvent 类import lombok.Getter;import org.springframework.context.Ap

2022-05-11 14:55:56 4659

原创 linux 打包

zipzip 压缩后文件名 源文件zip -r 压缩后目录名 原目录(zip -r wiki.zip wiki)unzip 解压 -d 指定解压路径 源文件(unzip -d wiki wiki.zip )tartar -cvf 打包名 打包源文件(可以多个文件空格隔开) # c创建 v可视 f 文件名tar -xvf 解包名tar -tf 查看包内文件打包tar -czvf .gz格式的 gzip打包压缩包tar -cjvf .bz2格式的bzip2打包压缩包t

2022-05-07 11:07:18 1087

原创 @valid,@Validated 的学习笔记

1.简介@Validated:可以用在类型、方法和方法参数上。但是不能用在成员属性(字段)上,不支持嵌套检测@Valid:可以用在方法、构造函数、方法参数和成员属性(字段)上,支持嵌套检测2.引入mavenspringboot 2.3.0 以后不会自动引入jar包,所以要添加以下maven,2.3以前则不需要引入maven包<dependency> <groupId>org.springframework.boot</groupId> <artif

2022-04-19 20:33:56 445

原创 Promise详解

1.基本概念:Promise是JS异步编程中的重要概念, 异步抽象处理对象,是目前比较流行Javascript异步编程解决方案之一2.Promise的三种状态:pending:对象初始化状态fulfilled:当调用resolve(成功),会由pending => fulfilledrejected:当调用reject(失败),会由pending => rejected3.创建Promise3.1 new Promise(resolve, reject);const pro

2022-04-19 15:28:38 2039 1

原创 spring bean 初始化时构造函数的选择

1.存在无参构造函数,且没有 @Autowired注解时使用无参构造器。2.不存在无参构造函数,但存在有参构造函数,并且没有@Autowired注解会报错,添加@Autowired注解就不会报错。3.存在多个构造函数,并且含有无参构造函数,有@Autowired注解 会使用@Autowired注解标注的构造器。4.有多个@Autowired注解会报错,除非全设置为required = false,此时会加载参数最多的构造器。bean 类:@Componentpublic class Son {

2022-04-18 17:24:04 2979

原创 node.js 日志模块 winston 使用

const winston = require(‘winston’)require(‘winston-daily-rotate-file’)module.exports = {loggers: {},init(uid) {const loggerFormats = [winston.format.label({ label: uid }),winston.format.timestamp()]if (WIKI.config.logFormat === 'json') { loggerF

2022-04-11 15:19:16 1172

原创 FutureTask 实现异步任务

FutureTask 的执行结果和出现异常的异常对象都会被放到outcome对象中,通过get()方法返回。1.测试future任务正常返回public class T2 { ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNamePrefix("thread-start-runner").build(); ExecutorService taskExe = new ThreadPoolExecutor(

2022-03-11 10:55:45 533

原创 springboot整合redis 使用缓存注解

1.启动类标明@EnableCaching@SpringBootApplication@MapperScan("com.jx.luckyDraw.mapper")@EnableCachingpublic class LuckyDrawApplication { public static void main(String[] args) { SpringApplication.run(LuckyDrawApplication.class, args); }}

2022-02-08 14:47:14 1718

原创 蓝鲸平台扩展流水线构建成功插件

1.邮件形式1)引入gradle2)在application 配置文件中添加配置信息配置发邮件的服务器,此处使用qq邮箱发邮件username:qq邮箱地址password:为邮箱的授权码,不是qq密码subprojects { group = "com.tencent.bk.devops.ci.notify" dependencies { api("org.jetbrains.kotlin:kotlin-stdlib-jdk8") api("

2022-01-11 14:28:09 2626

原创 docker-compose 安装常用服务

1.下载,安装dockercompose,建议手动下载国内镜像地址1)将dockercompose 移到 /usr/local/bin 下chmod 755 docker-composemv docker-compose /usr/local/bin2)验证docker-compose -v2.在/opt 目录下新建各个组件的文件夹用于挂载文件3.正式编排服务3.1.mysql1)建立conf,data文件夹2).docker-compose.yml 文件version: '

2021-12-22 11:25:23 4289

原创 SpringBoot集成Kafka

1.安装kafka1)安装zk和kafka镜像docker pull wurstmeister/zookeeperdocker pull wurstmeister/kafka2)启动zk镜像生成容器docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime wurstmeister/zookeeper3)启动kafka镜像生成容器docker run -d --name kafka -p 9092

2021-12-12 16:46:47 6536 2

原创 校验字符串中括号是否合法

/*核心思路:每次遍历字符串时,在栈中存放左括号,每次遇到右括号就利用栈的后进 先出 pop()一个最后进栈的元素,如果这时栈为空 或者这个左括号的类型和右括号类型不一样那么就不是合法括号。 */ public boolean isValid(String s) { if(s.length() % 2 !=0){ return false; } Map<Character, Character> map=new

2021-12-10 11:10:44 407

原创 finally对返回值的影响

执行完try catch里面内容准备return时,如果还有finally需要执行这是编译器会为我们增加一个全局变量去暂存return 的值,等到finally执行完成去return这个全局变量,如果finally有return语句就返回finally块的return结果1.基本数据类型1)不在finally return时,返回结果是0,finally对返回结果无改变。 public static int getCount(){ int count=0; try{

2021-11-28 13:27:27 363

原创 数组小和问题

描述在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和。求一个数组的小和。例子[1,3,4,2,5]1左边比1小的数:没有3左边比3小的数:14左边比4小的数:1,32左边比2小的数:15左边比5小的数:1,3,4,2所以小和为1+1+3+1+1+3+4+2=16思路:可采用类似归并排序的拆分思路,将数组一直进行左右拆分直到数组的每个部分只有一个元素无法拆分,然后进行合并,合并时左右两个子序列都是相对有序的,所以只要找到(右边元素值大于左边的元素个数)*左边元素值就可

2021-11-10 11:25:28 839

原创 创建vue 脚手架

1.下载node.js外网环境会比较卡,可在node.js中文网下载http://nodejs.cn/download/current/2.安装 node.js然后一路点下一步完成即可。2.验证node.js是否下载成功1)node -v 查看 node 版本2)npm -v 查看 npm 版本在这里插入图片描述](https://img-blog.csdnimg.cn/1dad602a788c4d6db1d39d4c324555fa.png)3.创建存放对应下载依赖和缓存依赖

2021-09-09 12:05:29 129 1

原创 vue 数据代理和数据监测

vue 数据代理和数据监测数据代理和数据监测是vue 里面一个很重要的概念,但是他们在vue中扮演什么角色,了解这些前得先了解 数据代理和数据监测的概念。vue中双向绑定 v-model和v-bind 指令都能将模型数据反应到页面,而且每当模型页面数据改变时都能反馈到页面,v-model页面上的数据改变也能反映到模型 这里面就包含着 数据代理和数据监测 的使用。1.数据代理:通过一个对象去对另一个对象属进行操作实现原理是通过 ES6语法中Object对象的defineProperties方法实现

2021-09-01 10:15:52 524

原创 Hibernate学习心得

Hibernate学习心得1.hibernate的简介:Hibernate 是一款免费开源的 持久层的 ORM 框架 ,它对 JDBC 进行了轻量级的对象封装,将对象与数据库表建立了映射关系,使 Java 编程人员可以随心所欲地使用面向对象的编程思想操作数据库。2.hibernate入门1)实体类的编写规则 package com.yg.entity;public class Teacher { /*hibernate要求实体类有一个属性是唯一的*/ private Intege

2021-03-31 09:25:48 418

原创 为什么重写equals还要重写hashcode

为什么重写equals还要重写hashcode1)简介equals和hashcode都属于Object类的方法,其中hashcode为本地方法。object中equals是比较是否为同一对象。 public boolean equals(Object obj) { return (this == obj); }object中hashcode是比较是否存放在同一地址。public native int hashCode();String对equals和hashcode

2021-01-12 08:50:21 463 4

原创 js原型链以及对象的类与继承

原型链**定义:**按照JS引擎的分析方式,在访问一个实例的属性的时候,现在实例本身中找,如果没找到就去它的原型中找,还没找到就再往上找,直到找到。这就是原型链。实例的_protpo_指向的是原型对象。实例的构造函数的prototype也是指向的原型对象。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BmXttn5y-1610412275756)(C:\Users\geqilin\AppData\Roaming\Typora\typora-user-imag

2021-01-12 08:46:46 192

原创 闭包简介以及其原理

闭包定义: 闭包是指有权访问另一个函数作用域中的变量的函数。作用:1)可以在函数的外部访问到函数内部的局部变量。2)让这些变量始终保存在内存中,不会随着函数的结束而自动销毁。使用场景:函数作为返回值函数作为参数来传递**原理:**js基于引用计数的内存管理机制。引用计数:简单地说,为了保证每块内存都存在引用,也为了保证不存在指向错误的引用,如果指向该内存最后一条引用被移除了,则释放该内存。闭包例子:1)作为函数返回值使用function add() { var sum = 0;

2021-01-12 08:43:39 241

原创 JS for循环的3种使用

1.1 for循环使用:1)for in:遍历存放对象的一维数组var arr=[{"id":1,"name":"張山"},{"id":2,"name":"李四"}]; for(var i in arr){ console.log(i); }结果:仅仅会得到数组的索引会遍历数组的原型属性),而且会打印出部分原型,不推荐这种使用方式,可以遍历对象属性(;0VM42759:265 1VM42759:265 delByIndexVM42759:265 delAllRep

2021-01-12 08:42:03 4666

原创 js两种方式改变和获取页面css属性

获取css属性document.getElementById("id").style['styleName'];或者$("#id").css('styleName');设置css属性document.getElementById(“id”).style[‘styleName’]=value;或者原生js $("#id").css(‘styleName’,value);

2020-06-29 11:36:39 305

jdk-8u371-linux-i586.rpm

jdk1.8

2023-06-27

人事管理系统

人事管理系统 连接oracle数据库,java语言完成

2019-05-29

LoginUI.java

登陆界面,实现了密码验证,记住密码,和验证码等等可以和数据库相连.

2019-05-19

空空如也

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

TA关注的人

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