自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(99)
  • 收藏
  • 关注

原创 二十三种设计模式之代理模式

开始工作也已经有一年了,最近一直在学习设计模式,现将所学记录一下,方便日后查阅。我近期学习的设计模式是代理模式,所以先写这个。代理模式介绍:代理模式有静态代理、动态代理(其中动态代理有jdk动态代理和cglib动态代理)。定义:提供一个对象来对目标对象进行代理,用代理对象来替代目标对象从而达到对目标对象的控制和隐藏。为什么使用代理模式:开闭原则:使用代理模式生成代...

2018-07-22 10:10:39 936 1

原创 SqlServer2016企业版安装

https://www.cnblogs.com/cxzdy/p/5388509.html

2024-06-06 08:00:27 622 1

原创 FTP服务器搭建

配置FTP服务时本地连接需要写为localhost。

2022-10-04 12:40:05 258 1

原创 Windows下Jenkins部署SpringBoot项目

使用Jenkins打包项目可以避免手动打包上传部署,节省了不少时间,有利于团队开发。我所部署的项目是SpringBoot,版本控制使用的是SVNWindows下Jenkins的安装详见另一篇文章Windows安装Jenkins_呆某人的博客-CSDN博客_windows 安装jenkins设置Maven安装路径Jenkins面板中选择Maven Jenkins,点击Global Tool Configuration找到Maven安装,新增maven,填入maven的Name和..

2022-04-26 19:31:28 2900

原创 PKIX问题:sun.security.validator.ValidatorException: PKIX path building failed

对新项目clean install 的时候,报错了,提示没有合法的证书,报错信息如下[ERROR] Failed to execute goal on project springbootactivity: Could not resolve dependencies for project com.example:springbootactivity:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at org.springframework.bo

2022-03-27 17:48:48 1933 1

原创 Windows安装Jenkins

Jenkins下载下载地址:https://www.jenkins.io/zh/Jenkins安装这里选择下Jenkins安装的目录以下操作均默认点下一步这里可以选择不同的端口,我默认的8080,怕后面忘了端口在网页打开http://localhost:8080/,可以直接打开Jenkins初始化界面直接在网页里打开上述红色颜色路径,得到管理员密码复制进去,点击继续C:\ProgramData\Jenkins\.jenkins\secrets\i.

2022-03-27 11:42:07 6199 4

原创 定时任务cron表达式

前言创建定时任务时需要对定时任务的执行时间进行设置,也就是cron表达式,cron表达式用于配置cronTrigger的实例,由七个子表达式组成,这些表达式之间用空格分隔。表达式含义Cron表达式的格式:秒 分 时 日 月 周 年(可选)。字段名 允许的值 允许的特殊字符 Seconds(秒) 0-59 , - * / Minutes(分) 0-59 , - * / Hours(小时) 0-23 , -...

2022-03-27 11:26:49 28825

原创 HBuilderX网站打包APP

https://ask.dcloud.net.cn/account/setting/profile/登录HBuilderX的官网,进行打包校验

2022-03-23 13:15:31 7956

原创 Windows安装SVN

因公司没有版本控制工具,想到可以使用svn作为版本控制工具。SVN介绍trunk:代码主干,用于主线开发。branches:代码分支,用于定制版本、修复bugs、并行开发等使用,在branches开发时,要时常从trunk中更新到branches中,用于同步,当branches开发完成时,就可以将branches重新merge到trunk。tags:用于存放release版本,阶段性代码,不用于修改和commit。VisualSVN Server先来安装SVN的服务器端,下载地址:Vis

2022-02-27 20:03:42 1164

原创 redis与数据库双写一致性问题

redis与数据库双写一致性问题

2022-02-02 20:06:02 1073

原创 JDK1.8新特性-Stream API

JAVA8中Stream是对集合对象功能的增强,它主要对集合对象进行高效聚合操作和大批量数据操作且StreamAPI支持Lambda表达式。同时提供串行和并行两种模式进行汇聚操作,能够写出高性能、简洁的多线程代码。聚合操作在日常开发中,大部分数据处理都是通过数据库中进行处理,然后取出到内存中使用业务代码进行处理,如:客户每月平均消费 最昂贵的在售商品 本周完成的有效订单 取十个数据样本作为首页推荐一些简单的业务逻辑需求可以直接使用RDBMS中进行处理,这样就不用返回到业务代码层进行处..

