自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Dubbo + ZK + SpringBoot 分布式实战

在分布式架构中,不同的服务可能位于不同的服务器上,也就不能像传统单体架构一样直接调用。对于这种异地的调用,采用的是 RPC 调用(远程过程调用)。而 Dubbo 是一个高性能的 RPC 框架,能够为我们解决分布式系统中不同系统之间的通信调用问题等。对于众多服务的管理,需要引入注册中心。在 Dubbo 中,一般采用 Zookeeper 作为配置中心。dubbo 的官网:https://dubbo.apache.org/zh/项目结构dubbo-demo 作为外层父项目。dubbo-api:作为.

2021-11-16 08:00:00 2341

原创 Docker 快速入门指南(环境搭建+常用命令总结)

Docker 相关网址:官网:https://www.docker.com/文档:https://docs.docker.com/仓库(类似于 github):https://hub.docker.com/VIMdd 删除一行查找镜像:docker search 镜像名拉取镜像:docker pull 镜像名[:tag]查看当前下载的镜像:docker images删除镜像:docker rmi -f 镜像 id(多个用空格隔开)新建容器,运行容器:docker r

2021-10-31 11:26:17 700

原创 RabbitMQ 快速上手教程 ~

本文前置知识云服务器的基本使用Docker 基本命令SpringBootDocker 搭建 RabbitMQ 环境为了方便,采用 Docker 进行安装,直接从仓库拉取即可(首先要在 Liunx 中安装 Docker 环境)。命令如下:1、查找 rabbitmq 镜像docker search rabbitmq:management2、拉取 rabbitmq 镜像docker pull macintoshplus/rabbitmq-management3、创建容器并运行dock

2021-10-30 08:00:00 1799 2

原创 设计模式 | 建造者模式的通俗讲解~

1. 建造者模式的介绍将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式主要用于构建复杂的对象,同时客户端并不需要知道对象是如何构建的。其中要涉及到以下几个角色:可以简单的理解为我们的建造者 Buidler 是一个大工厂,其中有多个小工厂负责创建我们最终目标产品 Product 的各个组成部分。当把各个组成部分构建好了,最终便可得到我们需要的复杂对象。就比如说要组装一台电脑,需要将其中的各个零件按照一定顺序组装才能得到我们最终想要的电脑,而这个具体的组装顺序则

2021-06-22 09:41:30 309

原创 设计模式 | 工厂模式 & 抽象工厂

工厂模式的一个很大的特点是:创建具体的产品对象只需从工厂类中获得,而无需手动通过 new 来创建对象,即降低了客户端与产品之间的耦合。以下将通过实际例子来讲解简单工厂、工厂方法以及抽象工厂设计模式。1. 简单工厂简单工厂模式(Simple Factory Pattern)又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。模拟简单地从工厂获得产品的例子(1)定义一个抽象产品 Car:/

2021-06-21 09:51:04 184 1

原创 设计模式 | 桥接模式的通俗讲解 ~

桥接模式的定义桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(interface)模式。桥接模式的概念较为抽象,需结合例子才能更好理解。话不多说,直接看下面的例子~模拟获得不同品牌不同类型的电脑例子假设我们的程序需求是要获得不同品牌不同类型的电脑(比如有台式机和笔记本类型、有联想和苹果品牌)。按照一般的思路,我们首先定义一个电脑类,然后定义不同类型的电脑(如台式机、笔记本)继承电脑类;而每个类

2021-06-20 10:45:51 348

原创 设计模式 | 适配器模式的通俗讲解 ~

文章目录1. 适配器模式的介绍2. 模拟笔记本转接头的例子3. 应用场景1. 适配器模式的介绍当客户端期望接口与真正要调用的接口不同时,通过中间加一个适配器,使得适配器的接口与客户端接口一致,然后在适配器中调用真正的接口方法(通过继承或组合目标对象的方式)。主要解决客户端接口与原本接口不兼容的问题。可以类比现实生活中的笔记本网线转接头的例子,轻薄本往往需要通过转接头连接网线才能达到使用网线上网的目的,转接头就充当了一个适配器的角色。2. 模拟笔记本转接头的例子场景图如下:接下来用 Java

2021-06-19 10:30:30 261

原创 MyBatis-Plus 快速上手教程 ~

