自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Vue项目——Vue开发掘金WebApp(仿掘金App)

这里写自定义目录标题正文介绍效果图完成度交互完成度后续正文介绍该项目是抄袭仿照掘金客户端使用Vue开发的WebApp。里面所有的API均来自官方Android。页面基本上和掘金App差不多,不过由于里面的一些图片本菜使用的是阿里的iconfont,因此会和掘金App上面的图片有点不一样,但是整体的功能和掘金App还是差不多的。该项目源码已经开源在gayhubgithub, 点击可查看源码,...

2020-04-26 18:25:01 2088

原创 Vue源码解读——Vue响应式原理

文章目录序言源码解读从入口开始initDataobserve函数Observerwalk函数defineReactive依赖收集Watcher依赖更新序言Vue是当前最流行的框架之一,现在很多项目都或多或少都会用到Vue。所以了解Vue的响应式原理对我们意义非凡,有利于…我们直接开始吧源码解读从入口开始Vue对数据进行响应式的处理的入口在src/core/instance/state....

2019-07-25 12:21:05 545

原创 react-router和react-router-dom的实现

React Router 是完整的 React 路由解决方案React Router 保持 UI 与 URL 同步。它拥有简单的 API 与强大的功能例如代码缓冲加载、动态路由匹配、以及建立正确的位置过渡处理。今天我们就来大概的看一下这个强大的组件是如何实现的。react-router为了能实现跨平台的路由解决方案,将react-router分成了三个模块:react-router,react...

2019-07-24 10:45:12 869

原创 自己实现一个Promise

