WS的小屋

It's never too old to learn.
私信 关注
硕子鸽
码龄2年
  • 165,466
    被访问量
  • 201
    原创文章
  • 22,086
    作者排名
  • 153
    粉丝数量
  • 于 2018-12-04 加入CSDN
获得成就
  • 获得206次点赞
  • 内容获得154次评论
  • 获得696次收藏
荣誉勋章
兴趣领域
  • #后端
    #MySQL#Spring Boot#Java
TA的专栏
  • JavaWeb
    23篇
  • Spring
    21篇
  • 微服务
    10篇
  • 数据库
    15篇
  • 软件架构
    1篇
  • 设计模式
    8篇
  • UML
    4篇
  • Python
    12篇
  • 大前端
    5篇
  • 微信小程序
    2篇
  • 计算机网络
    20篇
  • 操作系统
    10篇
  • BUG
    14篇
  • 实用工具
    8篇
  • Linux
    24篇
  • 编程语言
    7篇
  • 数据结构和算法
    8篇
  • 技术分享
    9篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

进程同步习题——棋子问题

生产围棋的工人不小心把相等数量的黑子和白子混装载一个箱子里,现要用自动分拣系统把黑子和白子分开,该系统由两个并发执行的进程组成,功能如下:(1)进程 A 专门拣黑子,进程 B 专门拣白子;(2)每个进程每次只拣一子,当一个进程在拣子时不允许另一个进程去拣子;当一个进程拣一子后,必须让另一进程去拣一子。请回答:这两个并发进程之间的关系是同步还是互斥 ;用 wait、signal 操作管理时,写出所定义的信号量和初值;根据定义的信号量,在下列空白处填入应执行的 wait、signal 操作,以
原创
49阅读
0评论
0点赞
发布博客于 1 月前

【操作系统】文件管理

设文件 F1 的当前引用级数值为 1 ,先建立文件 F1 的符号链接(软链接)文件 F2 ,再建立文件 F1 的硬链接文件 F3,然后删除文件 F1,此时文件 F2 和文件 F3 的引用计数值分别是(1,1)。
原创
71阅读
0评论
0点赞
发布博客于 1 月前

软件工程黑盒白盒测试

目的是为了应付期末考试,期末考试肯定会考测试的习题。一、概述先总览一下测试的分类:重点掌握黑盒测试和白盒测试。黑盒由白盒的区别:黑盒测试:检查程序各功能是否能实现,检查功能错误;黑盒测试与软件的具体实现过程无关,只关心结果;所以又被称为功能测试。白盒测试:检查内部操作是否按规定执行,各功能是否得到充分的使用;所以又被称为结构测试。二、黑盒测试方法有很多种方法,这里主要讲解两种比较常用常考的方法,分别是等价类划分、边界值分析。2.1 等价类划分先来一个引例:Next
原创
111阅读
0评论
0点赞
发布博客于 1 月前

前后端多环境配置

介绍一下前后端的多环境配置,前端使用的 Vue 框架,后端使用的是 SpringBoot 框架。前端 Vue这里以开发环境(dev)和生产环境(prod)为例。首先在项目根目录下创建两个文件:这是创建出来了两个不同的环境,内容如下:.env.dev文件内容:NODE_ENV=developmentVUE_APP_SERVER=http://127.0.0.1:9000--------------------------------------.env.prod文件内容:NODE
原创
64阅读
0评论
0点赞
发布博客于 1 月前

事务并发调度的可串行性及两段锁协议

一、并发调度并发调度啥意思?就是当很多事务同时执行的时候应该按照什么顺序执行,应该按照排队的顺序执行,这就是 串行调度 。串行执行肯定是正确的,但是改变一下位置有影响吗?这就要看改变顺序之后执行的结果是否和不改变顺序执行的结果一致了。如果改变顺序之后执行的结果和串行调度的执行结果一致,那么就说这种调度是 可串行化调度。可串行性是并发事务正确调度的准则。比如:事务 T1: 读 B A=B+1;写回 A;事务 T2: 读 A B=A+1;写回 B;假设 A、B 的初始值都是 2,串行
原创
920阅读
0评论
2点赞
发布博客于 7 月前

死锁习题——银行家算法讲解

非剥夺资源的竞争和进程的不恰当推进顺序会导致死锁。有 3 种方式可以解决死锁问题:预防死锁;避免死锁;死锁的检测和解除;今天要讲的银行家算法就属于死锁避免。一、银行家算法银行家算法是最著名的死锁避免算法。1、数据结构描述可用资源向量:Available,是一个数组,表示现在系统中总共还有多少可用的资源。例如:A B C 的 Available 是 [1,2,3]表示现在系统中还有 A 类资源 1 个,B 类资源 2 个,C 类资源 3 个。最大需求: Max,是一个矩阵,表
原创
949阅读
7评论
12点赞
发布博客于 3 月前

SpringBoot + 阿里云 OSS 实现在线视频播放

阿里云 OSS 是一种云存储技术,你可以理解为云盘,我们的目标是将视频存储到云端,然后在前端读取并播放视频。OSS首先登陆首页,创建一个存储桶:https://oss.console.aliyun.com然后找到读写权限:将读写权限设置为公共读即可:在 RAM 中新建一个用户:为其添加权限,选择 OSS 的权限:然后点进去这个用户,找到 AccessKey:创建之后记下来 secret ,因为他只出现一次,如果没记住也没事,可以重新创建新的 key。下面开始编写服务端代码:P
原创
20800阅读
2评论
0点赞
发布博客于 4 月前

Spring 中控制 Bean 生命周期的几种方式及 BeanPostProcessor 执行原理