Spring Boot + MyBatis-Plus 的快速上手教程 ~~~

2021-02-26 13:56:00 1136 1

原创 Spring Boot + Vue 前后端分离项目的部署

把 spring boot 的 jar 包上传至服务器任意目录,然后通过 后台运行 Jar 命令运行程序注意修改端口,以及阿里云、宝塔的放行服务器查看进程ps -ef | grep java后台运行 jarnohup java -jar shareniu.jar >log.txt &根据端口杀死进程sudo fuser -k -n tcp 8080...

2021-02-07 21:31:28 4201 2

原创 Spring Boot 整合 Shiro 实现认证授权

导入依赖: <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.1</version> </dependency>Subject:用户SecurityManager:管理所有用户Realm:连接数据...

2021-02-03 15:09:41 448

原创 Spring Security | 轻松搞定认证授权~

导入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>创建数据库DROP TABLE IF EXISTS `role`;CREATE TABL

2021-02-01 14:20:01 317

原创 Api 接口文档生成工具 Swagger 的使用

1、创建一个 Spring Boot 项目https://start.aliyun.com/2、导入 Swagger 依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</ver

2021-01-31 09:30:00 1261 2

原创 轻松掌握 Spring Data JPA ~

Spring Data JPA 简介Spring Data 是 Spring 家族的一个子项目,它使得数据库访问变得更为容易。而 Spring Data JPA 可以有效地简化关系型数据库访问的代码,因为其能够帮我们自动实现一些简单的方法。说白了,JPA 可以帮我们自动建表、自动实现基本的 CRUD (包括分页查询、模糊查询,只需遵循其命名规范即可)等方法,当然也可选择自定义 SQL。对于简单的项目来说,JPA 十分高效。以下将展示一个整合 JPA 实现基本的 CRUD 的 demo,能够快速地入门

2021-01-30 17:17:46 184

原创 Spring Boot 整合 MyBatis 快速搭建 Web 开发环境

导入 Maven 依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifact

2021-01-29 17:40:16 800

原创 Spring Boot | 整合持久层 - JDBCTemplate

文章目录一、JDBCTemplate 简介二、整合 JDBCTemplate1、创建数据库表2、导入相关依赖2、编写配置文件3、实现 CRUD 操作4、测试 CRUD一、JDBCTemplate 简介整合一个东西的一般来说分为以下几个步骤:导入依赖 -> 编写配置文件 -> 程序中使用二、整合 JDBCTemplate1、创建数据库表创建数据库 springboot-data,学生表 student:drop database if exists `springboot-data`;

2021-01-28 08:46:15 180

原创 Spring Boot | 整合视图层 - Thymeleaf

Thymeleaf 简介由于 Spring Boot 内嵌 Tomcat 容器,不能够像传统的 Java Web 项目那样支持 JSP。Thymeleaf 是新一代的 Java 模板引擎,同时官方提供了自动化配置方案,十分易于整合、使用。简单来说,我们在 Spring Boot 项目中,通过 Thymeleaf 能够很好地实现动态网页效果。本文将主要介绍 Spring Boot 整合 Thymeleaf 的基本步骤有关 Thymeleaf 的更多语法,可参考官方文档:https://www.thyme

2021-01-27 09:37:14 161 1

原创 Spring Boot | 静态资源访问与拦截器

静态资源存放的位置在 Spring Boot 中,静态资源主要存放在以下 4 个位置:src / main / java / resources / META-INF / resourcessrc / main / java / resources / publicsrc / main / java / resources / resourcessrc / main / java / resources / static它们的访问优先级为:1 > 3 > 4 > 2一般

2021-01-26 16:49:59 511

原创 Spring Boot | 必须掌握的配置文件的使用