序言Promise是ES6提出的异步编程规范。接下来我们一步一步来探究下Promise的实现原理,根据Promise A+规范实现一个我们自己的Promise。Promise的初步实现Promise的简单使用new Promise((resolve, reject) => { resolve('a')}).then(value => { console.log(val...

2019-07-10 18:43:30 563

原创 CSS预处理器——less

介绍Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性,使 CSS 更易维护和扩展。下面我们正式学习以下less使用嵌套对于所有的CSS预处理语言来说,大家最常见到也肯定会用到的特性就是嵌套了。嵌套规则允许在一个选择器中嵌套另一个选择器,这更容易设计出精简的代码,并且样式之间的关系一目了然。如:.parent { width: 100p...

2019-07-06 00:20:23 236

原创 ES6新特性

ES6简介ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。let与constES6新增了let和const命令,它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。即let和const使得es...

2019-06-23 23:30:34 233

原创 系统分析与设计作业3

简答题简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点,从项目特点、风险特征、人力资源利用角度思考瀑布模型:瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动。并且规定了它们自上而下、互相衔接的固定次序。从本质来讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产...

2019-06-16 16:27:57 205

原创 系统分析与设计homework4

一、简答题1. 用例的概念用力是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术。每个用例提供了一个或多个场景,该场景说明了系统是如何和最终用户或其它系统互动,也就是谁可以用系统做什么,从而获得一个明确的业务目标2. 用例和场景的关系?什么是主场景或 happy path?场景(scenario)是参与者和系统之间的一系列特定的活动和交互,也称...

2019-05-27 22:07:34 200

原创 系统设计与分析homework5

一、根据订旅馆建模文档,Asg-RH.pdf:1. 绘制用例图模型(到子用例)给出 make reservation 用例的活动图2、根据课程练习“投递员使用投递箱给收件人快递包裹”的业务场景分别用多泳道图建模三个场景的业务过程场景一x科技公司发明了投递柜,它们自建了投递柜以及远程控制系统。注册的投递员在推广期免费使用投递柜。由于缺乏资源,仅能使用y移动平台向客户发送短信通知。...

2019-05-27 00:37:28 150

原创 ES6类以及继承的实现原理

ES6类的使用及原理ES6新增的Class(类)给我们编程带来了极大方便,ES6 的class可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已, ES6中类实际上也是函数,我们使用typeof去判断类时可以看到其返回的就是function。在ES6中类的实现是基于原型来完成的,下面我们就来看看es6中类的实现...

2019-05-12 21:47:06 4537

原创 实现简单的DOM-Diff算法

实现简单的DOM-Diff算法什么是虚拟DOM虚拟DOM简而言之就是用JS去按照DOM结构来实现DOM的树形结构的对象,当然,由于真实的DOM有很多的属性接口,而我们在这里的虚拟DOM只描述真实DOM 的一部分属性。创建虚拟DOM巧妇难为无米之炊,既然要实现DOM-Diff算法,那么我们肯定需要创建虚拟DOM,并且要知道虚拟DOM如何渲染成真实的DOM,// element.js//...

2019-05-09 18:34:51 625 1

原创 Vue源码解析(一),Vue中DOM的挂载过程

1.从入口开始new Vue()做了什么从入口文件开始,我们来分析一下new Vue()做了哪些工作,Vue实际上是一个类,我们通过new Vue()来创建一个Vue实例。现在来看一下源码,在src/core/instance/index.jsfunction Vue (options) { // 判断是否通过new 创建Vue实例 if (process.env.NODE_ENV...

2019-05-05 12:18:00 3204 2

原创 webpack-dev-server使用proxy跨域cookie问题

如今前后端分离的的开发模式越来越成为主流,前后端分离的开发模式确实给开发带来了诸多便利, 但也带来了一些小问题,比如跨域的问题,因为前后端分开的开发模式,在开发过程中前端项目和后端项目运行在不同的源下,所以跨域问题成了前后端分离开发过程中的主要问题。这几天,我在做一个前端小项目的时候也遇到了跨域问题,由于后台接口调用的是别人的接口,而该接口没有提供跨域访问,所以不得不使用webpack-dev-...

2019-04-25 23:58:01 7821 2

原创 Koa2源码解析

Koa2源码解析Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。被称为基于Node.js的下一代开发平台框架。在这里主要分析了koa2的主要的运行流程以及相关源代码,从一个简单的实例开始:const Koa = require('koa')const app = new Koa...

2019-04-25 10:27:48 309

原创 系统分析与设计03

1. 简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点瀑布模型瀑布模型的开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。瀑布模型有以下优点:为项目提供了按阶段划分...

2019-04-21 19:50:16 143

原创 《系统分析与设计》第二周作业

简答题用简短的语言给出对分析、设计的理解。Analysis is the process of breaking a complex topic or substance into smaller parts in order to gain a better understanding of it. --wiki分析是将一个复杂的主题或者事物分解成更小的部分以便更好的理解的过程分...

2019-04-14 23:18:23 139

原创 TCP的连接与断开(三次握手与四次挥手)

TCP报文结构在理解TCP的断开与连接过程之前,最好先了解一下TCP的报文结构,这样更有利于理解TCP的断开与连接过程TCP报文结构如下:在这里我们暂时只需重点关注:SYN、序号(sequence number)、确认号(Acknowledgment number)、FINTCP连接过程——三次握手接下来,我们来观察TCP是如何建立一条连接的。假设现在有一台主机(客户端)向另一台主...

2019-03-19 23:37:49 1135

原创 系统分析与设计第一次作业

软件工程的定义软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科,将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件解释导致 software crisis 本质原因、表现,述说克服软件危机的方法产生软件危机的本质原因:软件危机是由计算机能力的迅速增加以及无法解决的问题的复杂性造成的。随着软件复杂性的增加,因为现有方法不足,出...

2019-03-14 23:10:28 213

原创 SpringBoot异步任务与定时任务

异步任务使用步骤启动类里面使用@EnableAsync注解开启异步任务@SpringBootApplication@EnableAsync // 开启异步功能public class SpringBootTaskApplication { public static void main(String[] args) { ConfigurableApplica...

2019-03-02 12:56:39 723

原创 SpringBoot整合Spring Security

SpringSecurity原理在SpringBoot中一旦启用了SpringSecurity, Spring就会在IOC容器自动注入一个类型为FilterChainProxy的bean对象(实际上是Filter接口的一个实现类),该bean对象存在一个拦截器列表(List),列 上存在用户验证的拦截器、跨站点请求伪造等拦截器 ,这样它就可以提供多种拦截功能。使用WebSecurityConf...

2019-03-01 23:52:23 263

原创 SpringBoot缓存

JSR107缓存规范Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Entry和 Expiry。CachingProvider定义了创建、配置、获取、管理和控制多个CacheManager。一个应用可以在运行期访问多个CachingProvider。CacheManager定义了创建、配置、获取、管理和控制多个唯...

2019-02-27 13:10:56 151

原创 SpringBoot整合Redis

SpringBoot整合Redis引入Spring整合Redis的jar包spring-boot-starter-data-redis默认会使用Lettuce来操作Redis,而一般情况下开发中会使用Jedis,所以在代码中将Lettuce排除,并引入Jedis的依赖<dependency> <groupId>org.springframework.boo...

2019-02-27 00:35:11 526

原创 java8新特性——Lambda表达式

概述Java8最值得学习的特性就是Lambda表达式和Stream API,java的lambda表达式相当于python中的lambda表达式或者ES6中的箭头函数。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑,更利于阅读。Lambda表达式可以使java拥有函数式编程Lambda表达式语法Lambda表达...

2019-02-25 21:18:56 238

原创 SpringBoot整合Mybatis和SpringData JPA

SpringBoot整合MyBatis1. 新建项目使用IDEA和STS均可新建一个SpringBoot项目2. 导入相关依赖导入mysql驱动包和MMyBatis-Spring-Boot-Starter<dependency> <groupId>mysql</groupId> <artifactId>mysql-conne...

2019-02-24 22:14:29 6464

原创 Spring AOP编程注解版(SpringBoot)

AOP的概念AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子。具体链接: https://www.cnblogs.com/Wolfmanlq/p/6036019.htmlAOP术语连接点(joint point):对于具体拦截的对象,因为Spring只支持对方法的拦截,所以被...

2019-02-24 11:55:38 174

原创 Nginx+Tomcat搭建高性能负载均衡集群(单机版&多机版)

目标使用nginx和tomcat实现高性能负载均衡集群前提首先确保系统已经安装好nginx步骤(单机版)安装tomcat(2个)tomcat解压即可使用配置环境变量修改 /etc/profile文件, 添加如下内容export CATALINA_BASE=/path/to/tomcat # tomcat的安装路径export CATALINA_HOME=/path/to/t...

2019-01-25 23:36:22 705

原创 Lombok基础使用

文章目录Lombok是什么在IDEA中使用Lombok安装插件引入依赖使用Lombok常用注解Lombok是什么Lombok是java中的一个库,它可以帮助我们减少重复代码的编写,比如getter/setter/toString,我们只需使用一个注解就可以让类拥有getter/setter等方法,提高开发效率官网介绍Project Lombok is a java library t...

2019-01-23 22:34:11 149

原创 Capacitated Facility Location Problem

题目Suppose there are n facilities and m customers. We wishto choose:(1) which of the n facilities to open(2) the assignment of customers to facilitiesThe objective is to minimize the sum of the op...

2018-12-21 22:59:02 217

原创 SpringCloud学习三-Ribbon负载均衡

概述Ribbon是什么Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后...

2018-12-20 21:37:01 130

原创 SpringCloud学习二-Eureka服务注册与发现

文章目录是什么原理讲解Eureka的基本架构三大角色构建步骤新建服务注册中心将服务注册进服务中心注册微服务信息完善主机名称:服务名称修改访问信息有IP信息提示微服务info内容详细信息Eureka自我保护Eureka集群配置是什么Eureka是Netflix的一个子模块,也是核心模块之一。Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。服务注册与发现对...

2018-12-20 16:06:41 148

原创 SpringCloud学习一-Restful服务搭建

文章目录1. 微服务概述与SpringCloud1. 微服务和为服务架构2. SpringCloud是什么官网说明SpringCloud和SpringBoot是什么关系2. 新建服务的提供消费者1. IDEA下新建一个聚合工程microservicecloud2. 新建microservercloud-api子模块3. 新建微服务提供者microservicecloud-provider-dept...

2018-12-20 15:50:44 1866

原创 leetcode打卡之 Binary Tree Zigzag Level Order Traversal

题目Given a binary tree, return the zigzag level order traversal of its nodes’ values. (ie, from left to right, then right to left for the next level and alternate between).题目大意就是:给定一颗二叉树,第一层从左向右遍历,第...

2018-12-09 20:52:18 129

原创 LeetCode 打卡之Integer to Roman

题目题目太长了:请看链接: Integer To Roman分析有一个简单粗暴的方法就是把0~9, 10 ~ 90, 100 ~ 900, 1000 ~ 3000的组合用数组存起来,然后从里面取就行了代码 string intToRoman(int num) { string M[] = {"", "M", "MM", "MMM"}; string C[...

2018-11-27 00:35:42 70

原创 LeetCode打卡之 Edit Distance

题目Given two words word1 and word2, find the minimum number of operations required to convert word1 to word2.You have the following 3 operations permitted on a word:Insert a characterDelete a char...

2018-11-19 10:33:32 125

原创 LeetCode打卡之Minimum Path Sum

题目Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.Note: You can only move either down or right at...

2018-11-08 20:02:45 79

原创 Spring注解开发之自动装配

自动装配:Spring利用依赖注入(DI),完成对IOC容器中中各个组件的依赖关系赋值;自动装配-@Autowired&@Qualifier&@Primary使用@Autowire注解可以为SpringBean对象自动注入对象BookDao:@Repositorypublic class BookDao { private String lable = "1";...

2018-11-01 20:43:17 157

原创 LeetCode打卡之Unique Paths II

题目A robot is located at the top-left corner of a m x n grid (marked ‘Start’ in the diagram below).The robot can only move either down or right at any point in time. The robot is trying to reach the ...

2018-11-01 20:04:24 81

原创 leetcode打卡 Longest Valid Parentheses

题目Given a string containing just the characters'(' and')', find the length of the longest valid (well-formed) parentheses substring.大意就是:给定一个只包含 '('和 ')' 的字符串,找出最长的包含有效括号的子串的长度。示例1:Input: "(()"Ou...

2018-10-29 12:40:09 115

原创 LeetCode 打卡 SameTree

题目Given two binary trees, write a function to check if they are the same or not.Two binary trees are considered the same if they are structurally identical and the nodes have the same value.大意就是判断给...

2018-10-21 19:13:16 91

原创 Spring注解开发之生命周期函数

Spring创建和销毁容器对象时会调用对象的创建和销毁函数,我们可以在这些生命周期函数中加入一些业务处理,去完成一些特定的功能生命周期-@Bean指定初始化和销毁方法.我们可以在@Bean组件中指定组件的init-method函数和destroy-method函数,在init-method和destroy-method函数中指定我们的初始化逻辑和销毁逻辑public class Car {...

2018-10-11 23:52:34 727

空空如也

空空如也

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

TA关注的人

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