自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 在线教育项目前端部署

在线教育项目中的前端有两部分:使用element ui+vue 搭建的后台管理界面;使用Nuxt搭建的前台展示页面。要对于前端的页面进行打包主要需要使用的就是npm。1、后台管理项目打包对于element ui搭建的页面,在打包之前需要对于根目录下的index.html 文件中引入富文本组件中的BASE_URL进行修改。未修改之前:<script src= "<%= BASE_URL %>/tinymce4.7.5/tinymce.min.js"></scri

2020-11-29 09:56:25 1083 4

原创 在线教育项目后端部署

谷粒学院的这个项目,除了最后的权限管理模块,其他部分都还可以。最不能容忍的就是最后的项目部署,拿了一个最简单的项目来讲解完自动化部署模块之后就没有任何教程了。而且使用自动化部署项目,对于初学者来说,即抽象又不能了解一点底层的原理,现阶段来说不太容易实现。本次对于本项目的部署采用idea+maven的方式打包项目,首先看一下整个项目的架构。1、打包准备所有的顶层模块中的pom文件中的打包方式都改为pom,即在pom文件中添加:<packaging>pom</packaging&gt

2020-11-28 18:06:53 1514 8

原创 谷粒学院项目中权限管理模块BUG解决

本博文是在权限管理模块的前后端都已经搭建完成的基础上,针对其中的bug进行解决的。1、权限管理流程(1)前端项目启动前端项目启动后,会自动访问 http://localhost:9528/ ,但是实际跳转的是http://localhost:9528/login。这是由于在src目录下的permission.js中定义了路由跳转之前的判断规则。// 该操作会在路由跳转之前执行router.beforeEach(async(to, from, next) => { // start pr

2020-11-28 15:51:28 4751 10

原创 Linux上安装、启动、远程连接redis

接上一篇在linux上安装mysql的文章,本次将对于redis的安装、启动、远程连接作一个全面的记录。环境介绍:阿里云ECS服务器,centos7.8系统。1、安装(1)下载并解压对于redis,采用的是先下载tar.gz文件,传输到服务器上进行安装的方式。粘一下官方网站的地址:https://redis.io/。下载后,传输文件到linux上的 /usr/local 目录下,tar -zxvf redis-6.0.6.tar.gz解压后,文件夹下会出现:(2)准备安装环境解压后

2020-11-27 15:25:38 631

原创 Linux上安装、启动并连接Mysql

由于部署项目需要,购入了一台阿里云服务器作为mysql、redis和nacos的运行平台,需要重新搭建环境。由于在linux上对mysql进行安装和启动的流程不止经历了一次了,以后可能还需要经历,在此记录一下,避免之后的重复搜索劳动。1、安装本次使用的是rpm安装的方式,安装目录/usr/local(1)wget http://repo.mysql.com/mysql57-community-release-el7-9.noarch.rpm(下载rpm包)rpm包下载完成之后,对下载的包执行安装命令

2020-11-27 11:04:09 1522

原创 Netty源码分析二:服务端监听源码分析

阅读本文之前最好先阅读前一篇博文的分析,以便于更好的理解本文内容。本文主要针对服务器端的Netty常见编码形式进行源码分析,从而充分理解Netty的运行机制和各个组件的本质。首先,NioEventLoopGroup的创建过程都是类似的,这里就不再进行追溯,而在创建的bs方法,客户端使用的是Bootstrap,服务器端使用的是ServerBootstrap。因此在sbs的链式调用这一部分有所区别,这里就从链式调用开始进行分析。先将服务端设置监听的源码展示如下。public static void mai

2020-10-08 15:09:58 255

原创 Netty源码解析一:客户端的连接源码分析

