自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CSS笔记-基础篇-css从入门到精通

出现的原因历史1990年,Tim Berners-Lee和Robert Cailliau共同发明了Web。1994年,Web真正走出实验室。从HTML被发明开始,样式就以各种形式存在。不同的浏览器结合它们各自的样式语言为用户提供页面效果的控制。最初的HTML只包含很少的显示属性。随着HTML的成长,为了满足页面设计者的要求,HTML添加了很多显示功能。但是随着这些功能的增加,HTML变的越来越杂乱,而且HTML页面也越来越臃肿。于是CSS便诞生了。1994年哈坤·利提出了CSS的最初建议。而当时

2021-10-12 14:59:03 954

原创 CSS笔记-基础篇-css入门(一)

1.为什么需要CSS前一篇所讲的html标签可以认为是在浏览器窗口中从左到右、从上到下,按照标签的特性一次排列,就像堆积木一样,而标签的种类可以分为块级元素和行内块元素,它们的区别在于块级元素独占一行,行内块可以在一行内排列多个 <div style="background: pink;">块级元素1</div> <div style="background: skyblue;">块级元素2</div> <span style="back

2021-09-12 23:28:36 127

原创 HTML笔记-基础篇-html入门

1.网页的概念网页的来源网页的本质类似于txt文档一样,我们可以给这里面放入文字、图片和链接等元素。如果没有浏览器那么我们在文档中写什么内容就会看到什么内容,和txt文档一样,但是如果通过浏览器打开以后它就是网页了可以看到浏览器中展示的文档内容和普通的文档打开并不一样,这是因为浏览器会解析文档中的内容,对这些内容进行渲染因此网页就相当于是浏览器解析文档后显示出来的内容浏览器既然是对文档结构进行解析,那么解析方法就会有多种,解析的方式不同,展示的内容也会有所差别,这样就形成了同一份文档被解析

2021-08-23 11:11:54 107

原创 vue笔记-VueRouter篇-路由的概念

1.前端路由和后端路由的区别首先要搞懂路由的概念,所谓的路由指的是根据不同的url执行相应的操作,比如点击百度新闻时,当点击国内按钮,则对应的地址为http://news.baidu.com/guonei,点击国际按钮时,对应的地址为http://news.baidu.com/guoji,它只是将guonei改为了guoji,当后台接收到该url时,会进行判断,如果最后边的字符串为guonei,则将此请求发送给处理国内逻辑的代码,如果为guoji,则将请求发给处理国际逻辑的代码,而负责转发请求的操作就是路

2021-08-01 17:28:27 300

原创 vue笔记-VueCLI篇-使用脚手架创建项目

1.脚手架的作用在一个项目中会存在许多的配置,比如是否需要eslint、单元测试、babel功能等,如果这些配置全部都手动编写的话会很浪费时间,此时就需要有工具可以帮我们自动的生成这些配置,我们只需要在它生成好的目录结构中编写业务代码即可每种框架基本都会存在对应的脚手架工具,vue的脚手架工具即为VueCLI,它的官网为https://cli.vuejs.org/zh/2.安装脚手架首先使用npm安装对应的包npm install -g @vue/cli安装完成后它会给命令行中添加vue命令,

2021-07-17 19:35:46 153

原创 vue笔记-webpack篇-webpack基本使用

1.模块化开发概念没有模块化的时候多人开发是这样的<script> <!--张三的代码--> let zp1 = 'zp1' console.log(zp1)</script><script> <!--李四的代码--> let lp1 = 'lp1' console.log(lp1)</script>如果能保证多个人中的代码不会出现相同名称的话,不使用模块化也是没问题的,但是如果多个人的代码中存

2021-07-11 18:03:56 90

原创 vue笔记-基础篇-插槽