2022-02-02 14:41:26 939

原创 JDK1.8新特性

Lambda表达式 函数式接口 *方法引用和构造器调用 Stream API 接口中的默认方法和静态方法 新时间日期APILambda表达式Lambda表达式作为Java8语法糖,允许将函数作为参数传入到方法中,但是被传入的函数必须是函数式接口。Lambda表达式语法:() -> ();前置 语法 无参数无返回值 () -> System.out.println(“Hello WOrld”) 有一个参数无返回值 (x) -> S...

2022-01-31 22:49:50 1154

原创 谷歌浏览器崩溃解决方法

最近谷歌浏览器一打开就是崩溃的,包括设置,商店等界面都是崩溃的解决方法之禁用沙盒:切换到桌面右键谷歌浏览器图标点击属性,见下图,定位到最后,空一格然后加上 -no-sandbox点击应用、确定,再重启浏览器就好了,一次重启浏览器不行那就再来几次,就会好的。(若属性中没有我图中的引号,没关系,都是最后空一格加上-no-sandbox)...

2021-10-28 22:44:21 8668

原创 接口的幂等性

什么是幂等性?幂等是一个数学与计算机学概念,在数学中某一元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同。幂等函数或幂等方法是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。什么是接口幂等性?对于同一个接口的多次调用结果和一次调用结果应该是相同的为什么要实现幂等性?某些场景由于业务处理或者操作不当导致多次调用与一次调用结果不一致,比如支付场景,对于一个订单的支付最终只需要成功一次,如果对于同一个订单支付成

2020-12-20 22:21:27 416 1

原创 Mysql的行专列和列转行

行转列表结构和数据准备建表CREATE TABLE `student` ( `ID` int(10) NOT NULL AUTO_INCREMENT, `USER_NAME` varchar(20) DEFAULT NULL, `COURSE` varchar(20) DEFAULT NULL, `SCORE` float DEFAULT '0', PRIMARY KEY (`ID`)) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CH

2020-12-14 22:03:54 4650

原创 Spring Cloud Eureka注册中心项目搭建

序言spring cloud 全家桶中有注册中心组件Eureka,用于服务注册与发现项目结构创建spring boot项目https://blog.csdn.net/w8827130/article/details/109934393最简单SpringBoot项目创建创建Eureka Server项目结构SpringcloudeurekaApplication.java新增@EnableEurekaServer注解package com.example.sprin.

2020-12-13 14:37:46 2212

原创 Spring Cloud Config 实现配置中心

序言在以前配置文件都是在项目中通过手动配置,然后每次发布到环境,这样的方式低效率,高耦合。后来出现配置中心,我们可以将配置集中到一个配置中心项目,这样方便配置的统一管理,像zookeeper和spring cloud config这样的配置中心中间件。spring cloud config项目搭建idea搭建spring boot项目https://blog.csdn.net/w8827130/article/details/109934393最简单SpringBoot项目创建项目结构.

2020-12-13 13:29:00 220

原创 Redis概念和原理

概念redis是单线程的基于内存存储的NoSQL型数据库,它是支持高并发的分布式缓存。数据结构redis中的数据结构都是key-value形式的string:字符串类型 hash:key-value型,用于存储实体数据结构 list:双向链表,是有序的,value可以重复,可以通过下标取出对应的value值,左右两边都能进行插入和删除数据。 set:保存多个字符串的元素,但和列表不同的是集合中 1. 不允许有重复的元素,2.集合中的元素是无序的,不能通过索引下标获取元素,3.支持集合.

2020-12-09 23:05:52 197

原创 SpringBoot整合Redis

SpringBoot项目使用idea创建https://blog.csdn.net/w8827130/article/details/109934393最简单SpringBoot项目创建https://blog.csdn.net/w8827130/article/details/110458979Windows环境安装Redis项目结构项目目录pom.xmlspringboot的pom整合了redis<?xml version="1.0" encoding="U...

2020-12-03 22:30:42 109

原创 Windows环境安装Redis

安装包Redis54位-windows安装包链接:https://pan.baidu.com/s/1h91Eb7ZuNOteS8ak-FQ3jA提取码:3zkrredisManager百度网盘链接:https://pan.baidu.com/s/1KOGv2PjJciSfBk_E_sdRlQ提取码:6ujc开始安装启动Redis临时服务到Redis的解压目录,执行redis-server.exe redis.windows.conf (备注:通过这个命令,会创建R...