本篇博客不去具体分析Netty的使用,而是在能够使用netty的基础上去进一步分析其源码。本文主要对客户端连接过程进行分析。首先,在客户端建立起与服务器端连接的代码如下:public static void main(String[] args) { // 创建一个线程组 NioEventLoopGroup eventExecutors = new NioEventLoopGroup(); // 创建一个用来初始化的bs Bootstrap bootstrap = new B

2020-10-08 15:02:32 208

原创 Docker的安装、配置及其基本使用

1、安装平台Linux虚拟机:VirtualBox上安装的CentOS7注意:CentOS7的内核要在3.10以上才能安装docker,查看内核命令:uname -r若不满足要求,可更新内核,但该步耗时较长,谨慎使用,更新命令如下:yum update2、安装过程① 安装需要的软件包:sudo yum install -y yum-utils device-mapper-p...

2020-03-20 22:44:29 157

原创 Java提升七:注解

1、引言

2020-03-08 22:22:41 208

原创 Java提升六:泛型

1、引言在阅读一些框架或API的源码时,经常看到泛型的应用,而之前对于泛型的了解比较浅薄,需要进一步研究一下。2 、泛型定义泛型,在代码的应用层面来说,泛型是Java中所有类型的一个泛指。(1)引入泛型的好处:① 安全简单,可以将运行时错误提前到编译时错误。泛型只在编译阶段有效,在编译过程中,正确检验泛型结果后,会将泛型的相关信息擦出,并且在对象进入和离开方法的边界处添加类型检查...

2020-03-04 21:54:47 205

原创 Java提升五:反射与动态代理

1、反射关于反射,个人理解就是,对于每一个已定义的Java类对象,都可以通过获取该类对应的Class类来在程序运行时动态地对于该类进行操作。可以说,反射就是通过类名或类路径等字符串信息来直接创建和改变对象的操作。1.1 Class类的获取首先,我们需要知道,在Java中代码运行过程。从上图中,可以推出一个反射机制的流程,当new Person对象时,编译器从硬盘中读取Person....

2020-02-29 23:08:15 115

原创 MySQL中如何将主键默认值设为UUID()

1、问题mysql中在设置主键(id)的默认值时,有一下两种情况:当 id 为 int 类型时,可以直接在创建表时设置id为 id primary key auto_increase,即默认 id 为主键自增长。当 id 为 varchar 类型时,要设置主键id的唯一默认字符串的值,需要使用UUID()函数,但是mysql中不支持默认值为函数,本文就是为了解决这个问题。2、解决方案...

2020-02-18 23:14:57 12894 4

原创 图解Mybatis框架原理及使用

1、前言努力学习完ssm框架之后,终于也成功的把三大框架的使用以及配置文件细节忘得一干二净。为了努力捡起来以及方便今后的复习,决定写一篇博客记录一下。本博客的所有分析都是在持久层接口以及接口中的方法已经创建的基础上进行的。本博客对于Mybatis中标签的细节属性不做过多探讨,主要着重于Mybatis框架的底层原理和大体使用步骤。本博客着重于以Mybatis的xml配置方式为主,作源码分析...

2020-02-15 22:53:19 457

原创 Java提升四:Stream流

1、Stream流的定义Stream是Java中的一个接口。它的作用类似于迭代器,但其功能比迭代器强大,主要用于对数组和集合的操作。Stream中的流式思想:每一步只操作,不存储。2、Stream流的获取可以获取Stream流的有数组和集合。对于数组而言,获取Stream流的方式如下:StreamMethodCount of(数组)代码示例: //数组变为Stream流 ...

2020-02-11 21:55:05 161

原创 Java提升三:函数式接口

1、 定义函数式接口即是有且仅有一个抽象方法的接口。注意:(1)函数式接口只对于抽象方法有要求,对于接口中的默认方法,静态方法,私有方法数量并不作特殊要求。(2)既然函数式接口定义了抽象方法,则对于函数式接口进行实现的类必须要实现其定义的抽象方法。2、 函数式接口的创建(1)直接定义一个只包含一个抽象方法的接口即可。(2)在创建类时,使用@FunctionalInterface注...

2020-02-05 20:44:20 153

原创 Java提升二:Lambda表达式与方法引用

java提升二:Lambda表达式与方法引用Lambda表达式定义lambda表达式是对于函数式接口(只含有一个抽象方法的接口)的简洁实现方式。它与匿名内部类的作用相似,但是就使用范围而言,匿名内部类更为广泛,而lambda表达式则更为简洁。使用lambda表达式的写法:(需要实现方法的参数)->{对于方法的具体实现}代码展示先定义一个函数式接口,并定义方法使用函数式接口。...

2020-02-05 19:50:33 147

原创 java提升一:内部类

java提升一:内部类总体定义定义在一类中的类,就称之为内部类。为什么要使用内部类(1)使用匿名内部类,可以简化只需一次性使用的接口实现类的变量创建,方便了对于接口和抽象类的实现及其使用。(2)每个内部类都可以独立的继承一个(接口)的实现,所以无论外部类是否已经继承了某个接口的实现对于内部类都没有影响。简单来说,内部类实现了java中的多重继承。内部类的分类和使用一、成员内部类成员...

2020-02-02 20:21:14 111

空空如也

空空如也

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

TA关注的人

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