java
文章平均质量分 63
Peak_Gao
成功并非一蹴而就,而是源于日复一日的努力与坚持。
展开
-
springboot+vue实现微信公众号扫码登录
通常在个人网站中,都会有各种,其中需要认证才能使用,导致个人开发者不能进行使用此功能,但是我们可以使用微信公众号回复特定验证码来进行登录操作。原创 2024-02-27 10:50:11 · 602 阅读 · 10 评论 -
微信公众号关键词自动回复
今天主要给大家讲一下如何实现微信公众号关键词的自动回复功能,就如网站的文章而言,进行人机识别,需要关注公众号回复验证码获取到验证码从而展示文章内容,,具体效果如下图。原创 2024-02-27 10:44:24 · 701 阅读 · 3 评论 -
「Java同步原理与底层实现解析」
每一个锁关联一个线程持有者和一个计数器、当计数器为0时表示该锁没有被任何线程持有,此时任何线程都可以获得该锁并调用,当有一个线程请求成功时,jvm会记录下持有锁的线程并将计数器设为1,此时其他线程请求该锁,则必须等待,当持有该锁的线程再次请求这个锁,重入后将计数器加1,当线程退出该锁,计数器就会递减,如果计数器为0时则释放锁。在使用分布式锁是会出现,在释放锁的时候如果前面的业务出问题了,导致释放锁没有执行,所以要对之前的业务逻辑进行异常捕获,并且将释放锁放到finally中,但是还会出现。原创 2024-02-20 10:28:12 · 453 阅读 · 0 评论 -
(水印)html转图片
html转图片+水印原创 2023-09-27 10:11:08 · 12321 阅读 · 0 评论 -
linux+nginx+前后端部署
目前知道的部署方式有前后端统一使用tomcat部署、nginx部署nginx部署:在linux上搭建nginx环境见nginx,前端发布作者用的vue2 , history模式(也就是去掉url中的 #)搭建好vue项目后,在控制台打包,执行命令npm run build也可以在项目的根目录找到package.json,点击build的按钮,会在vue项目的目录下生成一个dist文件,咱们只需要把dist打成dist.zip就ok登录linux服务器,将dist,zip上传到你想要的目录原创 2022-04-21 17:38:18 · 13061 阅读 · 0 评论 -
多线程-同步代码块中的隐患及解决办法
synchronized原创 2022-04-07 10:39:07 · 11572 阅读 · 0 评论 -
XSSFWorkbook和HSSFWorkbook导出(亲测)
项目上这种功能很多,写了一个工具类,代码有点垃圾,大神勿喷导入导出poi组件Excel <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.9</version> </depe.原创 2022-03-28 17:06:24 · 14177 阅读 · 0 评论 -
Linux(CentOS7)设置Tomcat为开机启动项
记项目组需要升级服务器内存,咔咔把服务器全部停掉,升级完之后,我人傻了,不会自启动,连夜干到3点多挨个服务器启动设置Tomcat为开机启动项按照上面的方式启动Tomcat,如果我们的虚拟机或者服务器关闭了,重启服务器后Tomcat是关闭的,但是我们希望虚拟机或者服务器重启后,Tomcat可以自己启动,所以我们需要设置Tomcat为开机启动项创建setenv.sh文件,为Tomcat添加启动参数catalina.sh在执行的时候会调用同级路径下的setenv.sh来设置额外的环境变量,因此在/us.原创 2021-12-20 17:37:23 · 12202 阅读 · 0 评论 -
SpringBoot系列----注解详解
注解原创 2020-12-23 16:52:02 · 552 阅读 · 1 评论 -
MyBatis大全
MyBatis 概念MyBatis 是一个持久层框架,是一个半自动化的 ORM 框架,不仅支持自定义 SQL、存储过程以及高级映射。MyBatis的工作流程首先用流去读取读取配置文件(数据库连接相关的信息),才可以创建sqlsessionfactory,通过sqlsessionfactory创建sqlseisson,用sqlseisson执行数据库操作,然后关闭流。MyBatis的优点封装了底层的JDBC,API的调用,与JDBC相比减少了50%以上的代码量,提供了xml标签,可以动态编写sq原创 2020-09-04 10:52:25 · 104 阅读 · 1 评论 -
Shiro学习-基础入门介绍(一)
Shiro网址:http://shiro.apache.org概念:Apache出品的java安全(权限)框架作用:认证、授权、加密、会话管理、Web集成、缓存功能简介:最主要常用的4个功能1.Authentication(o 翻 特 k神)身份认证/登录,验证用户是不是拥有相应的身份;2.Authorization (o 神 歪 s 神)授权 即权限验证, 验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某原创 2020-12-21 16:14:42 · 591 阅读 · 0 评论 -
(前后端分离)SpringBoot配置全局跨域,前端一访问就报错的原因竟然是这个
前端代码(前后端分离,前端也需要配置跨域)在main.js里面配置var axios = require('axios')axios.defaults.baseURL = 'http://localhost/api'axios.defaults.withCredentials = trueVue.prototype.$axios = axios后端代码(后端需要支持跨域)@SpringBootConfigurationpublic class MyWebConfigurer impleme原创 2020-12-21 10:12:41 · 1261 阅读 · 0 评论 -
ajax请求接口,后端已经访问到了,前端报404
调接口报错如下:Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Tue Sep 11 16:01:03 CST 2018There was an unexpected error (type=Not Found, status=404).No message available按理说404是路径不多,导致找不到着,但是后端的转载 2020-10-22 11:38:10 · 1675 阅读 · 0 评论 -
关于SSM项目的前端报406
引起的原因:由于设置了@ResponseBody,要把对象转换成json格式,缺少转换依赖的jar包,故此错。解决办法:在pom.xml下添加<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.11</version>原创 2020-10-20 16:27:14 · 180 阅读 · 0 评论 -
设计模式~~~责任链模式(职责链模式)
学习难度:※※※使用频率:※※※※原创 2020-10-14 09:56:11 · 663 阅读 · 0 评论 -
设计模式~~~模板方法模式
学习难度:※※使用频率:※※※在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等,其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现,但是办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延迟到子类中实现。这样的例子在生活中原创 2020-10-13 16:14:26 · 11574 阅读 · 0 评论 -
设计模式~~~桥接模式
学习难度:※※※使用频率:※※※在现实生活中,某些类具有两个或多个维度的变化,如不同颜色和字体的文字、不同品牌和功率的汽车、不同性别和职业的男女、支持不同平台和不同文件格式的媒体播放器等。一、 定义将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。遵循了里氏替换原则和依赖倒置原则,最终实现了开闭原则,对修改关闭,对扩展开放二、 优点和缺点优点:抽象与实现分离,扩展能力强符合开闭原则符合合成复用原则其实现细节对客户原创 2020-10-13 14:32:59 · 579 阅读 · 0 评论 -
设计模式~~~装饰者模式
学习难度:※※※使用频率:※※※上班族大多都有睡懒觉的习惯,每天早上上班时间都很紧张,于是很多人为了多睡一会,就会用方便的方式解决早餐问题。有些人早餐可能会吃煎饼,煎饼中可以加鸡蛋,也可以加香肠,但是不管怎么“加码”,都还是一个煎饼。在现实生活中,常常需要对现有产品增加新的功能或美化其外观,如房子装修、相片加相框等,都是装饰器模式。在软件开发过程中,有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下,可以动态地扩展其功能。所有这些都可以釆用装饰模式来实现。一原创 2020-10-13 14:07:02 · 1688 阅读 · 0 评论 -
设计模式~~~组合模式
学习难度:※※※使用频率:※※※※在现实生活中,存在很多“部分-整体”的关系,例如,大学中的部门与学院、总公司中的部门与分公司、学习用品中的书与书包、生活用品中的衣月艮与衣柜以及厨房中的锅碗瓢盆等。在软件开发中也是这样,例如,文件系统中的文件与文件夹、窗体程序中的简单控件与容器控件等。对这些简单对象与复合对象的处理,如果用组合模式来实现会很方便。一、 定义二、 优点和缺点优点:缺点:三、 应用场景四、 组合模式的结构和使用4.1 组合模式的结构4.2 代码伺候原创 2020-10-13 11:50:09 · 689 阅读 · 0 评论 -
SVN——由于目标计算机积极拒绝,无法连接
前言由于小编直接捯饬过SVN,所以最近有人问了小编这么一个问题,就是我们这边服务器环境上的SVN仓库地址不能连接,不能提交代码和下载代码了,错误内容就是“由于目标计算机积极拒绝,无法连接。。”出错的原因因为我之前遇到过类似的情况,所以我询问了相关的事项,知道了这次出问题的原因是重启了服务器造成的,因为很久之前我负责的时候对SVN写了开机启动,但是开机自启就会遇到这个问题,后来我不负责这块了,就忘了跟他们说了,导致这次SVN服务是启动了,但是无法正常的访问仓库。解决方案其实解决方案很简单,把服务关掉转载 2020-10-13 10:05:18 · 8379 阅读 · 0 评论 -
设计模式~~~观察者模式
在现实世界中,许多对象并不是独立存在的,其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。例如,某种商品的物价上涨时会导致部分商家高兴,而消费者伤心;还有,当我们开车到交叉路口时,遇到红灯会停,遇到绿灯会行。这样的例子还有很多,例如,股票价格与股民、微信公众号与微信用户、气象局的天气预报与听众、小偷与警察等。在软件世界也是这样,例如,Excel 中的数据与折线图、饼状图、柱状图之间的关系;MVC 模式中的模型与视图的关系;事件模型中的事件源与事件处理者。所有这些,如果用观察者.原创 2020-10-13 09:08:31 · 11797 阅读 · 0 评论 -
设计模式~~~策略模式
在现实生活中有很多的例子,比如:你想要去旅游,可以坐飞机,可以做火车,可以自己开车等在开发中也有很多类似的例子,例如:你想要实现某一个功能,可以根据不同的算法、不同的框架、不同策略来完成一、 定义该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户特点策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。二、 优点与缺点优点:多重条件语句不易维护,而使用策略模式可以.原创 2020-10-12 17:06:46 · 583 阅读 · 0 评论 -
设计模式~~~外观模式
外观模式是“迪米特法则”的典型应用一、 定义是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。二、 优点与缺点优点:降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调用它的客户类。对客户屏蔽了子系统组件,减少了客户处理的对象数目,并使得子系统使用起来更加容易。降低了大型软件系统中的编译依赖性,简化了系统在不同平台之间的移植.原创 2020-10-12 15:53:46 · 556 阅读 · 1 评论 -
设计模式~~~适配器模式
在现实生活中,经常出现两个对象因接口不兼容而不能在一起工作的实例,这时需要第三者进行适配。例如,讲中文的人同讲英文的人对话时需要一个翻译,用直流电的笔记本电脑接交流电源时需要一个电源适配器,用计算机访问照相机的 SD 内存卡时需要一个读卡器等。在软件设计中也可能出现:需要开发的具有某种业务功能的组件在现有的组件库中已经存在,但它们与当前系统的接口规范不兼容,如果重新开发这些组件成本又很高,这时用适配器模式能很好地解决这些问题。一、 定义将一个类的接口转换成客户希望的另外一个接口,使得原本由于接.原创 2020-10-10 14:33:14 · 540 阅读 · 0 评论 -
Java23种设计模式——最牛逼的例子(精)
一、创建型模式 1、FACTORY:追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,固然口味有所不同,但不管你带MM往麦当劳或肯德基,只管向服务员说;来四个鸡翅就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。2、BUILDER:MM最爱听的就是;我爱你;这句话了,见到不同地方的MM,要能够用转载 2020-10-10 14:04:22 · 1165 阅读 · 1 评论 -
微服务浅谈------点多
一、微服务介绍什么是微服务在介绍微服务时,首先得先理解什么是微服务,顾名思义,微服务得从两个方面去理解,什么是"微"、什么是"服务", 微 狭义来讲就是体积小、著名的"2 pizza 团队"很好的诠释了这一解释(2 pizza 团队最早是亚马逊 CEO Bezos提出来的,意思是说单个服务的设计,所有参与人从设计、开发、测试、运维所有人加起来 只需要2个披萨就够了 )。 而所谓服务,一定要区别于系统,服务一个或者一组相对较小且独立的功能单元,是用户可以感知最小功能集。微服务由来微服务最早由M原创 2020-10-10 14:01:46 · 606 阅读 · 1 评论 -
设计模式~~~代理模式
在有些情况下,一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象。例如,购买火车票不一定要去火车站买,可以通过 12306 网站或者去火车票代售点买。又如找女朋友、找保姆、找工作等都可以通过找中介完成。一、 定义由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。二、 优点和缺点优点:代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的.原创 2020-10-10 09:04:12 · 11563 阅读 · 2 评论 -
设计模式~~~建造者模式
在软件开发过程中有时需要创建一个复杂的对象,这个复杂对象通常由多个子部件按一定的步骤组合而成。例如,计算机是由 CPU、主板、内存、硬盘、显卡、机箱、显示器、键盘、鼠标等部件组装而成的,采购员不可能自己去组装计算机,而是将计算机的配置要求告诉计算机销售公司,计算机销售公司安排技术人员去组装计算机,然后再交给要买计算机的采购员。以上所有这些产品都是由多个部件构成的,各个部件可以灵活选择,但其创建步骤都大同小异。这类产品的创建无法用前面介绍的工厂模式描述,只有建造者模式可以很好地描述该类产品的创建。建造.原创 2020-10-09 15:58:35 · 715 阅读 · 0 评论 -
设计模式~~~抽象工厂模式
一、定义前面介绍的工厂方法模式中考虑的是一类产品的生产,如:电视机厂只生产电视机、汽车厂只生产汽车同种类称为同等级,也就是说:工厂方法模式只考虑生产同等级的产品,但是在现实生活中许多工厂是综合型的工厂,能生产多等级(种类) 的产品,如农场里既养动物又种植物,电器厂既生产电视机又生产洗衣机或空调,大学既有软件专业又有生物专业等。 本节要介绍的抽象工厂模式将考虑多等级产品的生产,将同一个具体工厂所生产的位于不同等级的一组产品称为一个产品族二、优点和缺点三、使用场景四、抽象工厂的结构和实现原创 2020-10-09 14:38:34 · 529 阅读 · 0 评论 -
Dubbo介绍
概念Dubbo它是阿里巴巴开源的一款高性能的优秀服务框架,使应用通过RPC远程调用方式实现输入和输出功能,可以和Spring框架无缝集成,Dubbo框架是 基于容器运行的,容器就是Spring。Dubbo通讯协议(tcp-ip)三大核心1.面向接口的远程方法调用2.智能容错和负载均衡3.服务自动注册和发现作用1.透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。2.软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。3. 服务原创 2020-10-09 11:09:52 · 126 阅读 · 1 评论 -
设计模式~~~工厂方法模式
现实生活中,原始社会自给自足(没有工厂),农耕社会小作坊(简单工厂,民间酒坊),工业革命流水线(工厂方法,自产自销),现代产业链代工厂(抽象工厂,富士康)。我们的项目代码同样是由简到繁一步一步迭代而来的,但对于调用者来说,却越来越简单。在日常开发中,凡是需要生成复杂对象的地方,都可以尝试考虑使用工厂模式来代替。注意:上述复杂对象指的是类的构造函数参数过多等对类的构造有影响的情况,因为类的构造过于复杂,如果直接在其他业务类内使用,则两者的耦合过重,后续业务更改,就需要在任何引用该类的源代码内进行更改,.原创 2020-09-30 10:16:31 · 11651 阅读 · 0 评论 -
设计模式~~~原型模式
一、定义二、特点三、优点和缺点四、使用场景五、原型模式的结构与实现5.1 原型模式的结构5.2 代码伺候(原型模式的实现)六、原型模式的应用实例原创 2020-09-29 10:40:55 · 571 阅读 · 1 评论 -
设计模式~~~单例模式
一、概念指一个类只有一个实例,且该类能自行创建这个实例的一种模式。 例如,Windows中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。单例模式在现实生活中的应用也非常广泛,例如公司 CEO、部门经理等都属于单例模型二、特点单例类只能有一个实例。提供全局的访问点单例类必须自己创建自己的唯一实例。三、优点和缺点优点:单例模式可以保证内存里只有一个实例,减少了内存的开销。可以避免对资源的多重占用。单例模式原创 2020-09-28 14:20:14 · 696 阅读 · 0 评论 -
面向对象设计原则~~~开闭原则
在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据 7条原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。我们将在下面的几节中依次来介绍这 7 条原则,本节首先介绍开闭原则。一、定义开闭原则(Open Closed Principle,OCP)由勃兰特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作《面向对象软件构造》(Object Oriented Software Construction)中提出:软件实体应当对扩.原创 2020-09-27 15:20:10 · 606 阅读 · 0 评论 -
设计模式的概述及各个模式的功能介绍
一、概念设计模式是前辈对代码的总结,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。二、意义设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。正确使用设计模式具有以下优点:可以提高程原创 2020-09-27 13:54:33 · 747 阅读 · 0 评论