配置基础propertiesyaml对象属性注入User@Component@ConfigurationProperties(prefix = "myuser")public class User { private String name; private Integer age; private boolean isActive; private Date registerTime; private Map<String,Object>

2021-01-25 22:29:58 174

原创 Spring Boot | 第一个 Spring Boot 程序

一、官网在线创建进入到 Spring 的官方在线创建地址:https://start.spring.io/输入项目的基本信息,添加【Spring Web】依赖,最后生成即可将下载完成的压缩包解压,然后使用 IDEA 导入接着,选择导入 Maven 项目,Finish 即可由于需下载 Maven 依赖,初次创建可能会比较慢些,初始化完成如下:将多余的文件删除后,即可看到一个标准的 Maven 项目结构在 study 目录下创建 controller 包,其中创建 HelloContro

2021-01-24 13:27:27 306 3

原创 Vue | 基础语法快速入门

文章目录一、初始 Vue.js二、Vue.js 模板语法三、 Vue 基础指令1、分支判断2、循环3、事件绑定四、表单数据双向绑定1、输入框2、文本域3、单选框4、下拉框五、Vue 组件六、网络通信 Axios七、计算属性八、插槽的使用九、自定义事件分发一、初始 Vue.jsVue.js 是啥 ?Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。当与现代化的工具链以及各种支持类库结合

2021-01-23 08:50:31 812 4

原创 Vue | Element UI 的快速入门指南

一、创建项目新建一个文件夹,命名为 vue-elementui:地址栏中 cmd 进入到命令行,输入如下命令初始化:vue init webpack具体步骤可参考:安装 vue-routernpm install vue-router --save-dev安装 elementuinpm i element-ui -S安装所有依赖:npm install 安装 SASS 加载器npm install sass-loader node-sass --save-dev

2021-01-22 09:15:59 1861 4

原创 Vue | Vue Router 路由的使用

首先,创建一个 vue-cli 项目,可参考链接:进入到项目目录下,在命令行中安装 Vue router,可类比于安装 maven 依赖npm install vue-router --save-dev然后,就可以在 main.js 中引入 vue-routerimport VueRouter from 'vue-router'Vue 中需要显示声明才能使用:Vue.use(VueRouter);1、在 src 的 components 目录下,新建三个 Component:Main.v

2021-01-21 17:02:04 11263 3

原创 前端模块化与工程化 | Vue-cli 与 Webpack 的使用

文章目录一、安装 Node.js 环境二、安装 Vue-cli三、创建 Vue-cli 应用程序四、安装 Webpack五、创建一个 webpack 程序六、小结一、安装 Node.js 环境Node.js 官网下载地址:http://nodejs.cn/download/一般系统下载 windows 64 位的 msi安装过程一直下一步即可,可以修改安装路径,中间有个 Add to Path 的选项勾选(即自动将 Node.js 添加到环境变量中)安装完成后,cmd 进入到命令行中查看 Nod

2021-01-19 23:32:16 1172

原创 Mybatis 复杂查询(多对多、一对多、多对一)

我们知道,在 Mybatis 中完成单表查询是很容易的,而多表查询是 Mybatis 框架中的一个重难点,需熟练掌握。文章目录1、多对多查询2、 一对多查询写法1写法23、多对一查询方式1方式24、总结1、多对多查询用户和小组为多对多的关系,需求为:通过用户 id 查找其所有的小组信息数据库设计如下:实体类:public class User { private int uId; private String uName; private List<Group.

2020-12-30 13:13:49 1017 1

原创 快速掌握百度富文本编辑器 UEditor 的使用

1、将 jar 包安装到本地 Maven 仓库将富文本编辑器下的jsp下的lib目录下的jar包拷贝至D盘,然后进入cmd,输入如下命令:mvn install:install-file -DgroupId=com.baidu -DartifactId=ueditor -Dversion=1.1.2-Dpackaging=jar -Dfile=E:/ueditor-1.1.2.jar2、项目中导入相关 Maven 依赖将富文本编辑器文件全部拷贝至 web 目录下:pom.xml 中将它们引

2020-12-29 10:27:16 582 2

原创 SSM 框架快速搭建与整合

1、创建Maven项目并导入依赖在 IDEA 中创建一个空的 Maven 项目添加 WEB 项目支持导入 SSM 环境相关依赖pom.xml 相关代码如下: <dependencies> <!--Junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</art

2020-12-28 11:43:48 714 1

原创 SSM 整合时出现的一些错误以及解决方法

在整合SSM时,由于配置较多,很容易出错,有时候一时半会也找不到错误,今天就用这篇文章记录下本人遇到的错误以及解决方法。Mybaits 部分Mybatis 部分是很容易出错的部分,原因是其配置较多,特别是一些细节的地方,千万要细心。数据库连接错误Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.

2020-12-26 20:58:02 958

原创 图像处理 | Otsu 阈值分割以及基本形态学处理

1、图像分割 —— Otsu 全局阈值分割1) 实现原理与流程具体实现步骤如下:统计图像各个灰度级所包含的像素个数,即归一化直方图;遍历每一个可能的灰度级,根据1) 中得到的直方图,计算出对应的累计概率以及累计灰度均值;直接对图像调用 mean() 函数计算出全局灰度均值;再根据累计概率、累计灰度均值以及全局灰度均值计算出类间方差;结合 max() 函数和 find() 函数找出最大类间方差所对应的各个灰度值,如果有多个灰度值,则取这些灰度值的平均值作为分隔阈值;通过公式计算出可分性度量,将