2020-12-02 00:22:22 1181

原创 RabbitMQ的概念和原理

序言RabbitMQ作为开源的消息中间件,将生产者发送的消息以某种规则传递给消费者,帮助我们解决实际业务上遇到的问题。比如发送邮件或者短信,如果同步处理,服务的处理性能可能不够优,而异步处理,可以更好的优化性能。优点和劣势优点1、异步:将非实时必要的功能异步化,用以优化系统性能2、削峰:在大流量的访问下,消费者根据自己服务性能来判断一次处理多少个消息3、解耦:功能与功能、系统与系统之间解耦,让功能实现更加令灵活劣势1、多引入一个中间件,就会让系统更加复杂2、一致性问题

2020-11-29 22:23:57 256

原创 SpringBoot整合RabbitMQ

https://blog.csdn.net/typ1805/article/details/82835318

2020-11-29 21:26:08 228

原创 Windows安装RabbitMQ

序言一直想要学习分布式缓存,平常的工作中也仅仅是零零碎碎的使用,没有进行系统性的学习,现在开始学习,希望能够更深层次的掌握。

2020-11-22 19:25:54 250

原创 最简单SpringBoot项目创建

序言SpringBoot是对spring框架的封装,将复杂的配置都封装了起来,让开发者能够更快上手,更加专注于业务开发。Idea新建项目选Spring Initializr,jdk要选1.8填写项目信息选择web中的Spring Web,如果没有Spring Web选择Web填写项目名称和项目目录一个Spring Boot项目就创建好了,下图为目录和启动项SpringbootApplication.java执行SpringbootApplication.j

2020-11-22 12:23:26 235

原创 Spring特性IOC和DI

当我还是个应届生的时候为了面试我就知道Spring的特性,知道Spring有IOC和DI特性,也仅仅只是面试的时候提一下。了解一个框架的特性,能够帮助我们在日常开发中更加顺畅的开发,遇到问题的时候能够更加迅捷的定位问题。IOCIOC即控制反转,它是Spring框架的特性。通常我们想要调用某个对象的方法,需要先实例化这个对象,然后使用该对象去调用其方法,不可避免的将实例化对象和调用方法这两种操作耦合了,这种是普通的主动实例化方式。但是Spring框架它通过Bean工厂集中将所需的对象进行实例化

2020-11-22 01:42:37 159

原创 SpringMVC的执行过程