1.插槽的定义现在通过v-mode的方式可以动态的给组件中传值,既然值可以传递,那么可以动态的给组件中传递结构吗,这样可以更好的对组件进行抽象, 而这就是插槽所做的工作插槽是用来动态的向组件中传递组织结构,通过插槽可以将指定的内容直接替换为其他内容,相当于在定义组件的时候预留了一些位置,这些位置可供组件的使用者动态的替换2.使用方式首先需要在定义组件的时候通过slot属性提前预留好插槽,此位置的内容将会被动态替换 let comp = { template: ` <di

2021-07-10 23:12:36 84 2

原创 vue笔记-基础篇-组件

1.组件化思想页面上会存在许多结构类似,只是数据不同的标签组合,比如上中下布局、导航、表格的样式等等,这些只有数据不同,结构大体上基本相似的元素组合在vue中就被称为组件之所以要有组件是因为这些结构类似的元素组合会在页面上出现多次,如果每次都写一大堆元素对于后期的管理不友好,如果使用组件则像单个标签一样方便,能够极大简化代码的开发组件同时还有助于编写出结构清晰的页面像图中可以对整个页面进行高度抽象,全部封装为一个个组件,在开发时可以最大化的复用组件,减少代码量2.组件的分类与使用组件分为全局组

2021-07-10 21:48:20 567

原创 vue笔记-基础篇-v-_指令的语法

1.计算属性计算属性是可以配置在options中的,因此先来看下官网对它的介绍通过文档可知它的结构为computed: {},其中对象中可以是key:function或者是key:{get:function,set:function}它的this执向的是vue实例而不是函数内部,因此在此函数中访问vue中的属性可以直接通过this.属性的方式访问它的结果会被缓存起来总结一下,计算属性的作用和普通属性一样,只不过比普通属性多了一些功能,能使用普通属性的地方就可以通过计算属性替换举个例子,比如在插

2021-07-07 10:19:14 406

原创 vue笔记-基础篇-初识vue

1.Vue概述首先,vue是一个javascript框架,它的中文官方网站为https://cn.vuejs.org/,读音类似于view,特点是渐进式、简单易用、灵活、体积小在官网首页已经说明概括了使用vue的好处2.安装vue有多种安装方式,本质都是下载vue源码打包后的js文件,后期需要工程化的时候可以使用npm的方式安装,前期学习只需要直接下载js文件,并在html中引入即可使用vue实例。直接下载js文件有两种类型,一种为生产版本、一种为开发版本,具体的区别可以参考官方文档。vue的

2021-07-03 12:00:51 275

原创 MySql笔记-基础篇-编码、解码与乱码

1.编码、解码与乱码的由来编码计算机系统的本质是一堆的0和1组成的,计算机也只认识0和1。在计算机内部,0代表开关断开,即低电压状态,1代表开关闭合,即高电压状态, 通过高低电压的变化表示01的变化。计算机只能识别0和1,但是人却可以识别非常多的信息,那么如何使用计算机来帮助人类工作呢?人们给计算机中的状态赋予了特定的含义,比如1和0代表两种状态,那么两位的1和0就可以代表4中状态,以此类推,假如我想表示东南西北,那么在计算机中可以使用00表示东、01表示南、10表示西,11表示北。经过这样规定以

2021-05-26 21:54:44 173

原创 MySql笔记-基础篇-配置参数

1.参数的种类无论是mysql还是其他的软件,都会有各种参数,通过参数控制程序的行为。参数的种类大致分为配置文件中的配置项,程序中默认的参数,用于启动软件时指定的参数。mysql中支持使用配置文件也支持命令行中指定更支持在程序访问过程中配置2.命令行命令行中的参数可以使用长形式或短形式,用来指定一些临时配置,比如第一次启动客户端时指定host当启动第二个客户端时必须重新指定host参数才可生效3.配置文件在配置文件中[]代表了一个组,每个组指定了不同的配置项,各个可执行文件通过读取

2021-05-19 22:04:12 63

原创 MySql笔记-基础篇-概述

1.mysql是什么首先mysql是一个数据库,而数据库是用来存储数据的,因此mysql最本质的功能就是负责数据存储计算机中最常用来存储数据的设备是硬盘,mysql通过操作系统提供的接口将数据保存在硬盘上如果只需要存储数据,那么使用纯文本不是更好吗,为什么还需要特意使用mysql。这是因为mysql不仅做了存储数据的操作,它还添加了很多辅助的功能mysql是典型的C/S架构,默认会启动一个后台进程,监听3306端口,负责提供数据的存取功能在官网下载mysql的zip包,解压之后的目录结构是这样的

2021-05-17 22:04:53 123

原创 SpringBoot笔记-web篇-所有的请求响应类型及原理

本篇研究一下SpringBoot是怎么处理业务方法返回的数据1.所有支持的返回类型和参数解析类似,SpringBoot在真正执行方法之前会将Spring容器中默认注册的返回值处理器获取到,由图可以看到共有15种返回值处理器,由于请求方法所在的类由@RestController标记,因此对应的解析类为RequestResponseBodyMethodProcessor当方法执行完毕获取到返回值后,就会调用设置好的返回值处理器处理返回的结果2.选择相应处理器的过程该过程是在handleReturn

2021-04-24 21:42:21 334

原创 SpringBoot笔记-web篇-所有的请求参数注解及原理

本次来研究一下前端传递的请求是怎么封装到后台中的,根据后台请求方法的参数不同,对应的封装逻辑也不同,本次以@RequestBody为例开始研究1.后台接收参数的方式我们希望将前端传递的参数封装到TestObj类的name和age字段中,在后续使用中直接使用参数传递的对象即可@RequestMapping("/hello")public String hello(@RequestBody TestObj obj) { return "hello world " + obj.getName()

2021-04-21 23:21:00 288

原创 SpringBoot笔记-web篇-查找请求业务方法的过程

通过前文可知,getHandler方法会获取到业务代码所在的实际类,那么这个方法到底是怎么执行的呢1.返回结果从图中可以看到方法执行完成后并不是直接返回了对应类的对象,而是返回了一个HandlerExecutionChain查看其结构可以发现,它是由handler对象和拦截器集合对象组成2.获取handler该方法内部很简单,就是不断的遍历handlerMappings集合,并调用对应对象的getHandler方法,如果不为空则会返回在getHandler内部经过一系列跳转后会调用getH

2021-04-19 22:26:13 201

原创 SpringBoot笔记-web篇-一次web请求的大体流程

一个http请求从客户端发起,经服务器处理后返回结果给客户端,本次聚焦于服务器处理过程,搞清楚SpringMvc处理请求的整个过程。1.最开始的地方:Servlet服务器接收到请求后由各种容器处理,如tomcat,这些容器在处理过程中会调用Servlet接口中的方法,由文档可知,在创建该类时会调用init方法,处理请求时会调用service方法,销毁时会调用destroy方法。创建Servlet实例、调用生命周期方法的都是类似tomcat容器在处理请求过程中所做的事情,因此首先需要搞清楚的就是init

2021-04-18 23:26:07 392

原创 SpringBoot笔记-基础篇-yaml文件编写格式

SpringBoot支持两种配置文件格式:properties和yaml,因为yaml文件格式的易读性,目前很多项目的配置文件都采用了此种格式,它的后缀可以是yaml或yml。1.目标既然是将它作为配置文件使用,那么我们只需要掌握经常使用到的配置格式的写法即可,没必要必须要研究透它的原理才开始使用。yaml是一种格式,而解析这种格式的项目有很多,不同的语言有不同的项目负责解析,在java中主要由snakeyaml负责配置文件的解析yaml的基本配置格式为【键】【冒号】【空格】【值】,例如 name

2021-04-17 22:30:55 249

原创 SpringBoot笔记-基础篇-自动配置原理

在hello world程序中可以看到,因为有@SpringBootApplication注解所以我们什么都不需要写就可以拥有web开发能力,那么这背后的原理是什么,SpringBoot的自动配置功能如何实现的?@SpringBootApplicationpublic class SpringbootdemoApplication { public static void main(String[] args) { SpringApplication.run(Springboo

2021-04-15 21:42:01 179

原创 SpringBoot笔记-基础篇-比较重要的概念

体验过hello world程序后,可以感觉到SpringBoot的强大之处,在正式学习SpringBoot为什么这么厉害前,首先需要掌握一些SpringBoot中的基本概念,打开官方文档,进入Using Spring Boot章节:1.需要用到的jar包版本是如何确定的在hello world程序中,我们引入了web功能,而该功能会需要很多的jar包虽然我们没有明确的指定依赖包的版本,但是SpringBoot却可以引入相关的依赖,其原理是SpringBoot会为它每个版本设置默认的兼容依赖包的版

2021-04-13 22:50:18 162

原创 SpringBoot笔记-基础篇-第一个SpringBoot程序

1.为什么需要SpringBootSpringBoot从字面意思上理解就是Spring的启动器,以前在使用Spring搭建项目的时候,需要配置特别多的东西,比如事务、日志、mvc等等,这就导致每次创建项目的时候都需要写很多的配置,无论这种配置是代码方式还是xml文件方式。对于以前不需要频繁创建项目的场景下勉强可以接受,但是随着分布式与微服务的发展,现在需要更快的创建项目,使用Spring就不太方便了。Spring意识到了这个问题,因此提出了SpringBoot项目,这个项目旨在于快速启动所有Sprin

2021-04-13 21:47:03 75

原创 适配器模式

1.设计模式六个原则单一职责里式替换依赖倒置接口隔离迪米特法则开闭原则2.适配器模式的概念假设现在你手里有个接口A:public interface A{ void printA();}张三手里有个接口B和实现类BB:public interface B{ void printB();}public class BB implements B{ public void printB(){ //out BB }}现在你想使用张三的接口B中

2021-02-22 22:48:32 46

原创 2021

新年新气象

2021-02-21 18:30:02 72

翻译 Spring注解系列-核心注解

1.概述我们可以通过org.springframework.beans.factory.annotation 和org.springframework.context.annotation 包中的注解利用Spring DI引擎的能力。我们将这些包中的注解称为Spring核心注解,在本教程中将会复习它们。2.DI有关的注解2.1 @Autowired我们可以使用@Autowired注解标注一个Spring将要解析和注入的依赖,我们可以在构造器、setter方法或字段注入上使用此注解。构造器注入:c

2021-01-07 22:11:21 407

空空如也

空空如也

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

TA关注的人

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