自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

相约滦北来看你

在技术的道路上匍匐前进!

原创 SpringBoot项目之Kaptcha实现登录验证码

一、pom.xml加载该依赖<dependency> <groupId>com.github.axet</groupId> <artifactId>kaptcha</artifactId> <version>0.0.9</version></dependency>二、RestFul风格,在这里写一个调用验证码的接口: @GetMapping(value = "/captcha.

2020-08-02 14:46:24 13

转载 SpringBoot使用CORS的addCorsMappings实现跨域与遇到的坑

什么是跨域问题这里我就不说了,直接说我使用addCorsMappings方法配置跨域时遇到的问题。具体代码如下:public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")

2020-07-19 11:29:25 152

原创 SpringBoot项目使用Swagger2接口工具

前言使用RESTful服务通常是涉及到多个终端的团队,比如Android、iOS、WEB等。为了让大家沟通顺畅,通常我们需要编写一份详细的RESTful业务接口文档使用Swagger2有助于我们编写一份详细的RESTful业务接口文档,过去经常会使用Word或者Excel,但是接口非常多,细节又复杂,如果由程序员高质量的输出一个文档,经常耗时长而且效果也不好。Swagger2能将代码和注释说明很好结合在一块。既减轻了研发人员的负担,又能输出高质量的文档。下面说下如何去使用pom.xml中添加Swag

2020-07-18 22:27:33 25

原创 springboot实现热部署

1. 前言在实际开发过程中,每次修改代码就得将项目重启,重新部署,对于一些大型应用来说,重启时间需要花费大量的时间成本。对于一个后端开发者来说,重启过程确实很难受啊。在 Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。下面我=我们就看看对于简单的类修改的热部署怎么实现。2. 原理深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方

2020-07-18 21:39:12 40

原创 Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource could

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver classAction:Consider the following: If you want an embedded database (H2, HSQL or Der

2020-07-18 21:22:57 38

原创 Mybatis使用generator逆向工程生成器生成entity、mapper、.xml模版类

前言今天将表建好了,但是一个一个的建实体类、Mapper接口、Mapper.xml文件就十分的麻烦,所以我就想到了MyBatis逆向,今天就操作一把!这里我们采用maven来进行操作。一、新建generatorConfig.xml文件首先建好表,在你的项目的resource文件中新建generatorConfig.xml文件。代码如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration

2020-07-18 21:17:18 25

原创 ApplicationContext is unlikely to start due to a @ComponentScan of the default package

springboot警告:ApplicationContext is unlikely to start due to a @ComponentScan of the default package解决办法:1、一般发出这个警告的原因是你把启动类直接放在的src目录下面。2、你需要在src目录下面再建一个包,然后把启动类放到下面。3、或者你错将启动类放到java文件中了,与项目包成了同级文件,你只需要将启动类放到项目包里就可以。...

2020-07-18 20:36:13 30

原创 解决Swagger UI 中文乱码问题

Swagger UI 中文乱码解决解决办法如下:1、file --> Settings --> file encodings2、在弹出的对话框右侧,将所有的Encoding(一共四个已经标红)全部改为**“UTF-8”**中间的长条为swagger的配置文件,一定要把这个改成utf-8否则还是会报错。切记!!3、Apply and OK4、重新启动并刷新界面,就好啦!...

2020-07-18 20:28:58 89

原创 Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

1、错误原因项目测试Swagger的时候,接口请求一直在那转,出不来数据,其他的配置都正常呀,我就很纳闷,今天记录一下。com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets

2020-07-18 20:22:36 39

原创 微服务架构之链路追踪原理
原力计划

一、 链路追踪的使用场景微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元。由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很难去定位。主要体现在,一个请求可能需要调用很多个服务,而内部服务的调用复杂性,决定了问题难以定位。所以微服务架构中,必须实现分布式链路追踪,去跟进一个请求到底有哪些服务参与,参与的顺序又是怎样的,从而达到每个请求的步骤清晰可见,出了问题,很快定位。举几个例子:在微服务系统中,一个来自用户的请求,请求先达到前端A(如前端界面),然后

2020-07-16 13:41:29 50

原创 Springboot框架添加防止XSS攻击功能

觉得很不多的文章,推荐给大家!https://www.cnblogs.com/mrBeany/p/10649853.html

2020-07-13 18:11:33 73

原创 java.Text.ParseException:Unparseable date:“undefined 00:00:00“

request.getParameter() 获取的日期要toString一下再parse,否则就会报这个异常。if (page.getParams().get("startTime") != null) { Date start = DateParser.parse(page.getParams().get("startTime").toString(), true); page.getParams().put("startTime", s

2020-07-13 09:59:00 216

原创 深入理解集群、分布式、微服务的概念、关系和区别
原力计划

一、集群与分布式的区别区别: 集群是个物理形态,分布式是个工作方式。分布式:1、一个业务分拆多个子业务,部署在不同的服务器上,2、将不同的业务分布在不同的地方。3、分布式中的每一个节点,都可以做集群4、从窄意上理解,也跟集群差不多,但是它的组织比较松散5、分布式的每一个节点,都完成不同的业务,一个节点垮了,那这个业务就不可访问了6、以缩短单个任务的执行时间来提升效率的举例分布式的目标是降低单个对象的重要度,从而提升整个系统的性能(稳定性,计算能力等等),不过代价是增加了数据传输量假如

2020-07-12 21:07:42 210

原创 【每日一道面试题】之Java项目中高并发问题解决方案

Java项目中高并发问题的解决方案这道题是比较典型的题吧,也是我第一个公司入职的时候,面试官问我的,当时我回答只能说是星星之火,还不能燎原那种,差点被面试官给浇灭。1、采用缓存技术这是最简单的一个回答,用户缓存、页面缓存等一切缓存。使用特定的机制来进行刷新,利用消耗内存空间来换取用户的效率,同时减少数据库的访问次数。2、优化SQL语句把数据库的查询语句进行优化,一般复杂的sql语句就不要用ORM框架自带的做法来写,采用自己来写sql,hibernate中的hsl语句就会很耗时。3、优化数据库的表

2020-07-12 13:30:12 93

原创 Vue学习之Vue结合 ElementUI 组件库搭建Web工程项目

创建Vue项目打开cmd命令行界面,创建一个全新的vue项目,我们命名为hello-vue,这里附上ElementUI网址如下:ElementUI# 使用 webpack 打包工具初始化一个名为 hello-vue 的工程vue init webpack hello-vueNPM 安装相关组件依赖时可能会遇到权限问题,此时使用 PowerShell 管理员模式运行即可;开始菜单 -> 鼠标右击 -> Windows PowerShell (管理员)安装依赖我们需要安装 vue-r

2020-07-12 12:54:51 68

原创 Vue学习之参数传递与事件分发使用this.$emit(‘自定义事件名‘, 参数)自定义事件删除待办事项

使用自定义事件删除待办事项数据项在 Vue 的实例中,但删除操作要在组件中完成,那么组件如何才能删除 Vue 实例中的数据呢?此时就涉及到参数传递与事件分发了,Vue 为我们提供了自定义事件的功能很好的帮助我们解决了这个问题;使用this.$emit(‘自定义事件名’, 参数),操作过程如下修改创建 Vue 实例代码var vm = new Vue({ el: '#vue', data: { todoItems: ['《刀剑神域3》', '《关于我转生成为史莱姆这件事

2020-07-11 12:25:11 102

原创 Vue学习之Vue的计算属性与Vue内容分发

vue计算属性vue计算属性的重点突出在 属性 两个字上(属性是名词),首先它是个 属性 其次这个属性有 计算 的能力(计算是动词),这里的 计算 就是个函数;简单点说,它就是一个能够将计算结果缓存起来的属性(将行为转化成了静态的属性),仅此而已<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>布局篇 计算属性</title> <sc

2020-07-11 12:21:08 47

原创 SSM框架实现新闻网站信息管理系统前台后台综合开发项目实战

新闻网站的实现分为前台及后台,采用SSM、maven进行开发,数据库采用mysql数据库。一、前台所有前台页面上面的部分同主页上面的部分相同。1. 主页在主页的左上角有logo可以通过点击logo重新访问主页。在右上角有一个用户登录/注册的链接,用以访问用户的登录/注册页面。在登录/注册链接下有一搜素框,用以实现通过关键字搜素查找索要浏览的新闻。在页面的中间的左边的几个框中会显示符合该框主题的热点新闻。在页面的中间的右边有三个框,每个框会显示一个最热新闻,包含新闻的题目及部分内容。在页面

2020-07-11 11:06:12 84

原创 Vue学习之nvm安装node.js环境搭建Vue-cli脚手架环境及IDEA快速开发Web应用

第一个Vue-cli应用之前练习了Vue一些基础的命令标签,在学习中在遇到一些基础知识我会继续向里面进行补充。链接在这里:Vue原理与基础语法事件标签总结但是大多数开发都是采用的vuecli来进行,这样能能够实现组件化开发,提高开发效率和成本,首先就是安装vuecli。什么是vue-cli?vue-cli 官方提供的一个脚手架(预先定义好的目录结构及基础代码,咱们在创建 Maven 项目时可以选择创建一个骨架项目,这个骨架项目就是脚手架。vue-cli是有Vue提供的一个官方cli,专门为单页面

2020-07-11 10:41:07 59

原创 nvm、node、npm之间的关系和区别

一、区别nvm:nodejs 版本管理工具。也就是说:一个 nvm 可以管理很多 node 版本和 npm 版本。这个技术出现的原因, 是由于不同的项目node版本也不同,有的是5.0.1, 有的是6.3.2。 如果node出现版本不对,运行 某个应用时,很可能就会遇到各种莫名其妙的问题 。nodejs:在项目开发时的所需要的代码库npm:nodejs 包管理工具。在安装的 nodejs 的时候,npm 也会跟着一起安装,它是包管理工具。npm 管理 nodejs 中的第三方插件。他的作用与R

2020-07-10 14:41:49 39

原创 Git和SVN的区别并在Windows电脑安装Git

Git是什么?Git是目前较先进的分布式版本控制系统,通俗点讲就是一个备份系统,你每次更新并提交代码之后,它会给你提交的代码设置一个版本标记并将每个版本标记的代码都备份在系统上。如果你想要寻找你修改之前的代码,直接进行回滚到你想要的那个版本就可以了。Git和SVN的区别SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域

2020-07-09 22:31:12 38

原创 W3Cschool编程实战JS脚本算法挑战:寻找数组中的最大值算法挑战

寻找数组中的最大值算法挑战在右边的大数组中包含了4个小数组,请分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新的数组。提示:你可以用for循环来迭代数组,并通过arr[i]的方式来访问数组的每个元素。当你完成不了挑战的时候,可以点击’求助’。function largestOfFour(arr) {var maxArr = [];//遍历数组for(var i = 0;i < arr.length;i++){ for(var j = 0;j < arr[i].l

2020-07-08 18:47:20 42

原创 Java求固定数组中的最小值

首先创建一个长度是5的数组然后给数组的每一位赋予随机整数通过for循环,遍历数组,找出最小的一个值出来0-100的 随机整数的获取办法有多种,下面是参考办法之一:(int) (Math.random() * 100)Math.random() 会得到一个0-1之间的随机浮点数,然后乘以100,并强转为整型即可。public static void main(String[] args) { int[] arrInt=new int[5]; for(int i

2020-07-07 19:32:22 41 1

原创 W3Cschool编程实战JS脚本算法挑战:设置首字母大写算法挑战

设置首字母大写算法挑战返回一个字符串,确保字符串的每个单词首字母都大写,其余部分小写。像’the’和’of’这样的连接符同理。当你完成不了挑战的时候,可以点击’求助’。你可能需要使用到以下链接:String.prototype.split()function titleCase(str) {var arr= str.toLowerCase().split(" ");var srrStr = null;for(var i = 0;i< arr.length;i++){ srrSt

2020-07-07 18:53:26 31

原创 W3Cschool编程实战JS脚本算法挑战:寻找最长的单词算法挑战

W3Cschool编程实战JS脚本算法挑战:function findLongestWord(str) {var arr=str.split(' ');var arrlength=0;for(var i=0;i<arr.length;i++){ if(arr[i].length>arrlength){ arrlength=arr[i].length; }}return arrlength;}findLongestWord("The quick brow

2020-07-06 19:55:56 28

原创 Vue学习之利用Axios实现异步通信原理

利用Axios实现异步通信原理在前端工作的时候,大部分数据来源都是通过后台传递的json数据来进行前端的数据展示,所以接下来就进行一个模拟Ajax的异步通信。以后可能会用到。<div id="app"> <!--用来获取json中的数据 对象名称为info--> <div>名称:{{info.name}}</div> <div>地址:{{info.address.country}}-{{info.address.city

2020-07-06 19:26:56 65

原创 Vue学习之Vue原理与Vue基础语法、事件标签总结
原力计划

什么是 MVVMVue主要的就是MVVM的实现,它既实现了Anguler的模块化开发,又实现了React的虚拟DOM,但是作为一个后端开发人员,我们只要求会用就可以,并不用去了解ES6标准、Node.js啥的,在这里就Vue简单的一些操作进行梳理一下。MVVM(Model-View-ViewModel)是一种软件架构设计模式,由微软 WPF(用于替代 WinForm,以前就是用这个技术开发桌面应用程序的)和 Silverlight(类似于 Java Applet,简单点说就是在浏览器上运行的 WPF)

2020-07-06 19:26:11 50

原创 LetCode第912题 排序数组之冒泡排序

冒泡排序(BubbleSort):依次比较相邻的两du个数,将小数放在前面zhi,大数放在后面。即首先比较第dao1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最小数。如此下去,直至最终完成排序

2020-07-06 16:14:46 35 2

原创 W3Cschool编程实战JQuery知识点总结
原力计划

1、初识JQuery现在让我们开始学习最流行的JavaScript框架jQuery吧。至于JavaScript,不用担心,我们很快就会涉及到它。在我们开始学习使用jQuery之前,需要在HTML文件中添加一些代码。首先,在页面顶部添加一行script元素,然后在下一行写上结束符。浏览器会运行script里所有的Javascript,包括jQuery。在你的script元素里,添加这段代码:`$(document).ready(function() {到你的script中,然后在下一行用});`

2020-07-05 20:09:45 83

原创 W3Cschool编程实战教程中BootStrap相关基础知识点总结
原力计划

1、通过Bootstrap,我们只要给图片添加 img-responsive 的class属性,图片的宽度就能自动适配你手机屏幕的宽度啦。2、Bootstrap除了可以使图片自适应以外,还可以很简单的让头部标题的文字居中,使标题看起来更美观。我们只需要给h2标签添加text-center的class属性,标题文字就可以居中了。友情提醒:你可以使用空格给标签定义多个class,就像下面这样:<h2 class="red-text text-center">your text</h2&g

2020-07-05 10:40:36 52

原创 W3Cschool前端基础编程实战JS相关知识点总结
原力计划

1、js[][] 第一个索引表示第几个数组,第二个索引表示该数组第几个数2、将数据追加到一个数组末尾的最简单的方法是通过 push() 函数。改变数组中数据的另一种方法是用 .pop() 函数。.pop() 函数移除的是最后一个元素.shift()移除的是第一个元素.push()在数组末尾添加元素.unshift()是在数组头部添加元素3、全等(=)是相对于相等操作符()的一种操作符。与相等操作符不同的是全等比较严格,它会同时比较元素的值和 数据类型。4、js声明实体类属性名称加双引

2020-07-04 20:11:40 54

原创 拷贝的表的SQL语句 SELECT INTO 和 INSERT INTO SELECT的用法与区别

一、select into from语句形式为:Insert into Table2(field1,field2,…) select value1,value2,… from Table1应用场景:常用于创建表的备份复件或者用于对记录进行存档example1:SELECT * INTO dbo.t_Category20190327 FROM dbo.t_Category WHERE ParentId=0example2:SELECT Persons.LastName,Orders.

2020-07-01 08:48:39 33

原创 关于MySQL中的LEFT JOIN和LEFT OUTER JOIN的区别

LEFT JOIN是LEFT OUTER JOIN的简写版;内连接(INNER JOIN) :只连接匹配的行;左外连接(LEFT JOIN或LEFT OUTER JOIN) :包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行;右外连接(RIGHT JOIN或RIGHT OUTER JOIN) :包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行;全外连接(FULL OUTER JOIN) :包含左、右两个表的全部行,不管另外一边的

2020-06-30 18:24:57 78

原创 实现Excel导出SpringBoot项目中表格数据

Excel导出SpringBoot项目中表格数据最近写业务代码,涉及到这个,前阵子写了篇博客介绍了用JS以Excel形式导出后台返回给前台的数据,这种方法只能是导出一个页面的数据,并不能按分页的形式导出,所以今天就改写一下,实现将接口返回的所有数据进行全部导出。前台jsp/html页面代码<div class="p-sm border no-top-border"> <button type="submit" class="btn btn-warning start

2020-06-25 15:40:21 53

原创 android.view.WindowLeaked的解决办法

android.view.WindowLeaked的解决办法按字面了解,Window Leaked大概就是说一个窗体泄漏了,也就是我们常说的内存泄漏,为什么窗体会泄漏呢?产生原因:我们知道Android的每一个Activity都有个WindowManager窗体管理器,同样,构建在某个Activity之上的对话框、PopupWindow也有相应的WindowManager窗体管理器。因为对话框、PopupWindown不能脱离Activity而单独存在着,所以当某个Dialog或者某个PopupWi

2020-06-24 20:33:56 42

原创 理解Registrator、Nginx、Consul架构与SpringCloud Feign、grpc、rest通信之间的不同点
原力计划

在互联网应用领域,服务的动态性需求十分常见,这就对服务的自动发现和可动态扩展提出了很高的要求。微服务系统动辄上万个服务,而且还要动态伸缩。以人工写好的IP、Port 硬编码脚本的方式无法做到大规模自动化,稍微多点服务运维就傻了。微服务必然要做到ip和port自动分配,减少人工干预。我们需要让每个服务能动态的创建地址,同时调用方要能感知地址变化。这就需要有一个服务注册与发现的机制,这篇文件就是讨论如何实现这个机制。Docker 的出现,以及微服务架构的兴起,让众多开源项目开始关注在松耦合的架构前提下,如

2020-06-21 18:33:04 130

原创 SpringBoot+MyBatis搭建Restful项目

SpringBoot+MyBatis搭建Restful项目前两天就rest和restful进行了一个深度的总结,同时写在此之前写了一个SpringBoot整合MyBatis的一个小Demo,今天就简单介绍一下RestFul风格的项目是怎样的,首先大家可以先去了解一下Rest与Restful深度理解Rest与Restful项目的搭建基本上都是根据我上篇的文章中搭建的操作是一样的,大家就看这里进行搭建就可以SpringBoot整合持久层技术之SpringBoot搭建MyBatis项目实战在这里我们对C

2020-06-21 08:23:13 64

原创 Spring Data JPA构建Restful服务应用Demo
原力计划

Spring Data JPA构建Restful服务应用Demo昨天介绍了什么是Rest和Restful,没有看到的同学可以参考我的这篇文章:深入理解REST与RESTfulAPI那么说了这么多咱就实战一把,如何用SpringBoot来实现Rest,只需要Spring DataJPA和Spring Data Rest两个依赖包,快速开发一个restful应用。创建项目pom.xml <dependencies> <dependency>

2020-06-20 17:15:53 45

原创 SpringBoot整合持久层技术之搭建JDBCTemplate项目实战
原力计划

SpringBoot整合持久层技术之搭建SpringJDBCTemplate项目实战现在有了MyBatis之后很少人使用JDBCTemplate来整合项目了,要么就是JPA技术,要么就是Mybatis来操作数据库,今天我搭建一个springboot的template项目,看看其和JPA、Mybatis有什么不同的地方,方便大家一起学习。什么是JDBCTemplateJdbcTemplate是Spring提供的一套JDBC模板框架,它主要就是利用AOP技术来解决直接使用JDBC时大量的重复代码的问题,J

2020-06-19 22:27:07 59

原创 深入理解REST与RESTfulAPI
原力计划

深入理解REST与RESTfulAPI引言传统API接口浅谈RESTRestAPI=RESTful操作规则Rest概念REST 系统的特征REST 系统的特征Rest优点和缺点引言大学我们接触最多的就是JSP技术,它可以让我们在页面中嵌入Java代码,但是这样的技术实际上限制了我们的开发效率,因为需要我们Java工程师将html转换为jsp页面,并写一些脚本代码,或者前端代码。这样会严重限制我们的开发效率,也不能让我们的java工程师专注于业务功能的开发,所以目前越来越多的互联网公司开始实行前后端分离。

2020-06-19 17:42:48 130

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