- 博客(180)
- 资源 (6)
- 收藏
- 关注
原创 oracle创建用户并进行连接
使用docker进行连接建立连接用户执行命令:connect system/managercreate user test identified by testdefault tablespace userstemporary tablespace temp;grant connect,resource,oem_monitor to test;用test登录
2022-05-06 22:28:46
1719
原创 @DateTimeFormat注解
@DateTimeFormat注解前言前言在使用@DateTimeFormat进行格式化注解时,总是不能匹配前端传入的。格式总是报错我这里使用的是pattern进行解析的的但是前端是给我传入的ISO类型的导致不能匹配所以总是报错。后来我们进行查看源码得到了答案。源码解析看下源码解析:那么我们来看下。后端使用@DateTimeFormat 注解时处理时间前前端应该如何传值。使用 @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
2022-05-06 22:22:30
24935
3
原创 spingboot集成mybatis-plus
mybatis-plus集成spingboot1.引包:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency> <groupId>com.baomidou</gro
2022-04-13 14:12:33
314
原创 spring cloud stream +rabbitmq 构建消息推送中间件
消息推送最近在做消息相关的工作,先说下为何考虑使用消息,在我们的服务,当任务节点完成,或者任务创建,要发送一条提醒给相关人员,在旧的版本中使用的异步调用,但是这个会有个问题,就是有时异步方法不执行。今天我们先不看这个异步调用的的,我们直接使用消息队列进行处理消息。这样能够进行解耦,同时可以处理接口响应速度,因为feign调用是阻塞的,所以我们有必要将消息推送服务这样的耗时服务,给抽取处理,加快接口响应速度。旧版本使用处理的的形式在旧版本中我们使用的是java8的异步调用,今天我们先不进行深入探
2022-02-11 13:55:39
1926
原创 APIFox前置脚本获取token自动填充
获取token每次使用apifox进行接口测试时,都需要加上token,每次都需要在浏览器中copy token过来。不如在每个接口中先进行一个前置操作,就是获取token代码const http={ "url":"url", "method":"POST", "header":'Content-Type:application/json', "body":{ mode:'raw', raw: JSON.stringify({"username":""},{"
2022-01-21 10:59:34
4059
原创 个推推送记录
个推推送记录个推文档:https://docs.getui.com/getui/server/rest_v2/push/流程用户端通过帮绑定别名(手机号)与cid的之间的关系,绑定之后服务端能够获取到这个映射关系,具体绑定获取cid链接如下:个推别名绑定 , h5获取clientId服务端通过别名与这个进行发送,发送的时候个推服务会通过别名找到这cid然后就能够发送信息了服务端代码<dependency> <groupId>com.getui.push&
2021-12-27 14:10:49
890
原创 数据结构与算法实践系列文章(十)图
图概念有向图/无向图图的表示邻接矩阵在邻接矩阵实现中,由行和列都表示顶点,由两个顶点所决定的矩阵对应元素表示这里两个顶点是否相连、如果相连这个值表示的是相连边的权重。邻接表在邻接列表实现中,每一个顶点会存储一个从它这里开始的边的列表。比如,如果顶点A 有一条边到B、C和D,那么A的列表中会有3条边邻接列表只描述了指向外部的边。A 有一条边到B,但是B没有边到A,所以 A没有出现在B的邻接列表中。查找两个顶点之间的边或者权重会比较费时,因为遍历邻接列表直到找到为止。图的遍历图的遍历指的
2021-05-20 14:04:41
234
原创 数据结构与算法实践系列文章(九)排序
排序简单选择排序每次从未排序的元素中选择最大(小)的放入排序序列 O(n^2)C语言#include <stdio.h>#include <stdlib.h>void swap(int *p1,int *p2){ int t; t = *p1; *p1 = *p2; *p2 = t;}void printArray(const int *array,int size){ for(int i=0;i<size;i++){
2021-05-20 14:02:56
237
原创 数据结构与算法实践系列文章(八)散列
散列散列目标 :为了更快的查找 —O(1),拿空间换时间, 计算空间位置更快定义“键 -值 对” (key- value pair)的集合两个关键的问题散列函数 什么是好的散列函数解决冲突 如何进行解决冲突解决冲突方式开放定址分离链其他(公共溢出)开放定址h(x) = x mod 11x={12,2,17,28,6,23} h(x) = {1,2,6,6,1}这样以来就有冲突了,这个当冲突时则可以将数据进行往后的坐标点放入 可进行 线性探测,平方探
2021-05-20 14:00:28
221
原创 数据结构与算法实践系列文章(七)树
树树(Tree)是n(n≥0)个结点的有限集,它或为空树(n= 0);或为非空树,对于非空树T:(1)有且仅有一个称之为根的结点;(2)除根结点以外的其余结点可分为不同的子树。结点:树的数据元素结点的度:结点挂接的子树数结点的层次:从根节点到该结点的层数路径:顺着连接节点的边从一个节点到另一个节点,所经历的节点顺序根节点:树最上面的节点称为根节点,一棵树只有一个根,而且根到任何一个节点有且只有一条路径父节点:每个节点都有一条边向上连接到另一个节点,这个节点就称是下面
2021-05-20 13:58:01
531
原创 数据结构与算法实践系列文章(六)线性结构之队列
队列定义队列是一种先进先出(FIFO)的线性表.在表一端插入在另一端删除只能在表的一端(队尾)进行插入,在另一端(队头)进行删除运算的线性表逻辑结构: 与线性表相同,任为一对一关系。存储结构: 用顺序队列或链队存储均可。运算规则: 先进先出FIFO实现方式: 关键是编写入队和出队函数,具体实现实现依顺序队或的不同而不同。队列的操作C语言循环队列循环队列的定义循环队列的操作C语言#include <stdio.h>#include <stdlib.h>
2021-05-20 13:54:43
265
1
原创 数据结构与算法实践系列文章(五)线性结构之栈
栈定义栈:只能在表的一端(栈顶)进行插入和删除运算的线性表逻辑结构: 与线性表相同,任然是一对一关系存储结构: 用顺序栈或链栈存储都可以。运算规则: 只能在栈顶运算,且访问结点时依照后进先出或者先进后出的原则。实现方式: 关键是编写入栈和出栈的函数。顺序栈的表示:#define MAXSIZE 100typedef struct{ SElemType *base; SElemType *top; int stacksize;}SqStack;// 初始化
2021-05-20 11:12:37
245
5
原创 数据结构与算法实践系列文章(四)线性结构之链表
文章目录链表:链表分类:链表的特点:链表的优缺点:单链表:定义链表的操作链表操作实现:C语言C++javapython循环链表:单项循环链表java实现单项循环链表java实现双向循环链表双向链表:双向链表的操作**java实现双向链表****java实现双端链表**链表:链表:n个结点由指针链组成一个链表,它是线性表的链式存储映像。称为线性表的链式存储结构。链表的结点在存储器中的位置是任意的,即逻辑上相邻的数据元素在物理上不一定相等。链表对空间上有一定的要求,因为他的存储很可能分布在不同的位置。链
2021-05-19 14:04:59
709
1
原创 数据结构与算法实践系列文章(三)线性结构之顺序表
线性结构什么是线性结构:线性结构的定义:若结构是非空有限集,则有且仅有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继 可表示为如下图所示。线性结构中数据元素之间的关系就是这种“直接前驱”或“直接后继”的相邻关系,可以用一个有序对表示,如:a2与a3的关系:<a2,a3>线性结构的特点:① 只有一个首结点和尾结点;② 除首尾结点外,其他结点只有一个直接前驱和一个直接后继。线性结构包括线性表、堆栈、队列、字符串、数组等等,其中,最典型、最常用的是线性
2021-05-19 14:02:16
634
原创 数据结构与算法实践系列文章(二)数组与字符串
数组与字符串数组:数组的定义:就是线性表的实现。c语言定义: int array[N] 或者 int *array = malloc();数组的名不是指针。#include <stdio.h>#include <stdio.h>// 这个地方其实是传入的数组的地址 *array,和大小int func(int *array,int size){ // array[0] 其实就是指针 array求值得出首地址 return array[0]; // 等价于
2021-05-19 14:00:01
217
原创 数据结构与算法实践系列文章(一)数据结构与算法的一些概念
由于个人的数据结构与算法的知识比较欠缺,就找了门教程进行学习,这里记录下整个学习的过程的知识点。程序的本质程序是有一系列的机器指令构成。程序=数据结构+算法数据结构与算法是相辅相成的。数据结构:数据结构是计算机存储,组织数据的方式。数据结构是指的相互之间存在一种或多种特定关系的数据元素的集合。通常情况下精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。对处理的问题如何表示,即问题的数学模型是什么简言之:是带有结构特性的数据元素的集合,它研究的是数据
2021-05-19 13:58:13
397
原创 Docker最全总结,DockerFile,Docker编排容器,Docker镜像,Docker-compose构建
文章目录Docker简介为什么使用docker:Docker引擎:Docker系统镜像:Docker容器:Docker仓库:ubuntu安装docker:ubuntu脚本自动安装:ubuntu安装镜像加速器:Centos安装Dockercentos命令安装DockerFile:DokerFile指令DockerFile轻量化方式使用上下文环境构建:Docker数据卷:查看数据卷的信息:删除数据卷:无主的数据卷的删除用以下命令清理:实例共享数据卷:Docker镜像:docker下载镜像:Docker镜像操作虚
2021-05-19 13:37:29
3677
3
原创 Springboot junit 测试
Spring Boot 继承测试今天做了一个demo原本把其他的test代码给copy过来记过是不可以的。由于copy了test目录中间出现了些问题,只能自己搞一下了:引入maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scop
2021-05-15 11:20:47
270
原创 递归查询子树
需求:递归查询子树public class MenuTest { /** * 数据表结构 * id name pid * 1 test -1 * 2 test2 1 * 3 test3 1 * 返回类型 * [{id:'',name:'',children:[{id:'',name:'',children:[]}]}] * @return */ private List<
2021-05-12 10:22:16
274
原创 注解 @RequiredArgsConstructor
注解 @RequiredArgsConstructor生成带有必需参数的构造函数。 必需的参数是最终字段和具有约束的字段,例如@NonNull 。完整的文档可在@lconstructor的项目lombok功能页面上找到 。即使未列出,该注释也具有onConstructor参数。 有关更多详细信息,请参见完整的文档。这个事基于lombok的使用时必须导入lombok包。<dependency> <groupId>org.projectlombok</groupId
2021-04-19 17:30:09
102398
9
原创 开发记录问题-springcould yaml执行
在公司看了公司的yaml的分布及执行发现与原来自己使用的时候稍微不一样,然后进行温习一下。yaml的执行顺序一、bootstrap.yml(bootstrap.properties)与application.yml(application.properties)执行顺序bootstrap.yml(bootstrap.properties)用来程序引导时执行,应用于更加早期配置信息读取,如可以使用来配置application.yml中使用到参数等application.yml(application.
2021-04-19 17:25:53
268
原创 IDEA创建Spring 项目和SSM项目
IDEA创建Spring 项目最近在看spring的一些源码时发现需要运行一下,在IDEA中,我记的原来使用的spring initializr直接出现的就是的一个spring项目,但是我发现现在2021.3版本的IDEA创建的是使用Spring Boot的不是我想要的类型。我想要的是使用原生的spring,那么这时我就想着直接使用maven项目进行创建吧。直接使用maven 进行创建吧然后再pom.xml进行加入<!-- https://mvnrepository.com/artifac
2021-03-28 21:37:38
1331
原创 Spring IOC容器初始化探究基于Xml的获取方式
IOC容器的初始化在看IOC容器的时候先进行看下IOC吧。什么是IOc? IoC即控制反转,他使得组件或类之间尽量的形成一种松的耦合结构,创建类都是Ioc容器来干,Spring 容器是 Spring 框架的核心。容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁。把对象的创建、初始化、销毁交给 spring 来管理,而不是由开发者控制,实现控制反转。所谓IoC,就是通过容器来控制业务对象之间的依赖关系,而非传统实现中,由代码直接操控。这也就是“控制反转”概念的所在:控制
2021-03-28 21:12:35
376
原创 SpringSecurity系列文章 (六)Spring Security Oauth2
Spring Security Oauth2授权服务器Authorize Endpoint : 授权端点,进行授权Token endpoint :令牌端点,进行授权拿到对应的tokenIntrospection Endpoint :校验端点,校验tokenRevocation Endpoint : 撤销端点,撤销授权Spring Security Oauth2流程:1.用户访问,此时,没有token , Oauth2RestTemplate会出错,这个报错信息将会被Oauth2Cli
2021-01-19 22:07:19
893
原创 SpringSecurity系列文章 (五)Spring Security 在微服务中授权思路
CSRF(Cross-site request forgery)跨站请求伪造,也成为on-click attack 通常缩写为CSRF 或者XSRF,CSRF利用的是网站对用户浏览器的信任。XSS利用的是用户对指定网站的信任。跨站请求攻击,简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。这利用了web中用户身份验证的一个漏洞:简单的身份
2021-01-19 21:54:50
1388
原创 SpringSecurity系列文章 (四)Spring Security 配置以及一些类的分析
Spring Security配置&WebSecurityConfigurerAdapterWebSecurityConfigurerAdapter提供了简洁方式来创建WebSecurityConfigurer,其作为基类,可通过实现该类自定义配置类。其自动从SpringFactoriesLoader查找AbstractHttpConfigurer让我们去扩展,想要实现必须创建一个AbstractHttpConfigurer的扩展类,并在classpath路径下创建一个文件META-INF/spr
2021-01-19 21:48:01
569
原创 SpringSecurity系列文章 (三)Spring Security 中的注解
注解的使用@Secured判断是否具有角色,另外需要注意的是这个匹配的字符串需要添加前缀“ROLE_”; 用户具有哪些角色可以访问这个方法用注解之前必须在启动类中先开启注解。@EnableGlobalMethodSecurity(securedEnabled=true)@SpringBootApplication@EnableGlobalMethodSecurity(securedEnabled=true)public class Demo3SecurityApplication {
2021-01-19 21:42:32
492
原创 SpringSecurity系列文章 (二)Web权限的解决方案,自定义登录,跳转
web权限方案–认证(authentication)认证简单地说就是让系统知道是不是你,比如:你有身份证ID卡,那么你刷身份证到火车站,则可以通过人脸识别通过或者能够在系统中查到你的信息。设置登录用户名和密码的三种方式:通过配置文件配置yaml文件:## 在這配置了就不用代碼配置了spring.security.user.name=kayspring.security.user.password=sanshi通过配置类package com.kaysanshi.demosecurity.
2021-01-19 21:40:03
1608
5
原创 SpringSecurity系列文章 (一)Spring Security 认知
在文章开篇先说说为何使用Spring Security,在新的公司中现在认证授权服务是通过Spring Security auth2进行认证的,原本没用过这个啊,只知道apche shiro 现在还有更加厉害的东西,ok啥也别说就是学他。这个系列的文章都是通过自己看视频记得笔记,在这里分享出来,方便大家踩坑。Spring Security使用Spring Secruity的原因有很多,单大部分都发现了javaEE的Servlet规范或EJB规范中的安全功能缺乏典型企业应用场景所需的深度。提到这些规范,重
2021-01-19 21:29:19
533
原创 Spring Cloud各组件深入-openFeign(服务远程调用)
在上篇文章我们看了服务注册与发现Eureka,今天我们看下服务之间的调用组件。各组件深入之Spring Cloud openFeign 在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于HTTP RESTful的。Spring Cloud有两种服务调用方式,一种是Ribbon+RestTemplate,另一种是Feign。 Feign是声明性Web服务客户端。 它使编写Web服务客户端更加容易。 要使用Feign,请创建一个接口并对其进行注释。 它具有可插入注释支持,包
2021-01-10 17:53:09
839
原创 SpringCloud组件深入-Eureka(保证AP)
在前面的文章中我们进行学习了Spring Cloud的使用,那么我们对各个组件的使用是不是还不够深入,那么从今天开始我们将逐一进行学习Spring Cloud Netflix中所提供的组件。今天我们现看下服务注册与发现Eureka。在看Eureka之前我们先看下简略版的服务注册与发现的机制](https://imgchr.com/i/dO4A81)这个思路是把所有的服务的状态用数据库给保存起来,通过三个接口进行完成。一个是服务发现接口,一个是服务注册接口,一个是心跳检测接口,服务发现接口:客户端调用
2021-01-10 16:52:32
2272
原创 我的2020
2020不平凡2020是个不平凡的一年,自从元旦开始疫情爆发,我正是实习的阶段,我又是在腊月底回的老家,在老家中开始疫情严重,疫情吞噬了整个中国,武汉是最严重的地方,中国出现了一罩难求的局面,由于我已经在实习,所以我只能够在家办公,在家办公的方式真的很不爽,网络的限制,家里的冷清。即使这样我一边完成毕业设计,一边工作。就这样一直在家办公到4月份。返郑,开启租房工作+毕业设计回到郑州肯定要先解决住的问题,幸好在家已经提前联系了租房的中介,顺利的以7百大洋住了个主卧,这是毕业设计要占比更重要的阶段,毕竟是
2021-01-03 19:14:34
207
原创 我又使用github进行搭建了个博客 kaysanshi.top
闲来无事,搭建个博客博客搭建流程这是我通过上篇的我搭建了个博客 这篇只是简单的使用了一个单页面,这里我将详细说明我根据Jekyll搭建的流程。去git上把模板进行给拉取下来 clone forked repository.git clone git@github.com:github_username/Jalpc.git.或者直接git我的模板地址. `git clone git@github.com:kaysanshi/kaysanshi.github.io.git`.去配置列
2020-12-06 11:45:41
246
原创 Linux操作 unbutu和centos安装jdk和tomcat服务器,mysql
layout: posttitle: “Linux”date: 2020-11-11desc: “Linux”keywords: “Linux”categories: [Linux]tags: [Linux]icon: icon-linuxLinux 操作Linux常用的命令:文件操作目录切换: cd usr 切换到该目录下usr目录 cd …/ 切换到上一层目录 cd / 切换到系统根目录 cd ~ 切换到用户主目录 cd.
2020-11-13 22:02:07
422
原创 Git和gitlab 持续集成的一大利器
Gitgit概念:Git 是分布式版本控制和源代码管理系统,重点使用和管理代码的速度。Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发。Git 是根据GNU通用公共许可证版本2的条款分发的自由/免费软件git术语:workspace:工作区index/Stage:暂存区,Repository:存储库,仓库remote:远程仓库使用Git:速度快,设计简单,对非对称式的强力支持,完全分布式,有能力高效管理类似 Linux 内核一样的超大规模项目(速度和
2020-10-04 21:33:50
332
原创 SpringCloud技术点介绍以及设计模式和SpringCloud netfix解决方案
SpringCloud学习微服务架构必须有三年以上的开发的经验:微服务概念把一个大型的单体应用拆分为数十个支持微服务,他可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议定义:围绕业务领域组件进行创建组件,这些应用可独立进行开发,管理迭代,在分散的组件中使用云架构和平台式部署,管理,和服务功能,使得产品交互更加的简单本质:是用一些功能比较明确的,业务精练的服务去解决更大的更实际的问题,(2012年为微服务元年)微服务架构:微服务架构是一种架构概念,旨在通过将功能分解到各个离散的服务中
2020-10-04 21:31:57
2063
原创 vue与angular项目基本使用
Vue和angular项目:Vue项目创建安装nodejs使用cnpm :npm install -g cnpm --registry=https://registry.npm.taobao.org搭建vue环境: npm install --global vue-cli / cnpm install --global vue-cli创建项目:vue init webpack 项目名称 …一系列的操作运行: npm run devVue项目目录:build 文件夹,用来存放项目
2020-10-04 21:26:58
1933
原创 记录一个bug---集合遍历foreach函数进行remove操作和Arrays.asList()对包装类有效对基本类型会出现bug
Arrays.asList()在上次记录了这个中的bug,今天发现这个Arrays.asList()只对包装类有效对基本类型会出现问题:先看以下代码不错情况:报错情况再看Arrays.asList()的原码:仔细观察可以发现asList接受的参数是一个泛型的变长参数,而基本数据类型是无法泛型化的,这是因为把int类型的数组当参数了,所以转换后的列表就只包含一个int[]元素。上文报错是因为在for循环中进行romove了不建议在foreach进行这样做因为会抛出异常,这点在java开发手
2020-08-18 22:21:30
326
原创 SpringCloud itoken学习
敏捷开发: 是开发出核心的版本,后序不断的迭代完成升级, 敏捷开发的实现主要包括 SCRUM、XP(极限编程)、Crystal Methods、FDD(特性驱动开发)等等。其中 SCRUM 与 XP 最为流行。 同样是敏捷开发,XP 极限编程 更侧重于实践,并力求把实践做到极限。这一实践可以是测试先行,也可以是结对编程等,关键要看具体的应用场景。 SCRUM 则是一种开发流程框架,也可以说是一种套路。SCRUM 框架中包含三个角色,三个
2020-07-25 21:47:35
2186
基于springboot的酒店管理
2018-12-30
师生交流系统可实现视频的文件的下载
2018-08-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