2020-11-27 21:22:17 2823

原创 PHP | 语法基础(字符串、数组等)

基本语法格式以<?php?>包裹变量名必须以$开头定义变量时无需声明类型,js 需要用 var 关键字声明;单行注释:# 或 //行注释:/* */输出文本至浏览器echo(可以不定参数个数,用 “,” 连接不同字符串)printf(括号可加可不加,定参数)var_dump(打印类型与值,调试可用)<?php $str_a = "昨天"; $str_b = "今天"; $str_c = "明天"; print $str_a;

2020-11-25 19:16:49 110

原创 图像处理 | RGB 与 HSI 的互转以及滤波处理

1、RGB 图像转 HSI 图像1) 函数接口实现:function HSI = myRGB2HSI(RGB)% 从RGB颜色空间向HSI颜色空间的转换% RGB(uint8):输入的RGB彩色图像% HSI(double):转换后的HSI彩色图像img1_double = im2double(RGB); % 转成double并作归一化处理 [r, c, k] = size(img1_double);H = zeros(r, c);S = zeros(r, c);I

2020-11-21 20:00:50 11975 7

原创 Matlab | sum 和 mean 等函数的使用注意点

matlab 提供了大量的函数便于我们计算,以下是最常用的函数 sum函数 和 mean 函数等的使用注意点:对于一维数组(行向量)或者列向量,使用 sum( A ) 即可对该数组求和对于多维数组,sum( A ) 默认对每一列的元素求和,要想对整个 A 矩阵中的所有元素求值,须使用 sum( sum(A) ),即先对每一列求和后得到一个行向量,再对该行向量进行求和。当然,改进2的一种方式是,将多维数组(矩阵)通过 A( : ) 转换为列向量后,只需调用一个 sum() 函数对该列向量求和即可。.

2020-11-17 13:55:23 1075

原创 图像处理 | 空间域与频率域滤波

频率域滤波(低通)作用:平滑处理图像1) 算法思路流程频率域滤波的一般处理方法是:先修改一幅图像的傅里叶变换,然后计算其反变换,得到处理后的结果。高斯低通滤波函数已经给出,同时参数D0已知,我们只需求出频率中的每一个点与频率矩形中心的距离D并代入公式即可。具体实现步骤如下:生成原图像两倍大小(P=2r,Q=2c)的全零数组,并用原图像对其进行填充;将1) 中所得结果乘以(-1)^(x+y),作中心变换;通过fft2()函数计算中心变换后原图像的傅里叶变换;遍历傅里叶变换后所得矩阵中的每一

2020-11-15 08:53:00 2540

原创 JavaScript 基础知识总结

变量声明由于 javascript 是一门弱类型语言,javascript 中,采用 var 即可声明不同类型的变量:例如,声明数值型变量 i = 1var i = 1;var float = 3.5; // 声明浮点型变量注:javascript 中,和 java 一样,采用 “// ” 进行单行注释声明字符串变量 str = “hello”var str = "hello";字符串操作字符串连接:javascript 采用 “+” 进行字符串连接var first = "今天"

2020-11-08 14:56:13 166

原创 Git 常用命令总结

1、配置 Git设置用户名和电子邮件git config --global user.name "用户名"git config --global user.email "邮箱"生成SSH公钥ssh-keygen –t rsa –C “email”2、Git 最基本命令初始化本地仓库git init添加到暂存区git add fileName // 添加指定文件到暂存区git add . // 添加全部文件到暂存区将暂存区文件提交至本地仓库git commit -m “

