4 自由飛祥

尚未进行身份认证

我要认证

初来乍到小菜鸟

等级
TA的排名 20w+

Element-UI+VUE 实现按钮权限管理

前端朋友遇到项目中的一个问题,就是需要根据后台接口返回的数据,来判断当前用户的操作权限。比如有删除权限,就显示对应的删除按钮,没有这个权限,就置为不可点击状态,或者就是直接隐藏。作为一个后台开发工作者来讲,对于前端的一个技术,涉猎并不是很深,只能通过官方文档或者百度先简单了解下。经过一系列的调查 得知,想实现这么一个功能,比较简单的就是使用VUE中的状态管理(有没有其他更好的方法,暂时还不知道...

2019-12-10 10:05:44

Redis经典8问

经历几年开发经验之后,再去面试,缓存问题是不可避免的,现在最常见的缓存就应该是Redis了,下面是在面试中最常见的Redis的8个问题。一、为什么要使用 Redis ?主要可以从两个方面来考虑:性能和并发1、性能:如果我们在项目中碰到需要执行耗时特别久,且结果不频繁变动的SQL,就特别合适将查询结果放入到缓存中,以便下次查询的时候能够快速的相应;2、并发:在大并发的情况下,所有的请...

2019-10-22 16:11:27

IDEA 中导入Eclipse 的 maven 项目,及 IDEA 将SpringBoot 打成 jar 包

背景:本人使用MacBook Air 做开发,内存比较小,只有4G。开始用Eclipse的时候还是非常流畅的,但随着时间的流逝 Eclipse越来越卡,代码有变动的情况下,每次保存都需要十秒朝上的事件,对于一名程序员来讲,真的是太浪费时间。早就听说IDEA 非常好用,所以这次就来试试怎么样。版本:由于第一次使用,所以直接就下载了最新的版本,也是为了了解IDEA相对于Eclipse的优势在哪里。...

2019-09-22 17:53:18

观察者模式Observer Pattern

观察者模式定义了对象之间的一对多依赖,让多个观察者对象同时监听一个主体,当主体对象发生变化时,它的所有观察者都会收到通知。观察者模式也叫发布订阅模式,主要用于在关联行为之间建立一套触发机制的场景。下面通过我们平时最常用的键盘鼠标相关的监听事件作为例子,来熟悉观察者模式。一、首先创建Event类public class Event {// 事件源,事件是由谁发起的,保存起来 ...

2019-09-15 17:00:06

装饰器模式 Decorator Pattern

装饰者模式(Decorator Pattern)是指在不改变元祐对象的基础上将功能附加到对象上,提供了比继承更有弹性的方案(即扩展原有对象的功能),属于结构型模式。装饰者模式适用于以下场景:扩展一个类的功能或给一个类添加附加的职责。 动态的给一个对象添加功能,这些功能可以再动态地撤销。以日常生活中一个小例子来讲解装饰者模式的应用。如:我们在平时的上班的早上,很多人可能都是起的比较晚,走在路...

2019-09-08 16:45:26

Tomcat优化

工作几年,后台服务器用的一直用的都是tomcat,虽然其他的服务器(如 jboss)在开发中使用过,但是生产环境中都是用的tomcat,而面试过程中也是tomcat居多,由此来总结下tomcat服务器的优化方法。一、内存优化在开发过程中基本都是使用默认的配置,而在一些项目中经常会遇到内存溢出的错误,这种情况可能是你在循环中创建对象等占据大量的内存,或是其他代码不规范导致的。但是如果代码一切...

2019-09-07 18:21:13

MySQL事务隔离级别

今天回顾一下MySQL的事务隔离级别,MySQL的事务隔离级别分为以下四种:read uncommitted : 读未提交,即脏读。一个事务可以读取到另一个事务修改并未提交的数据; read committed : 读已提交,可以解决脏读。一个事务修改并提交之后才能被另一个事务读取(不可重复读); repeatable read : 可重复读。在一个事务的两次查询中,被另一个事务修改了数据...

2019-09-05 09:38:12

二叉树

一、定义二叉树是 n 个节点的有限集合,该集合或者为空集(空二叉树),或者由一个根节点和两棵互不相交的、分被称为根节点的左子树和右子树组成。下图为一棵普通的二叉树:二、二叉树的特点由二叉树定义以及图示分析得出二叉树有以下特点:每个节点最多有两棵子树,所以二叉树中不存在度大于2的节点。 左子树和右子树是有顺序的,次序不能任意颠倒。 即使树中某节点只有一棵树,也要区分它是左子树...

2019-09-04 17:16:02

Adapter Pattern 适配器模式

适配器模式将某个类的接口转化成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容问题,约摸有一种亡羊补牢的感觉。主要分三类:类的适配器模式、对象的适配器模式、接口的适配器模式。一、类的适配器模式1、创建原始类public class Source { public void method1(){ System.out.println("Sourc...

2019-09-04 11:06:40

VUE脚手架搭建+Element 组件库table

由于目前vue的使用率挺高的,所以就基于前后端分离的思想搭建一个vue脚手架项目,并实现一个简单的表格功能。其中包含的技术点有vue脚手架的搭建、父子组件引用、父子组件之间的传参以及整合Element UI 组件库等。一、vue 脚手架搭建先安装 node [ 脚手架项目需要用到 node 中的 npm ],不会的可以进行百度,此处不做讲解。 安装全局 vue-cli ,在命令行执行以下...

2019-09-01 12:29:08

Nginx 反向代理

Nginx 是一个高性能的http 和反向代理服务器,用于把客户端请求分发给后台的web 容器。下载安装的话,可以到官网去下载安装。一、配置文件#工作进程,一般设置为CPU的核数woker_processes 2#在高并发情况下,通过设置cpu粘性来降低由于多CPU核切换造成的寄存器等现场重建带来的性能损耗。worker_cpu_affinity 0001 0010 0100 1...

2019-08-27 11:05:50

冒泡排序

今天再来回顾一下冒泡排序。冒泡排序(Bubble Sort) 是一中最基本的算法,也应该是最熟悉和最常见的算法了。何为冒泡?就像是我们在刚刚打开一瓶雪碧的时候(尤其是你摇晃几下之后再打开),里面有非常的气泡咕噜咕噜地冒出来,总体来说是一个一个的冒出来的,所以我们熟知的冒泡排序可以简单的理解为一个一个的排列。而冒泡排序就是按照一定的规则进行排序的(由小到大或者由大到小),先用一个例子来解释...

2019-08-26 16:46:38

synchronized 关键字

在 JVM 中,对象在内存中的布局分为三块区域:对象头、实例数据、和对齐填充。Java对象头 是实现 synchronized 对象锁的基础。synchronized 的对象锁,其指针指向的是一个 monitor(监视器) 对象的起始地址,每一个对象都一个 monitor 。 其中 monitor 可以与对象一起创建、销毁,或者当线程试图获取对象时自动生成。monitor 是由 Objec...

2019-08-26 10:10:42

Template Method Pattern 模版方法模式

模版方法模式又称为模版模式,是指定义了一个算法的骨架,并允许子类为一个或者多个步骤提供实现。模版模式使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤,属于行为性设计模式。模版模式适应于以下场景:一次性实现一个算法的不变部分,并将可变的行为交给子类来实现。 个子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码重复。我们的日常生活中,此类的应用场景非常多,比如办理...

2019-08-24 11:44:27

码云仓库使用说明

最近有朋友公司使用码云作代码仓库,因为本人一直都是在使用SVN作为版本控制工具,用起来也习惯了,对于码云却是不怎么了解。由于朋友的求助,所以就研究了下,在此记录基本的用法。由于本人对码云没有什么研究,能否像SVN一样作为版本的控制我也是不知道的,所以一下实例只用于拉取和上传。使用码云 我这边以命令为例(有没有像SVN一样的界面,我还没有研究),如果是 Mac 可以直接使用,如果是 Window...

2019-08-23 16:53:14

RESTful规范

RESTful 是一种架构的规范与约束、原则,符合这种规范的架构就是 RESTful 架构。一、动词+宾语 结构RESTful 的核心思想就是客户端发出的数据操作指令都是“动词+宾语”的结构。比如 GET /articles 这个命令,GET 是动词,articles 是宾语。动词通常就是五种HTTP方法,对应CRUD操作。 GET:读取(read) POST:新建(c...

2019-08-22 17:32:10

Facade Pattern外观模式

外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。举个例子,比如我们最习以为常吃饭,如果是自己做的话,那么需要经历买菜、洗菜、切菜、炒菜、吃、善后工作等,这几个顺序是肯定不能乱的,而且缺一不可。刚上了一天的班想吃个饭还要这么麻烦,想想就累。那么怎么解决呢?简单的做法...

2019-08-22 16:25:22

简述一条SQL是如何执行的

在我们平时的开发之中,SQL 是避免不了的,随着工作年限的增加熟练度也是成正比的,但是一条SQL是怎么执行的却又可能还不怎么清楚。以MySQL为例大致可以分为七步:一、查询缓存当我们运行一条SQL语句的时候,首先会查询缓存中是否有数据(查询条件与上次完全一致),如果缓存中已经有了上次查询的数据就直接把缓存中的数据返回「8.0 取消了缓存机制」。如果不想让我们查询的数据存储到缓存的话,可...

2019-08-22 15:29:07

反射相关知识梳理

在平时的工作当中,反射用的并不是很多,但在各个框架中却都能见到它的身影。一、通过反射获取类的方式// 1、通过类名直接获取Class c1 = Student.class;// 2、通过对象引用获取Class c2 = stu.getClass();// 3、通过权限定名获取Class c3 = Class.forName("com.xiang.Student");// 前提...

2019-08-21 15:40:22

TreeSet源码解析

TreeSet 的实现方式与HashSet 的实现方式非常类似,一如既往的先来一波源码,有助于理解:public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, java.io.Serializable { /** * The b...

2019-08-20 15:44:29

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。