![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
爱编程
wunianisme
Java开发工程师
微信公众号:人玉林风
简书:勿念及时雨
展开
-
POI实际应用之POI简介
POI是什么?Apache POI是Apache软件基金会的开放源码函式库,它提供了一系列API给JAVA程序实现对Microsoft Office格式文档的读写功能。官网地址:http://poi.apache.org对于不同格式的文档,POI提供了不同的结构来实现读写功能:HSSF,提供对Microsoft Excel格式文档的读写功能(03版Excel,文件扩展名为.xls,最多只能存65536行数据)。XSSF,提供对Microsoft Excel OOXML格式文档的读写功能(07版E原创 2020-12-11 15:24:58 · 1182 阅读 · 0 评论 -
对象存储OSS之头像上传实现
学习完了OSS,我们来实现一个头像上传功能。基本思路就是在前端上传一个本地文件,点击上传按钮将其上传到阿里云服务器上,后台文件上传功能需要使用到OSS的API来实现。头像上传1、在前端项目中新增文件上传页面form.vue,使用image-cropper组件来显示头像,添加更换头像按钮,绑定点击事件,并向后台上传接口发送请求(在image-cropper组件中配置:url属性)。<template> <div class="app-container"> <e原创 2020-12-11 15:21:41 · 675 阅读 · 1 评论 -
对象存储OSS之测试OSS的基本API
经过之前的学习,我们已经开通了阿里云OSS服务并配置了测试账号权限,接下来就可以开始学习OSS的基本API了。如何快速的掌握使用一门技术?快速掌握使用一门技术,是每个程序员都要掌握的基本能力。一般只需要做到以下两点:1、查看官方文档2、练习基本的API阿里云OSS帮助文档阿里云OSS的API都在帮助文档里,我们首先要做的就是找到帮助文档。步骤如下:1、进入概览页面,点击右上角“开始使用阿里云OSS”。2、打开帮助文档,往下拉可以找到OSS针对不同编程语言提供的API和SDK包。我们这里点击原创 2020-12-11 15:11:19 · 2655 阅读 · 0 评论 -
对象存储OSS之获取测试账号权限
之前我们学习了如何开通阿里云OSS服务和创建Bucket,并且上传了一张图片,接下来就来学习一下如何获取测试账号权限。获取测试账号权限1.在Bucket列表页,点击右上方账号头像,点击“AccessKey管理”。2、在弹出的“安全提示”框中点击“开始使用子用户AccessKey”。AccessKey是访问阿里云API的密钥,具有该账户完全的权限。注意这里为了安全必须选择使用子权限。3、点击“用户组”,然后点击“创建用户组”,在弹出的表单中填写用户组名称、显示名称和备注,然后点击“确定”,然后出现原创 2020-12-11 15:07:05 · 606 阅读 · 0 评论 -
对象存储OSS之阿里云OSS介绍及开通
数据、文件存储方式一般,数据、文件的存储主要有以下几种方式:MySQL数据(MySQL)+文件(本地IO流)数据(MySQL)+缓存(Redis)+文件(服务器集群、fastDFS(集群)、hdfs(大数据))数据(MySQL)+缓存(Redis)+文件(OSS)对象存储OSS什么是OSS?对象存储OSS是为了解决海量数据存储和弹性扩容问题,我们这里采用的是阿里云OSS存储。阿里云官网对对象存储OSS的介绍如下:海量、安全、低成本、高可靠的云存储服务,提供99.9999999999原创 2020-12-11 15:02:53 · 4331 阅读 · 0 评论 -
前后端联调实例-讲师管理
之前学习了一下前后端联调的一般步骤和Nginx的简单配置,现在以讲师管理功能为例来实战一下。项目环境后端:SpringBoot + MyBatisPlus +MySQL+Nginx前端:vue-cli + axios后端1、编写讲师管理Controller,包含根据id删除讲师、分页查询讲师列表、新增讲师等请求接口。@Api(description = "讲师管理")@RestController@RequestMapping("/admin/edu/teacher")@CrossOrig原创 2020-11-01 18:14:20 · 508 阅读 · 0 评论 -
前后端联调的一般步骤和Nginx简单配置
前后端联调的一般步骤1、创建前端工程(这里创建的是vue-cli项目)2、编写后端登录业务3、替换页面元素为自己需要的,比如图标,标题之类的4、编写前端页面Vue组件5、编写跳转到组件的路由(router/index.js)6、如果需要从后端获取数据,使用Axios异步通信,默认框架中使用了request封装请求BASE_API:'"http://localhost:8120'7、编写处理后端接口的js函数import request from '@/utils/request'ex原创 2020-10-31 01:40:45 · 10380 阅读 · 0 评论 -
WunianEdu系统开发-底层微服务搭建
数据库搭建创建数据库wunian_edu,创建多张数据库表并插入一些数据。建表SQL如下:CREATE TABLE `edu_chapter` ( `id` char(19) NOT NULL COMMENT '章节ID', `course_id` char(19) NOT NULL COMMENT '课程ID', `title` varchar(50) NOT NULL COMMENT '章节名称', `sort` int(10) unsigned NOT NULL DEFAULT.原创 2020-10-31 01:37:18 · 235 阅读 · 0 评论 -
WunianEdu系统简介
功能简介WunianEdu系统是以提高IT人员技能为核心,采用个性化、随到随学的学习模式, 为学员提供高效学习路线,打造最适合在线学习的优质教学产品和服务。WunianEdu是一个B2C模式的职业技能在线教育系统,分为前台用户系统和后台运营平台。前台用户系统包括课程、问答、文章三大部分。后台运营平台包括会员管理、讲师管理、课程管理、文章资讯、统计分析等系统功能。系统使用了前后端分离架构。后端的主要技术架构为:SpringBoot + SpringCloud + MyBatis-Plus + My原创 2020-06-13 23:05:36 · 412 阅读 · 0 评论 -
浅谈在线教育
什么是在线教育?在线教育,是以网络为媒介的教学方式,通过网络,学员与教师即使相隔万里也可以开展教学活动;此外,借助网络课件,学员还可以随时随地进行学习,真正打破了时间和空间的限制,对于工作繁忙,学习时间不固定的职场人而言网络远程教育是最方便不过的学习方式。起源在线教育起源于一位名为萨尔曼·可汗的孟加拉裔美国人,他在美国创办了可汗学院。他仅仅靠自己一个人就制作了有关数学、物理、化学、生物、天文学等科目2300多部教学视频,利用视频技术改革传统教学手段,向全世界提供免费的高品质教育。全球有5600万中小学原创 2020-06-11 00:10:38 · 3165 阅读 · 0 评论 -
MyBatis-Plus快速入门
简介什么是MyBatis-Plus?MyBatis-Plus(以下简称MP),为简化开发而生。MP是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变。MP的特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求支持原创 2020-06-09 00:10:17 · 431 阅读 · 0 评论 -
Element-ui和vue-element-admin学习
Element-ui什么是Element-ui?根据官网的说法,Element-ui,是一套为开发者、设计师和产品经理准备的基于Vue 2.0的由饿了么公司出品的桌面端组件库。官网:https://element.eleme.cn/#/zh-CN如何使用?1、创建文件夹element-ui。2、下载组件。npm install vue #安装Vuenpm i element-ui -S #安装Element-ui3、为了代码更加清爽,可以将主要依赖vue.min.js和elem原创 2020-05-27 00:23:05 · 10046 阅读 · 0 评论 -
标准前端化工程 Vue-cli
知识回顾在学习Vue-cli之前,我们已经学习了前端体系、前后端分离的演变、Vue入门、Vue的基本语法、Vue组件、Vue路由、Axios等内容。接下来我们就来学习标砖前端化工程Vue-cli。Vue-cli什么是Vue-cli?Vue-cli是官方提供的一个脚手架工具,我们可以利用它快速生成前端化的工程模板,十分方便好用。其功能主要有:统一的目录快速调试单元测试在线运行…环境安装使用npm进行全局安装,如果是首次安装可能速度会有点慢。npm install vu.原创 2020-05-24 23:17:38 · 290 阅读 · 0 评论 -
Vue快速入门
MVVM模式什么是MVVM模式?MVVM(Model-View-ViewModel)是一种软件架构设计模式,由微软 WPF(用于替代 WinForm,以前就是用这个技术开发桌面应用程序的)和 Silverlight(类似于 Java Applet,简单点说就是在浏览器上运行的 WPF) 的架构师 Ken Cooper 和 Ted Peters 开发,是一种简化用户界面的事件驱动编程方式。 ...原创 2020-05-04 10:39:02 · 421 阅读 · 0 评论 -
学习Vue之前-快速了解前端体系和前后端分离的演变史
前端体系想要成为真正的互联网Java全栈工程师,前端是绕不开的一门必修课。接下来我们就来认识前端、了解前端、掌握前端,为成为互联网Java全栈工程师而前进。前端三要素前端三要素为:HTML(结构):超文本标记语言(Hyper Text Markup Language),决定网页的结构和内容。CSS(表现):层叠样式表(Cascading Style Sheets),设定网页的表现样式...原创 2020-04-27 22:11:17 · 799 阅读 · 0 评论 -
大前端进阶
我们知道,前端的基础无非就是:HTML+CSS+JS(jquery)+UI框架+…从现在开始,我们要学习进阶的前端技术,内容包括VSCode的使用、Node.js、ES6语法、NPM、Babel、模块化和Webpack。VSCode的使用VSCode是一个前端的代码编辑器,非常受前端开发者的青睐。我们先来学习一下它的安装和使用方法。1、从官网上下载VSCode,下载地址: https://...原创 2020-04-26 23:58:22 · 1841 阅读 · 0 评论 -
富文本编辑器Editormd的配置使用
我们经常可以看到各个博客网站中用于编辑文章的富文本编辑器,在富文本编辑器中,我们可以对我们的编辑内容样式进行设置。富文本编辑器一般是通过插件来实现的,我们只需要在页面中配置一下插件提供的一些API即可。本例中使用Editormd来演示如何配置使用富文本编辑器。Editormd简介Editormd是国内开源的一款在线Markdown编辑器,可嵌入的 Markdown 在线编辑器(组件),基于...原创 2020-04-18 00:09:12 · 7372 阅读 · 1 评论 -
SpringSecurity权限控制
初识SpringSecurity学习思路了解SpringSecurity是什么。查看官网简介。简单快速阅读官方文档。经过一段时间的学习,我们知道构建一个SpringBoot项目只需要三步:导入maven依赖。配置相关文件。编写测试代码。安全框架在Web开发中,安全一直是一个十分重要的环节。它是一种非功能性的需求,但是对于一个系统十分重要,我们一般都会使用一些组件...原创 2020-04-13 11:20:11 · 1833 阅读 · 1 评论 -
SpringBoot开发单体应用(三)
单体开发进阶SpringBoot的Web开发之路众所周知,CRUD是每个程序员的必经之路。作为一个初级程序员,只要能够独立开发出一个简单的CRUD系统即可,例如OA系统、CRM管理系统、基于表单的CRUD系统等。简单来说,分布式开发是后端提供接口,前端接收信息进行渲染;单体开发是后端提供数据,前端获取数据进行渲染。从开发流程来说,单体开发和分布式开发本质上并没有区别,只是用到的技术和思...原创 2020-04-07 13:49:32 · 925 阅读 · 0 评论 -
SpringBoot开发单体应用(二)
页面国际化国际化,英文名叫internationalization,因为中间有18个字母,又叫i18n。我们平时工作或者开发一些网站时,尤其是国际网站,国际化是必须要做的事情。准备工作首先需要保证配置文件的编码格式是UTF-8,否则可能出现页面乱码的情况。选择File->Settings,搜索File Encodings进行设置。测试使用1、建立不同语言的配置文件。在r...原创 2020-04-06 00:12:41 · 306 阅读 · 0 评论 -
SpringBoot开发单体应用
Web开发探究SpringBoot的最大特点:自动装配。使用SpringBoot的步骤:1、创建一个SpringBoot应用,选择模块、然后等待项目构建完成即可。2、编写一些需要的配置文件。3、专注于编写业务代码。其余东西不需要手动配置。配置相关的类:xxxAutoConfiguration:向容器中自动配置组件。xxxProperties:自动配置类,封装配置文件的内容。静...原创 2020-04-03 12:18:53 · 1041 阅读 · 0 评论 -
SpringBoot操作数据库
SpringData简介对于数据访问层,无论是SQL还是NoSQL,在SpringBoot 底层都是采用SpringData来进行封装的。官网地址:https://spring.io/projects/spring-data使用IDEA构建项目时,我们可以勾选SpringData相关依赖。如上图界面所示,Spring提供了很多工具供我们使用,它封装了大量的模板,在Template En...原创 2020-03-31 00:20:52 · 1747 阅读 · 0 评论 -
SpringBoot入门及原理
SpringBoot的诞生什么是Spring?现代化的java开发主要就是面向Spring开发。Spring是一个开源框架,它由Rod Johnson在2003年创建。它是为了简化企业级开发而创建的。Spring是十分优雅的,这是因为它的创始人是一位音乐学博士,某种意义上说,它是一个含有艺术基因的框架。Spring是如何简化开发的?1、JavaBean代表着一个个要new的对象...原创 2020-03-24 12:45:39 · 228 阅读 · 0 评论 -
深入理解JVM(二)
GC详解GC的作用域GC的作用域如下图所示。关于垃圾回收,只需要记住分代回收算法,即不同的区域使用不同的算法。不同区域的GC频率也不一样:年轻代:GC频繁区域。老年代:GC次数较少。永久代:不会产生GC。一个对象的历程一个对象的历程的如下图所示。JVM在进行GC时,并非每次都是对三个区域进行扫描的,大部分的时候都是对新生代进行GC。GC有两种类型:普通GC...原创 2020-03-18 23:29:28 · 254 阅读 · 0 评论 -
深入理解JVM
JVM的位置JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM的位置如下图所示。JVM运行在操作系统之上,对于不同的操作系统需要运行不同的JVM。因此:Java程序是跨平台的,但JVM不跨平台。JVM的体系架构图JVM的体系架构如下图所示。重点关注...原创 2020-03-18 00:18:21 · 217 阅读 · 0 评论 -
JUC并发编程(三)
常用辅助类CountDownLatchCountDownLatch,是一种减法计数器。CountDownLatch主要有两个方法:await()会阻塞线程,等待计时器归零。countDown()会令计数器减1。例如,创建6个线程,需要等待这6个线程执行完再在主线程中输出“main End”。代码如下:package com.wunian.juc.help;import jav...原创 2020-03-18 00:09:48 · 220 阅读 · 0 评论 -
JUC并发编程(二)
读写锁写锁:也叫独占锁,一次只能被一个线程占有。读锁:也叫共享锁,该锁可以被多个线程占有。ReadWriteLock,即读写锁,正如它的名字一样,它包含了读锁和写锁,一个用于只读操作,一个用于写入操作,我们先来看看JDK文档中对它的说明。创建一个读写锁对象:ReadWriteLock readWriteLock = new ReentrantReadWriteLock();加读锁和...原创 2020-03-07 15:32:17 · 633 阅读 · 0 评论 -
JUC并发编程
JUC是什么?JUC,即java.util.concurrent包的缩写,是java原生的并发包和一些常用的工具类。线程基础知识线程和进程进程:计算机中运行中的程序,如QQ.exe等。线程:进程中执行的具体的任务,如打字、自动保存等。一个进程可以包含多个线程,一个进程至少有一个线程。Java程序至少有两个线程:GC线程和Main线程。并发和并行并发:多个线程操作同一个资源并且交替...原创 2020-03-04 23:39:14 · 270 阅读 · 0 评论