2020-11-06 20:01:44 111

原创 【项目部署】连接阿里云服务器上的 MySQL 数据库

项目部署在服务器上,如何访问阿里云服务器上的 MySQL 数据库?具体做法如下:1、在宝塔面板中,添加网站(无域名采用公网ip也可),同时按照要求创建好数据库2、将项目代码上传到刚刚(1)中的创建的根目录中3、修改项目中封装的数据库连接代码或者数据库配置文件,将密码改为云服务器上的 MySQL 密码(可通过单击 root 密码进行查看 MySQL 初始密码,MySQL 用户名默认为 root)4、在创建的数据库中导入数据库初始化的本地“.sql”文件,将脚本在服务器数据库运行一遍5、最后,

2020-11-06 00:31:39 1450

原创 图像处理 | 比特平面分层以及图像重构

比特平面分层1、实现思路对于一幅8比特的图像而言,其灰度级最大值为255(对应二进制数11111111),有8位二进制位,这8个二进制分别对应每一层比特平面的灰度值(最高位对应最高阶比特平面)。因此,只要我们将图像的每一个像素点的灰度级转换为8个二进制位的数字,然后分别提取出每个二进制位数字,按照对应的位置赋值给每一个比特平面对应位置的像素即可。具体实现步骤如下:获取输入图像的行和列(分别记为r,c),生成一个三维零矩阵imageBit[r c 8];遍历原图像每一个像素点,将其值转换为8位2进

2020-11-04 21:39:51 4156 2

原创 图像处理 | 灰度变换-直方图均衡化处理

1、用途图像增强,提高对比度2、背景与原理1)直方图的定义:由各个可能的灰度级出现的个数 / 概率所组成的图形2)对比度增强原理不同类型的图像的直方图具有不同的特点,特征如下表所示:图像类型直方图分量集中区域暗图像灰度级低端亮图像灰度级高端低对比度灰度级中部(较窄)高对比度整个可能的灰度级区间(较宽)3、模型建立符号意义p®灰度级 r 出现的概率n®灰度级为 r 的像素个数k图像中可能的灰度级T

2020-11-03 14:00:18 3035 1

原创 前端 | 零碎知识点-问题-技巧总结(1)

目录父元素适应浮动的子元素高度当子元素设置浮动时,父元素要想将其包裹,一般需要为其指定宽、高。但如果是动态网页,服务器需从数据库中动态获取数据,记录数是动态变化的。这个时候,固定写死的宽、高就起不到很好的效果。解决这一问题很简单的方式时,为父元素设置如下属性即可:overflow: auto或者overflow: hidden布局设置样式不生效问题很有可能是使用了类选择器,其优先级没有子代选择器高,这时可以考虑改用 id 选择器。遇到布局问题时多用浏览器的 F12 来查看相应组件的

2020-11-02 22:03:04 855 1

原创 解决访问 Servlet 的报错

今天重新回顾下 Servlet,发现一个问题,稍不注意就会出错,表单提交数据到 Servlet 中,浏览器访问不到 Servlet ,如下图所示:反复排查,把各个容易出错的地方都检查了一遍,如 web.xml 中的配置,请求转发的资源路径,还尝试重新搭一次环境。最后,发现问题在于访问 Servlet 的路径不对这是 Tomcat 配置的访问路径:而 web.xml 中配置的 url 路径如下:表单提交的路径如下:看上去好像没什么大问题,但其实已经出问题了,从表单提交后的路径便知道:To

2020-10-25 23:54:41 3023 2

原创 解决 Maven 下载依赖失败

出错原因出现这种情况的原因很可能是 IDEA 将 Maven 配置文件 settings.xml 自动还原为自带的 Maven 配置文件路径 ,即 c 盘下的 .m2 文件下的 settings.xml,而不是我们自己安装配置的 Maven 目录下的 settings.xml(其中配置了阿里云镜像加速下载),所以会出现资源下载慢或者无法下载的一直报红的现象。解决方法将上图中红色框框部分的 settings.xml 路径修改为我们自己安装配置的 Maven 目录下的 settings.xml 即可。

2020-10-25 19:15:12 352

空空如也

空空如也

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

TA关注的人

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