序言工作三年有余,有幸见过使用JSP完成的项目,前端后台都使用JSP来写,代码冗余杂糅,难以维护。庆幸的是技术不断更新迭代,现有的框架能让我们把大部分时间花费在我们的业务逻辑上,这就像一把双刃剑,把编程门槛变得越来越低,但是在某种层面上不利我们更加深入去理解和学习底层原理。什么是SpringMVC?SrpingMVC作为Spring框架的一部分,其中最核心的就是MVC(Model View Controller),这是一种框架模式。它通过模型(Model)、视图(View)、控制器(Contro

2020-11-22 01:40:44 114

原创 Spring特性AOP

序言在我毕业第一家公司,组长让我用AOP实现日志记录,那是我第一次实际运用AOP,也切实感受到了它的优点,不需要改造现有代码逻辑,就可以实现我想要的功能。什么是SpringAOP?SpringAOP是Srping的特性之一,即面向切面编程,它能够帮助我们实现非侵入式的功能增强,解耦现有的业务逻辑和要新增的功能增强。实际开发中的应用场景事务管理、拦截器、日志处理、权限控制AOP的五种功能增强方式首先说下AOP的三种功能增强方式,前置增强、后置增强、环绕增强、异常抛出增强、引介增强

2020-11-22 01:39:01 315

原创 Jdbc手动实现事务管理

序言我们平常工作中用到的spring框架中的事务的管理是通过@Transcational注解来控制的声明式事务管理,其底层是通过关闭事务自动提交,手动提交事务来实现事务控制。JdbcTranscational.javaimport java.sql.*;public class JdbcTranscational { /** * mysql连接url */ private static final String URL = "jdbc:mysql://

2020-11-21 20:23:59 1786

原创 线程的状态

线程的五种状态

2020-11-17 21:50:23 360

原创 String源码解析

本章源码分析基于JDK1.7实现的接口String类被final修饰词修饰,代表不可修改的特性,它实现了三个接口,Serializable是序列化接口,Compareble是排序接口,Char是字符序列接口。public final class String implements Serializable, Comparable<String>, CharSequence...

2020-11-15 11:58:35 4594 15

原创 CSS盒子模型

CSS 盒子模型

2020-05-30 22:44:47 401

原创 ThreadLocal

ThreadLocal,即线程变量,是一个以ThreadLocal对象为键、任意对象为值的存储结构。这个结构被附带在线程上,也就是说一个线程可以根据一个ThreadLocal对象查询到绑定在这个线程上的一个值。用法:可以通过set(T)方法来设置一个值,在当前线程下再通过get()方法获取到原先设置的值。好处:两个方法的调用不在一个方法或者类中只需要在同一线程中就可以获取到对应的值。代...

2019-11-21 23:28:56 360

原创 二叉查找树

本章内容基于数据结构与算法分析 java语言描述(原书第3版)二叉查找树性质:对于树中的每个节点X,它的左子树中所有项的值小于X中的项,而它的右子树中所有项的值大于X中的项。所以二叉查找树要求所有的项都能够排序,在我实现的二叉查找树数据结构中,存储的元素均需实现比较器接口,实现其中的compareTo方法,这里我使用到Integer,它内部已经实现了compareTo方法。Binary...

2019-10-13 17:36:33 314

原创 队列

队列是一种特殊的线性表,是一种先进先出(FIFO)的数据结构。它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。队列可以使用数组和链表这两种方式来实现,源码如下定义队列行为接口InterfaceQueue.java队列的几种行为都是确定的,不同的是底层如何实现,所以首先定...

2019-10-04 10:42:52 388

原创 二十三种设计模式之模板方法模式

本章源码基于JDK1.7模板方法模式的主要设计思想是定义一个算法框架,允许用子类重写或者其它方式对算法框架内的某个步骤的具体实现进行修改。本章内容已冲泡咖啡和茶作为例子讲解,咖啡和茶叶作为饮料的一种有共通之处,首先烧水、然后冲泡咖啡或茶叶,最后将冲泡后的咖啡或茶叶水倒进杯子中。我们可以将烧水行为和将饮料倒进杯子行为抽象出来,但是冲泡咖啡还是茶叶的话就必须要具体的去处理。下面为...

2019-10-03 15:14:54 299

原创 java迭代器

本文源码基于JDK1.7Iterable获取迭代器接口Iterable接口中只有一个iterator方法,用来获取迭代器package java.lang;import java.util.Iterator;public interface Iterable<T> { Iterator<T> iterator();}Iterator迭代...

2019-10-02 10:28:10 410

原创 插入排序

介绍插入排序(Insertion sort)是一种简单直观且稳定的排序算法。如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法...

2019-09-28 22:16:35 263

原创 爱因斯坦台阶问题

最近面试的时候做过一道算法笔试题我印象很深,乍一看无从下手,仔细分析后发现有规律可循,最后将代码手写出来了,特此记录一下。爱因斯坦台阶问题爱因斯坦曾经提出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩下1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩下4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请问该阶梯至少有多少阶。分析一看到这道题的时候,...

2019-09-09 21:10:56 7510 1

原创 原生ajax底层原理

传统方法的缺点  传统的web交互是用户触发一个http请求服务器,然后服务器收到之后,在做出响应到用户,并且返回一个新的页面,,每当服务器处理客户端提交的请求时,客户都只能空闲等待,并且哪怕只是一次很小的交互、只需从服务器端得到很简单的一个数据,都要返回一个完整的HTML页,而用户每次都要浪费时间和带宽去重新读取整个页面。这个做法浪费了许多带宽,由于每次应用的交互都需要向服务器发送请求,应用...

2019-08-25 20:20:24 538

原创 线程的三种实现方式

多线程有三种实现方式,分别为通过继承Thread类,通过实现Runnable接口,通过实现Callable接口通过继承Thread类实现了Thread类后的MyThread类实例可以直接实例后startpackage thread;public class MyThread extends Thread{ @Override public void run() ...

2019-08-25 17:34:11 580

空空如也

空空如也

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

TA关注的人

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