一、几种方式总览@Bean 注解的方式;通过实现接口的方式;使用 JSR250 提供的两个注解;BeanPostProcessor 后置处理器;二、@Bean 的方式可以使用 @Bean 注解的两个属性设置初始化和销毁方法:@Bean(initMethod = "init", destroyMethod = "destroy")public Car car() { return new Car();}这里在实体类中创建了几个方法。public class Car {
原创
316阅读
0评论
1点赞
发布博客于 7 月前

使用 Power Designer 16 设计数据库

使用 PowerDesigner 做数据库设计,主要用到两个大的模型:第一个是 CDM:概念模型;第二个是 PDM:物理模型。整体的步骤如下:先创建 CDM;然后把 CDM 转化成 PDM ;最后把 PDM 转化成数据库 sql 执行语句;还可以把 PDM 转化成 word 文档。所以本文也分为 4 个步骤介绍。一、创建概念模型打开之后,选择创建概念模型:修改名称之后点击 OK:可以在 Domain 中设置常用的数据格式:这样以后我们创建的实体属性会继承这里的数据类
原创
50阅读
0评论
0点赞
发布博客于 2 月前

一篇文章学会统一建模语言UML

学习 UML 的目的是帮助我进行需求分析,CRUD 谁都会写,那是建立在数据库和业务需求都明确的基础之上的,所以这些基本功还是要掌握的。不需要掌握复杂的 UML 语法,更多的是要去理解 面向对象 的分析方法,这可以提高需求分析能力。一、总览 UMLUML 有很多种图,可分为 2 类:结构型:类图对象图组件图部署图包图行为型:活动图状态图顺序图通信图用例图
原创
56阅读
1评论
0点赞
发布博客于 2 月前

设计模式之 —— 状态模式 State

引例在软件开发过程中,应用程序中的部分对象可能会根据不同的情况做出不同的行为,我们把这种对象称为 有状态的对象 ,而把影响对象行为的一个或多个动态变化的属性称为状态。对这种有状态的对象编程,传统的解决方案是:将这些所有可能发生的情况全都考虑到,然后使用 if-else 或 switch-case 语句来做状态判断,再进行不同情况的处理。但是显然这种做法对复杂的状态判断存在天然弊端,条件判断语句会过于臃肿,可读性差,且不具备扩展性,维护难度也大。且增加新的状态时要添加新的 if-else 语句,这违背了“
原创
40阅读
1评论
0点赞
发布博客于 2 月前

设计模式之—— 桥接模式 Bridge

定义将抽象与实现分离,使它们可以独立变化。他是用 组合关系 代替 继承关系 ,从而降低了抽象和实现两个维度的耦合度。结构和实现桥接模式包含以下角色:抽象化角色:定义抽象类,并包含一个对实现化对象的引用;扩展抽象化角色:是抽象化角色的子类,实现父类中的业务方法,调用实现化角色的方法;实现化角色:定义接口,供扩展抽象化角色调用;具体实现化角色:给出具体实现。package bridge;public class BridgeTest { public static void
原创
36阅读
0评论
0点赞
发布博客于 2 月前

IDEA隐藏无用文件

像 iml 文件和 idea 文件都是可以隐藏显示的,这样会让我们的项目结构看起来更简洁。隐藏 iml 文件:输入 *.iml 然后保存确定;隐藏 idea 文件:输入 .idea 然后保存确定;
原创
66阅读
0评论
0点赞
发布博客于 2 月前

设计模式之——享元模式 Flyweight

我们经常抱怨学校的选课系统非常卡,这是什么原因呢?设想一下在选课高峰期,1 秒钟有 1000 人选课,程序在内存中同时创建 1000 个对象,服务器压力过大肯定卡啊,还有可能出现内存溢出的现象。但是我们仔细想一下这 1000 个对象,他们有什么共同点,我们选课会选择任课老师、课程名称等等,那么很多同学有可能选的都是同一节课,现在是每个同学选课都会重新创建一个新的选课记录对象,但是我们没必要这么做,因为这些对象有共性,他们除了学生的名字是不一样的,有可能任课老师和课程名都是同一个,这个时候我们可以共享这些
原创
130阅读
0评论
0点赞
发布博客于 2 月前

设计模式之——组合模式 Composite Pattern

引例在介绍之前我们先来看一个例子,是关于公司的人事管理系统的:这是一个典型的树形结构,那么我们怎么才能用代码表示他呢?分析:总共有两种不同性质的节点:有分支的节点:根节点:总经理树枝节点:研发部经理无分支的节点:叶子节点:开发人员那这么说,定义三个类不就行了,如下图:那我们就按照这个类图实现一下代码:首先是 根节点接口 :/** * 根节点接口 * * @author wang suo * @version 1.0 * @date 2020/12/21
原创
53阅读
1评论
0点赞
发布博客于 2 月前

设计模式——六大设计原则

一、单一职责原则单一职责原则简称 SRP,他想表达的就是字面意思,一个类只承担一个职责。有时候我们可以将一个复杂的接口拆成两个不同的接口,这两个接口承担着不同的责任,这就是依赖了单一职责原则;它的定义就是:应该有且仅有一个原因引起类的变更。关于 职责 的定义很模糊,什么才是职责呢?不同的人有不同的解读,所以该原则很难运用,需要开发者的慧眼。下面以大学学生工作管理程序为例介绍单一职责原则的应用。二、里式替换原则里式替换原则也叫 LSP 原则,没错就是你想的那个 lsp ????。其实是英文
原创
47阅读
0评论
0点赞
发布博客于 2 月前

【操作系统】内存管理

介绍内存管理中重要的知识点基本分页存储管理方式、请求分页存储管理方式、段页式管理方式;以及页面置换算法,中间穿插着系统方便读者理解。
原创
333阅读
1评论
1点赞
发布博客于 2 月前

Design Patterns 之原型模式

原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。例如,Windows 操作系统的安装通常较耗时,如果复制就快了很多。在生活中复制的例子非常多,这里不一一列举了。原型模式的优点:Java 自带的原型模式基于内存二进制流的复制,在性能上比直接 new 一个对象更加优良。可以使用深克隆方式保存对象的状态,使用原型模式将对象复制一份
原创
111阅读
0评论
0点赞
发布博客于 2 月前

Design Patterns 之工厂模式

现实生活中,原始社会自给自足(没有工厂),农耕社会小作坊(简单工厂,民间酒坊),工业革命流水线(工厂方法,自产自销),现代产业链代工厂(抽象工厂,富士康)。我们的项目代码同样是由简到繁一步一步迭代而来的,但对于调用者来说,却越来越简单。定义工厂模式的定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。按实际业务场景划分,工厂模式有 3 种不同的实现方式,分别是简单工厂模式、工厂方法模式和抽象工厂模式。下面我们来分别看一下这 3 种模式。一、简单工厂模式在简单工
原创
140阅读
1评论
0点赞
发布博客于 3 月前

【操作系统】生产者消费者问题讲解

生产者消费者问题是经典的进程同步问题,也是考试最常考的问题。之前讲过了使用信号量机制实现进程控制,请确保已经掌握了相关知识:信号量机制实现进程控制 。问题描述——生产者消费者问题系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者每次从缓冲区中取出一个产品并使用。生产者、消费者共享一个初始为空、大小为 n 的缓冲区。分析:只有缓冲区没满时,生产者才能把产品放入缓冲区,否则必须等待;只有缓冲区不为空时,消费者才能从中取出产品,否则必须等待;缓冲区是临界资源
原创
262阅读
0评论
2点赞
发布博客于 3 月前

ATM 系统的用例图、类图、顺序图、协作图、活动图设计

用例图分析:对于银行的客户来说,可以通过ATM机启动几个用例:存款、取款、查阅结余、付款、转帐和改变PIN(密码)。银行官员也可以启动改变PIN这个用例。参与者可能是一个系统,这里信用系统就是一个参与者,因为它是在ATM系统之外的。箭头从用例到参与者表示用例产生一些参与者要使用的信息。这里付款用例向信用系统提供信用卡付款信息。类图分析:类图显示了取款这个用例中各个类之间的关系,由四个类完成:读卡机、账目、ATM屏幕和取钱机。类图中每个类都是用方框表示的,分成三个部分。第一部分是类名;第二部分是类包含
原创
1689阅读
0评论
0点赞
发布博客于 3 月前

信号量机制实现进程控制

一、信号量机制实现进程互斥我们将一次仅允许一个进程访问的资源称为临界资源,而临界区是指访问临界资源的那段代码。通常将互斥信号量设置为 mutex ,初始值为 1。为什么初始值设置为 1 呢?因为数值表示访问临界资源的进程数量,作为进程互斥,同时就只能有一个进程访问临界资源,所以是 1 。对于不同的临界资源,需要设置不同的互斥信号量。这里来看一段代码:semaphore mutex = 1; // 初始化信号量P1(){ ... P(mutex); //使用临界资源前需要加锁 临界
原创
136阅读
0评论
0点赞
发布博客于 3 月前

dvt-AstahKeyfileMaker.jar

用于生成 astah license key 的工具:使用方法如下,先保证自己的电脑安装了 JDK,然后双击运行,会有一个 GUI 界面,选择自己的软件版本,然后选择存放路径,保存之后打开软件,选择 set license key 然后选择刚才的文件,即可激活软件,我用的 pro 8 版本,亲测可用。
jar
发布资源于 3 月前

Design Patterns 之命令模式

一、前言在许多设计中,经常会出现一个对象直接请求另一个对象调用其方法以达到某种目的的行为,这里的两个类之间就会出现紧耦合。这很不好,所以我们应该将 方法的请求者 和 方法的实现者 分开。比如我们可以直接用手按电视机上的按钮调节音量,这样对我们来说很麻烦,我们可以使用遥控器作为中介,相当于一个命令,这样以后就可以使用电视机遥控器(命令发送者)通过按钮(具体命令)来遥控电视机(命令接收者)。二、结构命令模式包含以下角色:抽象命令类 Command:声明执行命令的接口;具体命令角色 Concrete
原创
92阅读
1评论
2点赞
发布博客于 3 月前

UML 类图

基本表示如下图表示的就是一个类:Animal 是类名;类名斜体表示是抽象类;接口用这个表示:类中有属性和方法,各占一行。属性由 3 部分组成:可见性;属性名;属性的类型;其中可见性又分为 3 种:+ 表示 public;- 表示 private;# 表示 protected;其实属性后面可以写很多内容,完整的如下:[可见性]属性名[:类型][多重性和次序][初始值][特性]泛化关系泛化关系表示类与类,接口与接口之间的继承关系。如下就是一个例子,猴子和狗都
原创
86阅读
0评论
0点赞
发布博客于 3 月前

UML用例图

用例图中有三种关系:泛化关系;包含关系;扩展关系;泛化关系子用例和父用例相似,类似于面向对象中的继承。箭头由子用例指向父用例。包含关系由 基础用例 指向 包含用例 ,基础用例的执行必然会使用包含用例。我们可以理解为包含用例封装了可以供很多个用例使用的功能。箭头指向被包含的用例。扩展关系由 扩展用例 指向 基础用例 ,基础用例的执行可能会使用扩展用例。在扩展关系中,基本用例是一个结构完整的用例,即可以独立存在。箭头执行被扩展的用例。...
原创
82阅读
0评论
0点赞
发布博客于 3 月前

处理机调度及常用的几个调度算法

调度的基本概念当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。这就需要确定某种规则来决定处理这些任务的顺序,这就是 “调度” 研究的问题。调度分为 3 个层级:作业调度:创建新的进程;内存调度:恢复旧的进程;进程调度:选择就绪进程;其中频率最高的进程调度是我们要重点研究的。进程调度的时机、方式进程调度就是按照某种规则,从就绪队列中选择一个进程为其分配处理机。那什么时候需要进行进程调度呢?有些时候是不能进行进程调度的:中断的时候;进程在操作系统内核程序临界区中,但是
原创
343阅读
0评论
0点赞
发布博客于 3 月前

线程的基本概念

线程的特点和属性有的进程需要同时做很多事,传统的进程只能串行地执行程序,所以引入了线程来增加并发度。可以把线程理解为轻量级进程,线程是一个基本的 CPU 执行单元,也是程序执行流的最小单位。线程的实现方式用户级线程:线程切换在 用户态 下即可完成。就是从用户的视角可以看到的线程。内核级线程:线程切换在 核心态 下才能完成。操作系统只看得见内核级线程,因此只有内核级线程才是处理机分配的单位。多线程模型多对一一对一多对多...
原创
88阅读
0评论
1点赞
发布博客于 4 月前

进程的基本概念

定义在引入多道程序之后,计算机可以同时处理多个程序,那么问题来了,那么多个程序,操作系统要怎么才能找到各程序的存放位置呢?于是就引入了一个概念:PCBPCB 就是进程控制块,它用来描述进程的各种信息。进程实体由 PCB、程序段、数据段组成。我们所说的创建一个进程其实就是创建一个 PCB。PCB 是进程存在的唯一标志。注意进程和进程实体的区别:进程是程序的一次执行过程,是动态的,而进程实体是静态的。进程标识符 PID 是进程创建时系统自动分配的唯一 ID。和进程管理相关的信息都保存在 PC
原创
111阅读
2评论
1点赞
发布博客于 4 月前

前后端分离中使用 Session 域传输对象

前提前端使用 Vue,后端使用 SpringBoot 框架,使用 Session 传值后端获取不到。这里使用 Session 域来存储验证码,拿到后台去比对,验证是否正确。前端代码如下,只是发送一个请求:/** * 加载验证码 */loadImageCode() { let _this = this; _this.imageCodeToken = Tool.uuid(8); $('#image-code').attr('src', process.env.VUE_APP_SERVE
原创
190阅读
0评论
0点赞
发布博客于 4 月前

SpringBoot 上传文件后访问文件

我们在上传文件的时候会指定一个服务器的路径,这个路径不能写死在代码中,所以我们会提取出来:application.yml那么上传之后怎么访问到文件呢?我们需要将静态资源暴露出去,新建一个 MVC 配置类:package com.lsu.file.controller.config;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Con
原创
185阅读
0评论
0点赞
发布博客于 4 月前

操作系统的运行环境

运行机制对于 CPU 来说,有两种指令,一种是 特权指令 ,另一种是 非特权指令 ,前者的操作通常比较危险,如清空内存等。那么 CPU 是如何判断当前能否执行特权指令的呢?这就要看处理器的状态了,有两种:用户态(目态):此时 CPU 只能执行非特权指令;核心态(管态):可以执行特权指令。两种程序:内核程序:运行在核心态;应用程序:运行在用户态;操作系统的内核内核包括:时钟管理:实现计时功能;中断处理;原语:一种特殊的程序,是最接近硬件的部分,具有原子性。中断和异常
原创
104阅读
0评论
0点赞
发布博客于 4 月前

Vue 中使用 JQuery 插件不起作用

有时候在 vue 的代码中使用 jQuery 会不起作用,这是因为 vue 还没有绑定变量,所以我们使用的 jQuery 根本就找不到目标变量,就不会执行,正确的做法是先设置一个时延,稍微等一等 vue 的加载。界面的渲染需要等 VUE 绑定好变量后才做,我们可以使用 setTimeout 函数做一个时延:// 界面的渲染需要等 VUE 绑定好变量后才做: 所以加延时 100 mssetTimeout(function () { $("tr.active").trigger("click");}
原创
242阅读
2评论
0点赞
发布博客于 4 月前

Mybatis generator 生成 Mapper 方法不全

正常的可以生成 11 个方法,而现在的问题是只生成了 7 个方法,而且缺少的方法全部都是和 PrimaryKey 有关的方法。我也检查了数据库,主键都有,enableXXPrimaryKey 的值也没改,默认就是 true 。有人说是版本问题,我的版本如下:MySQL:5.7mybatis-generator-maven-plugin:1.4.0mysql-connector-java:8.0.18解决办法是添加一个 property:<jdbcConnection driverCl
原创
179阅读
0评论
0点赞
发布博客于 4 月前

Vue 中全局过滤器的使用

首先需要在 main.js 中注册过滤器:import filter from './filter/filter'// 全局过滤器Object.keys(filter).forEach(key => { Vue.filter(key, filter[key]);});同级目录下的 filter 文件如下:let optionKV = (list, key) => { if (!list || !key) { return ""; } else { le
原创
155阅读
0评论
0点赞
发布博客于 4 月前

使用 freemarker 制作代码生成器

在开发的过程中发现有大量的重复代码,比如 Controller 和 Service 以及 Mapper 和实体类,后两者都可以使用 Mybatis 自动生成,前两者只能自己写。本文介绍使用 freemarker 制作代码生成器,可以自动生成 Controller 、 Service 、Dto、Vue 代码。首先解释一下为什么使用 freemarker ?他是一个模板语言,模板的特点就是有很多不变的,还有一小部分变的;观察我们的 controller 层代码,大部分是一样的,变的只是实体类的名字
原创
245阅读
1评论
0点赞
发布博客于 4 月前

Mybatis-Generator 代码生成器的使用

Mybatis 官方为我们提供了持久层代码的代码生成器,可以生成 mapper.xml ,Mapper 接口和实体类。环境搭建新建一个 SpringBoot 工程。pom.xml<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version&
原创
32阅读
0评论
0点赞
发布博客于 4 月前

Vue 设置环境变量和模式

在项目的根目录下新建两个文件:.env.dev.env.prod文件内容如下:开发环境:NODE_ENV=developmentVUE_APP_SERVER=http://127.0.0.1:9000生产环境:NODE_ENV=productionVUE_APP_SERVER=http://127.0.0.1:9000在 main.js 中打印一下看看:console.log("环境: ", process.env.NODE_ENV);在请求的时候可以调用系统环境作为请
原创
250阅读
0评论
0点赞
发布博客于 4 月前

Git 删除已提交的文件

今天上传代码的时候忘记写 gitignore 了,一不小心把 node_modules 也传上去了,这破玩意体积巨大,所以要从上面删除。执行命令:git rm -r --cached admin/node_modulesgit commit -m "删除node_modules"下次 push 代码的时候就会发现已经删掉了。...
原创
62阅读
0评论
0点赞
发布博客于 4 月前

从后端开发人员的视角:最浅显的理解 Vue

本文以一个后端开发人员的视角去总结 vue 的知识点。一、文件结构新建一个 Vue 文件,它的结构如下:第一部分<template> <table id="simple-table" class="table table-bordered table-hover"> <thead> <tr> <th>ID</th> <th>名称</th> &l.
原创
46阅读
0评论
1点赞
发布博客于 4 月前

SpringBoot 跨域问题:Access to XMLHttpRequest at ‘***‘ from origin ‘***‘ has been blocked by CORS policy

Access to XMLHttpRequest at 'http://127.0.0.1:9002/business/admin/chapter/list' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.CORS 跨站点资源分享,属于跨域问题,同个 IP 的.
原创
423阅读
0评论
0点赞
发布博客于 4 月前

Vue 项目报错:‘$‘ is not defined ( no-undef )

错误描述报错如上图所示,错误原因是不认识 $ 符,他是 JQuery 中得符号,我也确实引入了 JQuery:解决办法在 vue 项目的根目录下创建一个 .eslinttrc.js 文件,文件内容如下:module.exports = { root: true, env: { node: true }, 'extends': [ 'plugin:vue/essential', 'eslint:recommended
原创
3124阅读
4评论
2点赞
发布博客于 4 月前

SpringBoot 项目开启热部署

一、导入依赖首先引入 devtools 的依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional></dep
原创
39阅读
0评论
0点赞
发布博客于 4 月前

探花交友_搭建开发环境

鉴于网上流传的资料有很多错误,开发时踩坑,故写文章记录开发过程中的配置。一、创建 maven 父子工程父工程 pom:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="htt
原创
362阅读
0评论
0点赞
发布博客于 4 月前

阿里云服务器搭建 Redis 集群

使用 Docker 搭建这里以 3 个节点为例。此命令为部署 Redis 集群,如果本地的 docker 没有 redis 的镜像,那么他会先自动下载再部署。docker create --name redis-node01 --net host -v redis-node01:/data redis:5.0.2 --cluster-enabled yes --cluster-config-file nodes-node-01.conf --port 6379docker create --nam
原创
188阅读
0评论
0点赞
发布博客于 4 月前

nacos 服务注册与配置中心

一、服务注册在本地启动 navcos 服务器:然后导入依赖:<dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <
原创
176阅读
0评论
0点赞
发布博客于 4 月前

StarUML v3.2.2 安装包

StarUML 的安装包,具体的使用教程请查看我的这篇文章:https://blog.csdn.net/weixin_43941364/article/details/108874499
zip
发布资源于 4 月前

StarUML 使用方法

下载地址:http://staruml.io/download。下载完之后,以管理员身份打开 cmd:npm install -g asarcd "C:\Program Files\StarUML\resources"asar extract app.asar app //反编译软件无任何输出即为编译成功。然后找到下面这个文件:找到 125 行,将代码修改为下面这样: checkLicenseValidity () { this.validate().then(() =&g
原创
101阅读
0评论
0点赞
发布博客于 4 月前

SpringCloud Sleuth 分布式请求链路追踪

一、Sleuth 是什么所以就有了 Spring Cloud Sleuth ,并且提供了一套完整的服务跟踪的解决方案。二、环境搭建首先需要下载 zipkin ,地址是:https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/。下载之后进入目录执行 java -jar .\zipkin-server-2.12.9-exec.jar:然后本地访问 http://localhost:9411/zipkin/ 。就可
原创
24阅读
0评论
0点赞
发布博客于 4 月前

微服务配置 Config 与消息总线

所以我们需要一个模块作为分布式配置中心,供其他服务调用。他有如下几个作用:不同环境不同配置,动态化的配置更新,分环境部署比如 dev/test/prod/beta/release;运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息;当配置发生变动时,服务 不需要重启 即可感知到配置的变化并应用新的配置。服务端编码实现首先在 pom 中引入依赖:<dependencies> <dependency>..
原创
102阅读
0评论
0点赞
发布博客于 4 月前

RabbitMQ 启动报错:Error: unable to perform an operation on node ‘rabbit@***‘. Please see diagnostics...

问题描述:安装完 ErLang 和 RabbitMQ 之后执行 rabbitmqctl status 报错:Error: unable to perform an operation on node 'rabbit@wangshuo'. Please see diagnostics information and suggestions below.Most common reasons for this are: * Target node is unreachable (e.g. due t
原创
1578阅读
0评论
0点赞
发布博客于 4 月前

微服务 Gateway 的基本配置

Gateway 有 3 大核心概念路由:是构建网关的基本模块,它由 ID ,目标 URI ,一系列的断言和过滤器组成,如果断言为 true 则匹配该路由;断言:参考的是 java8 的 java.util.function.Predicate 开发人员可以匹配 HTTP 请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由;过滤:指的是 Spring 框架中 GatewayFilter 的实例,使用过滤器,可以在请求被路由前或者之后对请求进行修改。所以我们在配置的时候一定要配
原创
686阅读
0评论
0点赞
发布博客于 5 月前

微服务 Hystrix 实现服务熔断

什么是熔断器一句话就是家里的保险丝。代码实现使用注解 @HystrixCommand 实现熔断器。/** * 服务熔断 * 在时间窗口期内如果又可以了,那么再次打开开关 * @param id ID * @return 返回提示信息 */@HystrixCommand(fallbackMethod = "paymentCircuitBreakerFallback", commandProperties = { @HystrixProper
原创
103阅读
0评论
0点赞
发布博客于 5 月前

微服务使用 Hystrix 实现服务降级

一、为什么要服务降级设想一个场景,很多人都在请求一个接口,此时这个接口就会变得非常繁忙,调用者就要等待很长时间,而微服务是互相调用的,所以微服务的调用者即客户端回等待很长时间,给用户造成不好的使用体验。而服务降级,就是指在服务端发生超时或者出错的时候,客户端要及时的屏蔽这些不好的信息,给用户一个良好的体验,比如在请求超时的时候,固定如果超过 3 秒就提示用户系统繁忙请稍后再试。二、服务降级具体实现2.1、服务端如果实在服务端,即服务的提供方,我们可以在系统业务类上加一个 HystrixComman
原创
125阅读
0评论
0点赞
发布博客于 5 月前

微服务中的负载均衡简单实现

一、使用 RestTemplate 实现在消费者微服务中,首先导入 RestTemplate 并设置该类。使用 @LoadBalanced 注解赋予 RestTemplate 负载均衡的能力。@Configurationpublic class ApplicationContextConfig { /** * LoadBalanced 赋予负载均衡的能力 */ @Bean @LoadBalanced public RestTemplate ge
原创
178阅读
0评论
0点赞
发布博客于 5 月前

Docker 中启动 ZooKeeper

以 2181 端口启动 zookeeper 进程:# 查看镜像的 ID [root@shuozg ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEzookeeper latest 36b7f3aa2340 4 days ago 252MB# 启动 zp[root@sh
原创
141阅读
0评论
0点赞
发布博客于 5 月前

Eureka 的服务发现 Discovery 简单配置

要想使用 Eureka 的服务发现机制,首先我们需要在客户端的主启动类上加上一个注解 @EnableDiscoveryClient :@SpringBootApplication@EnableEurekaClient@EnableDiscoveryClientpublic class PaymentMain8001 { public static void main(String[] args) { SpringApplication.run(PaymentMain8001.
原创
100阅读
0评论
0点赞
发布博客于 5 月前

org.springframework.web.client.ResourceAccessException: I/O error on POST request....

org.springframework.web.client.ResourceAccessException: I/O error on POST request for “http://localhost:9411/api/v2/spans”: connect timed out; nested exception is java.net.SocketTimeoutException: connect timed out报错信息如下org.springframework.web.client.Reso
原创
830阅读
0评论
0点赞
发布博客于 5 月前

Vue 与小程序:父组件给子组件传值的区别

介绍一下 Vue 和小程序在父组件给子组件传值方面的区别。Vue在 Vue 如果我们引入了一个子组件 prolist;import prolist from '../../components/prolist/prolist.vue';export default { data() { return { prolist: [], } }, components: { prolist }, ·······当我们在使用的时候可以这样使用:<prolist
原创
73阅读
0评论
0点赞
发布博客于 5 月前

JavaScript 同步和异步的执行机制问题

今天做项目的时候遇到了一个问题,当我在请求完后端数据的时候,想去立刻打印出请求出来的信息时,怎么打印都是空的,但是出来这个请求方法之后他又有数值了,于是我很纳闷,研究了1个小时找出了原因。new Promise((resolve, reject) => { wx.request({ url: baseUrl + url, data: data || {}, method: method || 'GET', success: (result) =>
原创
55阅读
0评论
0点赞
发布博客于 5 月前

微信小程序常用组件

文章目录一、常用的组件地图之-map1.marker1.1 marker1.2 marker 上的气泡 callout2.control二、小程序的定位相关api三、获取设备的基本信息的api1、设置全局的变量 app.js2.获取设备信息 app.js3.地图页面获取全局的设备信息四、处理小程序中的html标签1.rich-text2.wxparse https://github.com/icindy/wxParse五、小程序中的模板语法六、小程序常用api之拍照1.预览图片2.拍照七、wx.showA
原创
374阅读
0评论
0点赞
发布博客于 5 月前

微信小程序——轮播图、组件传值、下拉刷新、导航 实战开发

文章目录一、常用组件1.首页轮播图数据的请求以及渲染1.1 轮播图数据的请求 pages/home/home.js2 使用组件 - 视图容器 - swiper二、自定义组件 - 产品列表1.自定义组件的布局2.自定义组件的样式3.首页请求数据,并且传递给子组件4.子组件接收数据5.子组件渲染数据三、实现下拉刷新上拉加载1.开启首页的下拉刷新功能2.完善相关的下拉刷新函数四、返回顶部功能实现五、实现点击商品列表进入产品的详情页面1.构建详情页面2.声明式导航跳转3.详情页面接收数据并且渲染数据4.编程式导航渲
原创
107阅读
0评论
0点赞
发布博客于 5 月前

org.springframework.util.xml.SimpleSaxErrorHandler warning org.xml.sax.SAXParseException; systemId:

问题描述在 Spring 项目启动的时候报错如下org.springframework.util.xml.SimpleSaxErrorHandler warning警告: Ignored XML validation warningorg.xml.sax.SAXParseException; systemId: http://www.springframework.org/schema/tx/spring-tx.xsd; lineNumber: 12; columnNumber: 147; sche
原创
80阅读
0评论
0点赞
发布博客于 5 月前

Spring 整合 Mybatis

一、MyBatis 单独开发第一个问题就是配置文件繁琐。如果使用 MyBatis 配置文件的方式开发,配置文件会非常的繁琐:<configuration> <typeAliases> <typeAlias type="edu.lsu.mybatis.User" alias="user"/> </typeAliases> <environments default="mysql"> <
原创
29阅读
0评论
0点赞
发布博客于 5 月前

Java 动态代理

代理创建的 3 要素:原始对象;额外功能;代理对象和原始对象实现相同的接口。一、JDK 动态代理JDK 实现的动态代理主要是通过 java.lang.reflect 包下的 Proxy 类实现的。通过调用该类的 newProxyInstance 方法:newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h)
原创
23阅读
0评论
0点赞
发布博客于 5 月前

如何理解面向切面编程中的切面?

在学习 Spring 中,有一个很重要的内容就是 AOP,面向切面编程。很多人疑惑为什么叫做面向切面?切面是什么意思,切入点是什么意思?下面我以一种通俗易懂的方式谈谈我的理解。切面与切入点切面 = 切入点 + 额外功能。我们先从几何的角度出发,我们都知道点构成面,任何一个面都是由很多个点构成的,比如桌面是由很多个木头点构成的,而这些木头点都有相同的特性:他们都是木头,如果我们想给这些木头点加一些额外的功能,让他们都变成红色的,只需要用红色的油漆将桌子刷成红色,相当于我们给桌子上的所有的.
原创
189阅读
0评论
0点赞
发布博客于 5 月前

Spring 动态代理

一、静态代理静态代理要要实现相同的接口;要有原始对象;要有额外的功能。如下就是一个静态代理的实例。public class UserServiceProxy implements UserService { private UserServiceImpl userService = new UserServiceImpl(); @Override public void addUser() { userService.addUser();
原创
35阅读
0评论
0点赞
发布博客于 5 月前

Spring BeanPostProcessor 的执行顺序

首先 Spring 通过调用构造方法创建 User 对象;User 对象创建好之后,先不直接进行初始化操作,通过 BeanPostProcessor 对刚创建好的 User 对象进行加工操作,其中 postProcessBeforeInitialization 方法的第一个参数是 User 对象,第二个参数是在配置文件中指定的 id 值;加工好之后通过 return 将对象返回给 Spring 容器,然后 Spring 容器继续按照流程执行 初始化操作,先是 InitializingBean 的初始..
原创
495阅读
0评论
0点赞
发布博客于 5 月前

Spring 自定义类型转换器

什么是自定义类型转换器来看下面一个例子:这里有一个实体类 Personpublic class Person { private String name; private Integer age; private Date date; ...}如果我们在配置文件中这么注入的话:<bean class="edu.lsu.pojo.Person" id="person"> <property name="name" value="
原创
71阅读
0评论
0点赞
发布博客于 5 月前

Spring工厂创建复杂对象

什么是复杂对象复杂对象是指无法使用 new 关键字直接创建的对象,比如在使用数据库连接的时候,我们需要用如下的方式创建对象:Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useSSL=false", "root", "root");再比如在使用 MyBatis 时
原创
72阅读
0评论
0点赞
发布博客于 5 月前

代理工厂的简单应用

一、简单工厂模式我们在 JavaWeb 中使用三层架构开发的时候往往有很多耦合的地方,比如下面这个场景。public class UserServiceImpl implements UserService { private UserDaoImpl userDao = new UserDaoImpl(); @Override public void addUser() { userDao.addUser(); } @Override
原创
65阅读
0评论
0点赞
发布博客于 5 月前

Spring MVC 整合 Servlet 3.0

根据 Servlet 3.0 的新特性,web 容器启动的时候会扫描每个 jar 包下的 /META-INF/services/javax.servlet.ServletContainerInitializer 文件。使用 Spring MVC 的 web 包,可以看到有这个文件:文件内容如下:org.springframework.web.SpringServletContainerInitializer该类的头部信息如下:@HandlesTypes(WebApplicationInitia
原创
89阅读
0评论
0点赞
发布博客于 7 月前

Spring 容器的创建过程

文章目录概览1、prepareRefresh1.1、initPropertySources1.2、validateRequiredProperties2、obtainFreshBeanFactory2.1、refreshBeanFactory2.2、getBeanFactory3、prepareBeanFactory4、postProcessBeanFactory5、invokeBeanFactoryPostProcessors5.0、invokeBeanFactoryPostProcessors6、reg
原创
121阅读
0评论
0点赞
发布博客于 7 月前

Spring 中的几个 PostProcessor 的区别与联系

首先明确 Bean 的生命周期:首先注册 Bean 的定义信息;然后创建 Bean 的实例;最后初始化 Bean ,放入容器中。按照执行的顺序,可以分为以下几个步骤:BeanDefinitionRegistryPostProcessor 是在注册 Bean 定义信息前后调用;BeanFactoryPostProcessor 是在创建 Bean 前后调用;BeanPostProcessor 是在初始化 Bean 前后调用;其中 BeanDefinitionRegistryPostProc
原创
191阅读
0评论
0点赞
发布博客于 7 月前

Spring 中基于注解的事务控制及原理分析

一、基本使用除了 Spring context 之外还需要导入以下几个包:<dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version></dependency><dependency> <groupId>org.
原创
57阅读
0评论
0点赞
发布博客于 7 月前

深入分析 Spring 基于注解的 AOP 实现原理

一、AOP 的基本使用AOP 的使用分为三步走:将业务逻辑组件和切面类都加入到容器中:告诉 Spring 哪个是切面类;@Aspect在切入类上的每一个通知方法上标注通知注解:告诉 Spring 何时何地运行(切入点表达式)@Pointcut、@Before~~~在配置类上开启基于注解的 AOP 模式;@EnableAspectJAutoProxy下面以一个计算器的例子来介绍 AOP 的基本使用:1、待增强类这是一个简单的计算器类,为了能够演示异常,所以创建了一个除法的方法。public
原创
456阅读
0评论
2点赞
发布博客于 7 月前

Spring 中根据环境切换配置 @Profile

我们实际开发中往往有多个环境,比如测试环境、开发环境、生产环境等;不同的环境往往配置也有区别,一直切换环境的配置很麻烦,Spring 为我们提供了一个注解,可以快速切换环境配置。@Profile我们新建一个配置,作用是注册三个数据源,因为不同的环境使用的数据库一般不一样:@Configuration@PropertySource("classpath:/person.properties")public class MainConfigOfProfile implements Embedded.
原创
237阅读
0评论
0点赞
发布博客于 7 月前

Spring 中实现自动注入的几种方式

Spring 中实现自动装配的注解有以下几个:@Autowired、@Qualifier、@Primary、@Resource、@Inject;@AutowiredSpring 中最常用的一个注解,当一个组件需要另一个组件作为属性的时候,我们可以通过两种方式对属性进行赋值,一种是通过构造方法,一种是通过 set 方法(类比),而这个注解使用的方法就是后者。下面介绍该注解的特点:首先是 按照类型 自动注入,适用于容器中只有一种该类型的组件;如果存在多个相同类型的组件,则将属性名作为 id 查
原创
295阅读
0评论
0点赞
发布博客于 7 月前

Spring 中的属性赋值

一、配置文件中的配置如果使用配置文件的话,可以直接使用 value 属性指定值。<!-- 指定配置文件的位置 --><context:property-placeholder location="classpath:person.properties"/><bean class="top.wsuo.pojo.Person" id="person"> <property name="name" value="李四"/> <pr
原创
71阅读
0评论
0点赞
发布博客于 7 月前

Spring 中的 @Import 注解及向容器中添加 Bean 的几种方式

这次介绍一下 Spring 中的几个注解 @Conditional 以及 @Scope 和 @Lazy。本文的组织结构如下:先看一下该注解取代了配置文件中的哪些配置;再总览这些注解有哪些属性值;最后讲解一下重要的属性值。Spring 版本 5.1.2.RELEASE一、XML 配置二、属性总览三、重要属性讲解...
原创
462阅读
0评论
3点赞
发布博客于 7 月前

Spring 注解开发之 @Conditional

这次介绍一下 Spring 中的几个注解 @Conditional 以及 @Scope 和 @Lazy。本文的组织结构如下:先看一下该注解取代了配置文件中的哪些配置;再总览这些注解有哪些属性值;最后讲解一下重要的属性值。Spring 版本 5.1.2.RELEASE一、XML 配置二、属性总览三、重要属性讲解...
原创
54阅读
0评论
0点赞
发布博客于 7 月前

Spring 注解开发之 @Bean 及其相关注解

这次介绍一下 Spring 中的几个注解 @Bean 以及 @Scope 和 @Lazy。本文的组织结构如下:先看一下该注解取代了配置文件中的哪些配置;再总览这些注解有哪些属性值;最后讲解一下重要的属性值。Spring 版本 5.1.2.RELEASE一、XML 配置在配置文件中,我们使用 bean 标签将组件放入容器中,使用它的 scope 指定作用范围,lazy-init 指定模式是懒加载;<bean class="top.wsuo.pojo.Person" id="per
原创
62阅读
0评论
0点赞
发布博客于 7 月前

Spring 注解开发之 @ComponentScan

这次介绍一下 Spring 中比较重要的一个注解 @ComponentScan。本文的组织结构如下:先看一下该注解取代了配置文件中的哪些配置;再总览该注解有哪些属性值;最后讲解一下重要的属性值。Spring 版本 5.1.2.RELEASE一、XML 配置@component 注解取代了配置文件中的如下配置:<context:component-scan base-package="top.wsuo"/>这一行配置的意思是开启包扫描,会自动扫描带有 @componen
原创
91阅读
0评论
0点赞
发布博客于 7 月前

数据库系统概论考试心得+复习指南

仅适用于 LSU 的数据库系统概论课程。由于是咱们学校的,就限制一下只有关注了我才可以看。由于疫情影响,本门课程分为本学期末与下学期开始两次时间考试,我参加了本学期的考试,于此分享考试心得。只想及格的话考前拿出一天的时间看一下就行,想考 80+ 就得拿出两天的时间了。一、数据库系统概论总结根据马老师提供的大纲加以补充试后感悟:老师给的大纲完全就是按照试卷的顺序来的,比如触发器是第一题,数据库恢复是第二题。1、题型1、简答 4 题 共 20 分;2、编程题 13 题 共 40 分;
原创
1786阅读
3评论
6点赞
发布博客于 7 月前

使用封锁协议解决事务的并发问题

一、事务的并发问题事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。并发是指多个事务同时执行,这会带来一些问题。丢失修改丢失修改由两次事务的修改导致,比如事务 T1 修改 A,同时事务 T2 也修改 A,那么最后 A 的值将由事务 T2 的修改结果决定,这样事务 T1 的修改就没了,导致丢失修改。不可重复读分为两种情况,第一种是事务 T1 读取 K ,这个时候读取到一个值 A,然后事务 T2 增加或者删除了一条记录,过了一会事务 T1 又过来读取了
原创
3438阅读
0评论
1点赞
发布博客于 7 月前

初探 SpringBoot 自动装配

在不使用 SpringBoot 的时候,如果我们需要一个类必须要将它放到 Spring 的容器中,但是使用了 SpringBoot 之后就算我们不配置,仅仅是导入 jar 包就可以直接从容器中获取类了,这是怎么实现的呢?基于 SpringBoot 2.2.0.RELEASE 版本下面介绍帮助 SB 实现自动装配的 最关键 的四个注解或类。SpringBootApplication首先每个 SpringBoot 项目都会有一个启动类,来看一下这个启动类:@SpringBootApplicatio
原创
93阅读
0评论
0点赞
发布博客于 8 月前

报错405:HTTP method GET is not supported by this URL

405响应码首先要知道 405 响应码的作用是什么,它的意思就会说请求的方法不匹配,一般是因为本来是 POST 提交的请求,你使用了 GET 方法造成的,也可能是这个请求方法根本没有是你胡编乱造出来的。提示信息提示信息说不支持 GET 方法,我创建了一个类继承自 HttpServlet 类,并且重写了 service 方法,但是我又加了一个 super.service() 方法,这就导致出错了,下面解释原因。因为请求过来之后会先到 service 方法,如果我们没有重写该方法,那么就会直接到 Ht
原创
243阅读
0评论
0点赞
发布博客于 8 月前

使用 Django + Vue.js 开发个人博客网站(完整版附源码)—— Python-课程设计-期末项目

页面展示:源码首页不同板块注册页面登录页面个人信息写文章页面文章详情页面文章评论本文主要讲解 Python 后端部分,由于仅仅用到了 vue 作为 js 框架并非前后端分离项目,故前端不单独介绍。一、项目内容(做什么)本项目实现了一个网页端的 博客系统 ,该博客系统允许多人注册登录,用户可以在网站上面发布博客,浏览别人发布的博客。实际意义在于:当一个小组或者一个班级需要进行学习与交流的时候可以用到,大家都可以在上面分享自己的学习心得,然后互相学习,由于本项目分了板
原创
2248阅读
1评论
11点赞
发布博客于 8 月前

思科模拟器:网络安全实验

一、实验目的• 掌握访问列表顺序配置的重要性• 理解标准访问控制列表的作用• 掌握扩展访问列表的配置• 理解扩展访问列表丰富的过滤条件二、应用环境• 某些安全性要求比较高的主机或网络需要进行访问控制• 其它的很多应用都可以使用访问控制列表提供操作条件• 可以针对目标IP地址进行控制• 针对某些服务进行控制• 可以针对某些协议进行控制三、实验设备• Cisco 路由器 2 台• PC 机 2 台• 交叉线 3 条四、实验拓扑五、实验要求六、实验步骤配置访问控制器列表第
原创
799阅读
0评论
1点赞
发布博客于 8 月前

Django入门:基于 Django 的 Web 页面开发

本文通过手写一个最简单的博客网站来演示 Django 的 Web 开发。演示:功能要求:具有文章列表页,文章详情页;文章列表页点击文章可跳转到对应详情页;文章列表页具有分页功能;文章详细页具有上下文章跳转;1、创建项目使用 PyCharm 创建一个 DJango 项目。指定路径之后,点击 create 创建项目。创建完成之后的项目结构:我们采用分模块开发,所以新建一个文章的模块,取名为article,在 Pycharm 下面找到终端程序,点击进去之后执行下面的命令:py.
原创
433阅读
0评论
0点赞
发布博客于 8 月前

JDBC 技术应用实践:网上书城后台管理系统

实验二 JDBC 技术应用实践本项目使用 Servlet + JSP + JDBC 实现,没有使用任何框架,数据库为 MySQL 5.7一、实验目的1、掌握数据库事务处理,掌握 DAO 设计模式;2、掌握使用传统的方法访问数据库;2、掌握使用数据源的方法访问数据库。4、掌握 JSTL 核心标签库。二、实验内容采用 MVC 设计模式,设计并实现网上书城后台管理程序,访问数据库采用 DAO 设计模式。实现的功能包括:商品管理,公告管理,订单查询。商品管理模块包括添加商品,修改商品,删除商
原创
305阅读
4评论
1点赞
发布博客于 8 月前

思科模拟器:路由器基本配置

实验四 路由器基本配置一、实验目的(1)熟悉路由各接口的外观、接口的功能、接口的表示方法;(2)掌握带外的管理方法:通过接口console配置;(3)掌握带内的管理方法:通过方式telnet配置;二、应用环境路由器是三层设备,主要功能是进行路径选择和广域网的连接。与交换机相比,接口数量要少很多,但功能要强大的多,这些功能在外观上就是接口、模块的类型比较多,当然价格有很大的差异,通常高端的设备都是模块化的,支持的模块类型也很丰富。三、实验设备(1) DCR 路由器1(2) PC 机1台
原创
1843阅读
0评论
1点赞
发布博客于 8 月前

思科模拟器:实验五——高级路由实验

路由器静态路由和动态路由的配置。一、实验目的(1) 理解路由表(2) 掌握静态路由和动态路由的配置(3) 理解 RIP 和 OSPF 协议的工作过程二、应用环境(1) 在小规模环境里,静态路由是最佳的选择(2) 静态路由开销小,但不灵活,使用于相对稳定的网络三、实验设备(1) DCR 路由器 3 台(2) CR-V35FC 1 条(3) CR-V35MT 1条四、实验拓扑静态路由与 RIP 协议配置的实验拓扑: OSPF 协议配置的拓扑结构:五、实验要求配置路由器的 .
原创
570阅读
0评论
0点赞
发布博客于 8 月前

从零开始重新认识 SpringMVC

一、核心前端控制器我们需要在 web.xml 中做如下配置:<servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name&.
原创
90阅读
0评论
0点赞
发布博客于 8 月前

从零开始重新认识 Spring Framework

如果你想快速入门 Spring 框架,或者想快速复习 Spring 的基本操作,那么这篇文章再适合你不过了。本文没有书上的啰里啰嗦,很言简意赅,但是需要读者有一定的基础,这里不会介绍一些常用的概念是啥,都是在实践中学习用法,所以没什么精华可言,只 停留在会用的层面,有些重要的会说一下原理。因为关于概念的讲解网上有太多太多了,这里我就不再 reinvent the wheel (造轮子)了,只说一下如何使用这些功能。IOC我们以一个实际的例子来看一下什么是 IOC,这里使用到了 Account 表
原创
164阅读
0评论
0点赞
发布博客于 9 月前

思科模拟器:高级交换实验

高级交换实验一、实验目的(1)了解生成树协议的作用;(2)熟悉生成树协议的配置。二、应用环境采用生成树协议可以避免环路。生成树协议的根本目的是将一个存在物理环路的交换网络变成一个没有环路的逻辑树形网络。IEEE802.ID协议通过在交换机上运行一套复杂的算法STA(spanning-tree algorithm), 使冗余端口置于“阻断状态”,使得接入网络的计算机在与其他计算机通讯时,只有一条链路生效,而当这个链路出现故障无法使用时,IEEE802.1d协议会重新计算网络链路,将处于“阻断状态”的
原创
467阅读
0评论
0点赞
发布博客于 9 月前

Java 操作 ElasticSearch

一、ElasticSearch 集成 SpringBoot首先是依赖问题,导入依赖之后会有版本问题:SpringBoot 2.3.0 支持 7.6.2版本,但是我不是最新的版本,所以自定义版本:<properties> <java.version>1.8</java.version> <elasticsearch>7.6.1</elasticsearch></properties>我们先创建
原创
146阅读
0评论
0点赞
发布博客于 9 月前

ElasticSearch 基本的查询命令+集成 SpringBoot

关于 ElasticSearch 的安装配置请查阅这篇文章:https://blog.csdn.net/weixin_43941364/article/details/105680161一、分词器的使用IK 分词器的使用最少拆分ik_smart:GET _analyze{ "analyzer": "ik_smart", "text": "中国是一个伟大的国家"}结果是:{ "tokens" : [ { "token" : "中", "start_
原创
365阅读
0评论
0点赞
发布博客于 9 月前

Docker 常用命令

一、常用命令基本命令docker versiondocker infodocker --help官方文档:https://docs.docker.com/reference/镜像命令查看镜像:// 查看所有的镜像docker images// 可选参数Options: -a, --all Show all images (default hides intermediate images) --digests Show dig
原创
117阅读
0评论
0点赞
发布博客于 9 月前

数据库能力测试:SQL 语句改错

本练习采用 MS Sql Server 作为数据库管理系统。测试目标:1.熟练掌握建表的 SQL 语句2.熟练掌握查询的 SQL 语句3.熟练掌握增加记录、修改记录、删除记录的 SQL 语句4.熟练掌握创建视图的 SQL 语句这些语句都存在各种各样的问题,有些是语法错误,有些是结果不符合题目的要求。个别题目是无法实现的,请指出无法实现的原因。数据库资源请在这里下载:https://download.csdn.net/download/weixin_43941364/12475108导
原创
533阅读
0评论
0点赞
发布博客于 9 月前