精华内容
下载资源
问答
  • 79、Vue的优点缺点

    2021-06-22 11:18:54
    1)vue两大特点:响应式编程、组件化。 2)vue的优势: 轻量级框架(压索之后20KB大小)、简单易学、双向数据绑定、组件化、数据和结构的分离、虚拟DOM、运行速度快。 vue是单页面应用,使页面局部刷新,不用每次...

    1、Vue的特点和优势

    1)vue两大特点响应式编程、组件化

    2)vue的优势:

    1. 轻量级框架(压索之后20KB大小)、简单易学、双向数据绑定、组件化、数据和结构的分离、虚拟DOM、运行速度快。
    2. vue是单页面应用,使页面局部刷新,不用每次跳转页面都要请求所有数据和dom,这样大大加快了访问速度和提升用户体验。而且他的第三方ui库很多节省开发时间。

    2)补充:

    所谓组件化,就是把页面拆分成多个组件,每个组件依赖的 CSS、JS、模板、图片等资源放在一起开发和维护。 因为组件是资源独立的,所以组件在系统内部可复用组件和组件之间可以嵌套,如果项目比较复杂,可以极大简化代码量,并且对后期的需求变更和维护也更加友好。

    image.png

    2、Vue的缺点

    1. VUE不支持IE8
    2. Vue 不缺入门教程,可是很缺乏高阶教程与文档。同样的还有书籍。
    3. 可扩展性稍差
    4. 生态环境差不如angular和react

     

    展开全文
  • 4.2.1 优点缺点 27 4.3 接口功能 28 4.4 概念性接口的规约 28 4.5 系统调用 28 4.6 网络通信的两种基本方法 29 4.7 LINIX中提供的基本I/O功能 29 4.8 将Linux I/O用于TCP/IP 30 4.9 小结 31 深入研究 31 ...
  • vue

    2020-09-24 20:45:52
    1.什么是vue: 是第三方开发的基于MVVM设计模式的渐进式的纯前端js框架 ...vue框架:第三方开发的基于响应式编程方式的程序(优点:从根本上简化了开发步骤,缺点过于精简). 3.MVVM设计模式:将前端内容划分为3部分

    1.什么是vue

    是第三方开发的基于MVVM设计模式的渐进式的纯前端js框架

    2.原生DOM vs jQuery函数库 vs框架

    • 原生DOM:浏览器自带的操作网页内容的唯一途径(优点:万能,缺点繁琐)
    • jQuery函数库:第三方开发的基于DOM实现的操作网页内容的简化版函数(优点:简单,缺点:仅仅是对DOM的每一步操作进行的简化,并没有从根本上减少开发步骤)
    • vue框架:第三方开发的基于响应式编程方式的程序(优点:从根本上简化了开发步骤,缺点过于精简).

    3.MVVM设计模式:将前端内容划分为3部分

    • (1).界面(view):包括HTML+CSS且HTML是增强版的(支持变量{{n}},支持分支和循环).
    • (2). 数据模型(Mdel):是专门保存页面所需的变量和函数的对象(比如: var data={n:1}; var
      methods={add(){…},minus(){…}})
    • (3).视图模型(ViewModel):自动将data中的变量和methods中的函数送到界面中指定元素上,并自动保持页面与内存中数据同步的特殊对象

    4.Vue的绑定原理(vue是如何实现MVVM设计模式):访问器属性+虚拟DOM树

    • 创建Vue类型的对象
    • 第一件事:将模型对象的内容包裹进Vue类型的对象中托管,将原data隐藏,并为data中每个变量定义访问其属性,访问器属性直接隶属于new Vue(),访问器属性是用来实时监控每个变量的变化。然后打散引入的methods,,methods中的所有方法就直接隶属于new Vue(),从而methods中的方法和data中变量的访问器属性就是平级的关系.故对象中平级的方法想使用平级的访问器属性,就加this.
    • 第二件事:创建虚拟DOM树,并渲染页面.当在new Vue()中任何情况下修改了变量其实修改的是访问器属性,然后会触发set(),自动执行set中的通知函数,把通知发给虚拟DOM树,告知虚拟DOM树哪个变量的值发生了变化,虚拟DOM树会遍历自己内部的元素,找到受本次变化影响的元素,用已经封装好的DOM操做只更新新页面中受影响的元素.

    5.虚拟DOM树:

    • 在newVue()创建完对象后,自动扫描el:"#app"所指向的页面区域,在扫描过程中找出可能发生变化的元素后,仅保存这些可能发生变化的元素的简化版DOM树就是虚拟DOM树.
    • 优点:
    • 内容少:仅包含可能发生变化的元素.
    • 遍历快:可快速找到受影响的元素
    • 渲染效率高:只更新受影响的元素,不受影响的元素保持不变.
    • 已经封装了DOM增删改查操作,避免大量重复的代码.

    6.绑定语法

    • <元素>{{自定义变量名}}</元素>
    • {{}}中可放:变量,运算,三目,有返回值的函数调用,创建对象,访问数组元素,不能放程序结构(分支和循环)以及没有返回值的函数调用
    • {{}}只支持元素内容变化,不支持属性变化,无法实现程序结构.

    7.指令
    (1).v-bind元素的属性值随变量自动变化

    • <元素 :属性名=“js变量或表达式”>(:前的v-bind可省略)

    (2).v-show控制一个元素的显示与隐藏

    • <元素 v-show=“判断条件” >
    • 若判断条件为true时,该元素原样显示
    • 若判断条件为false时,自动为当前元素添加display:none属性,该元素隐藏.

    (3).v-if v-else控制两个元素二选一显示与隐藏

    • <元素1 v-if=“判断条件”>
    • <元素2 v-else>
    • 当new Vue()扫描到v-if时,先执行判断条件,若v-if的条件为true,则显示v-if所在的元素,自动删除v-else第二个元素.若v-if后的条件为false,则删除v-if所造元素,保留v-else所在的元素.
    • v-if和v-else之间不能插其他任何元素.

    (4).v-if v-else-if v-else 多个元素多选一显示与隐藏

    • <元素 v-if=“条件1”>
    • <元素 v-else-if=“条件2”>
    • … …
    • <元素 v-else>

    (5).v-for反复生成多个相同结构的元素

    • <要反复生成的元素 v-for="(elem,i) of 数组/对象/字符串/数字">
    • new Vue()扫描到v-for时,会遍历of后的东西,每遍历一个,就创建一个副本,同时of自动取出当前元素的内容,元素脂肪在elem变量中,元素的下标放在i变量中,elem和i变量可在当前元素上及其子元素上用于绑定语法
      (6).v-on 绑定事件
    • <元素 @事件名=“事件处理函数()”> v-on可用@代替
    • 如果同时传入实参值和事件对象:
    • <元素 @事件名=“事件处理函数(实参值,$event)”>
    • methos:{
    • 事件处理函数(形参值,e){…}
    • }

    (7).v-clock 防止用户短暂看到{{}}

    • 首先在CSS中写[v-clock]{display}
    • 然后在元素上添加属性v-clock

    (8).v-text防止用户看到{{}},v-text会覆盖{{}}

    • <元素 v-text="xxx${变量和js表达式}"></元素>

    (9).v-htm绑定HTML片段内容

    • 底层相当于.innerHTML
    • <元素 v-html=“变量或js表达式”></元素>

    (10).v-once 只在首次加载页面时绑定一次数据显示,之后即时更新变量值页面也不会发生变化

    • <元素 v-once>{{js表达式}}</元素>
    • v-once的元素根本没有加入DOM树

    (11).v-pre防止内容中{{}}被编译

    • <元素 v-pre>Vue框架采用{{变量名}]}方式绑定元素的内容</元素>

    8.笔试题:v-if其实也可单独使用控制一个元素是否显示隐藏,与v-show有什么区别呢?

    • 相同点:都是控制一个元素的显示与隐藏
    • 差别:v-if是通过删除元素的方式来控制显示和隐藏,而v-show是通过display:none方式来控制显示与隐藏.v-if因为修改了DOM树所以效率低而v-show不修改DOM树之修改元素的CSS属性,所以效率高.

    9.v-for遍历的某一个元素被修改时,v-for重新生成所有元素而不是只更新其中一个,怎么解决?

    • 为要反复生成的元素添加:key=“i”,从而每次只需要修改一个数组元素对应的对应的一个HTML元素副本,效率更高.

    10.v-on如何如何既传事件对象,又传自定义参数?

    • 用$event关键词,代替自动创建的event对象,手动传入事件处理函数中

    11.vue的双向绑定v-model
    既能将程序中的变化自动送到界面上去,又能将界面上用户所做的修改返向更新回程序的变量中.
    在单向绑定原理(访问器属性+虚拟DOM树)的基础上,又自动为表单元素绑定了onput或onchange事件,只要用户输入或修改了表单元素的值,都会自动触发事件.
    12.点击按钮获得文本框中输入的关键词:

    <div id="app">
      <!--3种触发查询的方式: 
          点按钮可查询
          按回车键且抬起按键后也可执行查询
          一边输入一边查询!-->
      <input v-model:value="keywords" 
            @input="search" 
            @keyup.13="search"/>
      <button @click="search">百度一下</button>
    </div>
    <script>
    var vm=new Vue({
      el:"#app",
      data:{
        keywords:""
      },
      methods:{
        search(){
          //只有用户输入的内容不是空字符串,且不是空格时才执行查找
          if(this.keywords.trim()!==""){
            console.log(`查询${this.keywords}相关的信息...`)
          }
        }
      }
    })
    </script>
    

    13.计算属性(computed)

    • computed专门用于保存计算属性,计算属性的本质是函数。
    • 自己不实际保存属性值,每次都要根据其他的属性值来计算出自己属性的值.(比如:购物车里的总价)
    • 计算属性的优点:计算属性首次计算的结果会被vue缓存起来,即使反复使用计算属性,也不会重复计算,除非依赖的变量发生了变化,才被迫重新计算,但是新的值依旧会被vue缓存,并重复使用。(methods中的普通函数,每调用一次就会重新执行一次复杂计算,计算的结果也不会被vue缓存并重复使用)
    • 不关心返回值(没有return),就用methods
    • 要返回值就用计算属性提高效率,减少重复计算。

    14.过滤器、

    • 专门将变量的原始值经过加工后在现实的一种特殊的函数。
    • 向vue中添加过滤器
    • Vue.filter(“过滤器名”,function(oldVal,自定义形参){
    • return oldVal加工后的新值
    • });
    • <元素>{{变量 | 过滤器(自定义实参值)}}</元素>

    15.axios

    • vue中专门发送AJAX请求的基于promise的函数库
    • 但其实axios和vue毫无关系,可以独立运行,也可放在vue中运行
    • 先导入axios.min.js文件
    • 再配置所有url的基础路径:
    • axios.defaults.baseURL=“http://服务器域名:端口号”;
    • 发送get请求:

    axios.get(“相对url”,{
    params:{变量名:值,… : …}
    }).then(function(result){
    result.data才是服务器端返回的数据
    })

    • 发送post请求

    axios.post(“服务器端接口地址”,“变量1=值1&变量2=值2&…”)
    .then(function(result){
    result.data才是服务器端返回的数据
    })

    11.axios及安装?
    答:请求后台资源的模块。npm install axios —save 装好, js中使用 import 进来,然后 .get 或 .post 。返回在 .then 函数中如果成功,失败则是在 .catch 函数中。

    18.组件化开发

    • 组件:拥有专属的HTML+CSS+数据的可重用的页面独立的功能区域
    • 封装组件:创建组件对象并添加到Vue中

    Vue.cpmponent(“组件名”,{
    template:HTML片段,//模板,这个组件统一的样子,HTML片段必须用唯一的父元素包裹
    data(){//和new vue不同,data变成一个函数,为了可以反复调用,每次调用都返回一个新的保存数据的对象
    return{//new object
    变量:初始值
    }
    }
    methods:{函数}
    computed:{计算属性}
    //声明周期的钩子函数
    mounted(){}
    })

    • 在页面中使用组件:<组件名></组件名>
    • 原理:当w
      vue()扫描到不认识的自定义HTML标签,会在vue中找同名组件,如果找到了同名组件对象,会先把template中保存的HTML片段替换掉页面中组件名标签的位置,自动调用data函数,为本次组件创建一个模型对象.从而也就形成了一个缩微版的new Vue()对象和绑定关系.
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <script src="js/vue.js"></script>
      <script>
        //想定义一个计数器组件,点+-号,可更改数量
        //1. 创建组件对象, 定义组件名称,多个英文单词用-分割
        Vue.component("my-counter",{
          //每个组件的制作过程和new Vue()制作过程几乎完全一样
          //2. 定义界面模板:template
          //要求唯一父元素包裹
          //问: 模板中共有几处可能发生变化
          //本例中: 只有span的内容可能发生变化,所以用{{n}}标记
          //问: 模板中哪些元素可能触发事件
          //本例中: 两个button可点击执行+-计算,所以用@click标记
          template:`<div>
            <button @click="minus">-</button><span>{{n}}</span><button @click="add">+</button>
          </div>`,
          //3. 创建模型对象
          //问: template模板中共需要几个变量
          //本例中: 共需要1个变量n
          data(){ //将来会被自动反复调用
            return { //反复创建模型对象副本——这里才相当于new Vue()中data对象
              n:1
            }
          },
          //其余和new Vue()就完全一样了
          //问: 模板中共需要几个函数
          //本例中共需要minus和add两个函数
          methods:{
            minus(){ if(this.n>1){this.n--} },
            add(){ this.n++ }
          }
        })
      </script>
    </head>
    <body>
      <div id="app">
        <ul>
          <li><my-counter></my-counter></li>
          <li><my-counter></my-counter></li>
          <li><my-counter></my-counter></li>
        </ul>
      </div>
      <script>
        new Vue({
          el:"#app"
        })
      </script>
    </body>
    </html>
    

    19.vue中的组件分为三类:

    • 根组件:一个页面只有一个,监控整个页面的组件new Vue()
    • 全局组件:可以在项目的任何位置都能使用的组件Vue.component(“组件名”,{…}})
    • 子组件:只能用于规定的父元素内的组件,出来父元素就不能使用。

    创建子组件:

    • 1.定义子组件:将Vue.component()换成一个普通的js对象定义格式,但组件内容不变 var 组件名={ template:``, data(){return{}}, methods:{…} }
    • 2.在子组件所属的父组件内添加一个components属性,在属性中包含子组件子组件对象 父组件{ template:``, data(){return{…}}, …,
      components:{子组件对象名} }

    21.SPA单页面应用

    • 整个应用程序只有一个完整的HTML页面。其它所谓的页面只是页面中一个片段/组件而已。所谓的页面跳转其实是在HTML页面中切换不同的片段内容/组件。

    多页面应用vs单页面应用
    多页面应用:

    • 请求次数多,每更换一次页面都要向服务器重新发送请求
    • 效率低,每次更换页面都要重建整棵DOM树
    • 每次更换页面时都要重新下载公共资源(所有页面都要使用的CSS,JS),增加了请求次数且浪费流量。
    • 多页面应用,因为同一时刻只能保存一张网页,所以无法实现页面过度动画。

    单页面应用:

    • 请求次数少,因为首次请求就将所有页面组件一次性下载到本地,之后切换页面只是更换本地的不同的组件展现,无需向服务器重新发送请求。
    • 效率高,因为每次更换页面不用重建整棵DOM树,只更新原DOM树中部分组件节点即可。
    • 公共资源仅在首次加载第一个页面时请求一次,之后更换页面因为引用公共文件的内容部分没有改变,所以不会重新请求页面共用的css和js,减少了请求次数节省流量。
    • 单页面应用所有组件都在内存中,主页面完全可能同时加载两个组件,定义两个组件间动画效果

    单页面应用的缺点:首屏加载太慢。
    解决首屏加载慢的方法
    a.异步延迟下载:

    • 打包时,每个组件分开打包为单独的文件。首屏加载时只加载第一个组件的内容,后续组件有底层程序异步加载,优点是不影响首屏加载速度,又能实现单页面应用的效果。但是会浪费网络流量。

    b.懒加载:

    • 打包时,每个组件分开打包为单独的文件。首屏加载时不会下载其他任何组件,只有当用户切换到其他某个组件时,才临时下载用户想看的组件。优点省流量,缺点下载速度比加载本地组件稍慢。但是还是单页面应用,因为下载的只是页面中部分的组件内容,不是完整的HTML页面。
      22.单页面应用的实现:
      先创建一个完整的HTML页面,支持vue框架的页面结构,引入vue-router.js,在
      中定义为页面组件占位并在new Vue()中添加router成员.
      为每个页面分别创建一个子组件对象
      创建router.js保存路由器对象和路由字典,定义路由字典数组routes,创建路由器对象并引入路由字典,根据地址栏的变化自动切换显示不同的页面组件.
      公共部分创建为全剧组件,并添加到之外,就不会被替换
    展开全文
  • 文章目录SpringBoot特点SpringBoot优点SpringBoot...Reactive:响应式编程,采用异步非阻塞的方式,应用之间构建异步数据流方式(占用少量资源),构建高吞吐应用 Cloud:未来拆成微小服务,SpringCloud 分布式 Web ap


    SpringBoot的底层就是Spring.

    SpringBoot特点

    • Microservice:微服务
    • Reactive:响应式编程,采用异步非阻塞的方式,应用之间构建异步数据流方式(占用少量资源),构建高吞吐应用
    • Cloud:未来拆成微小服务,SpringCloud 分布式
    • Web apps:web开发
    • Servless:无服务开发 Faas 函数即服务上云平台 ,按量计费。
    • Event Driven:让系统模块分布式构建出实时的数据流 通过响应式方式,完成高吞吐的业务。
    • Batch:批处理业务。

    SpringBoot优点

    • Create stand-alone Spring applications : 创建独立Spring应用

    • Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files) : 内嵌web服务器。以前是打成war包运行在Tomcat服务器上,现在是内置Tomcat直接运行

    • Provide opinionated ‘starter’ dependencies to simplify your build configuration : 自动starter依赖,简化构建配置。以前是要弄一堆jar包,现在只需要导入web场景,场景下的这一堆json等包都会帮我们导入,而且会控制版本,保证不会出现问题。

    • Automatically configure Spring and 3rd party libraries whenever possible : 自动配置Spring以及第三方功能。mybatis,springmvc等这些配置项自动配好,专注于业务。

    • Provide production-ready features such as metrics, health checks, and externalized configuration : 提供生产级别的监控、健康检查及外部化配置。运维,监控应用指标和健康。运维在外部修改配置,无需源代码修改。

    • Absolutely no code generation and no requirement for XML configuration : 无代码生成、无需编写XML。自动配置无需其他代码

    SpringBoot缺点

    • 封装很深,内部原理复杂,不易精通
    • 迭代快 双面剑

    SpringBoot2两套解决方案:

    • 响应式 构建异步数据流进行响应式开发
    • Servlet 老的

    SpringBoot文档介绍

    SpringBoot文档:进入Spring官网 顶部菜单Project->SpringBoot

    image-20210216221426662

    官方文档模块分类解释:

    • Getting Started : 介绍SpringBoot,快速体验SpringBoot
    • Using Spring Boot : 自动配置原理,配置怎么写,依赖
    • Spring Boot Features(高级特性) : 多环境配置,日志,安全,缓存,测试
    • Spring Boot Actuator(监控)
    • Deyloying Spring Boot Applications : 平台部署
    • Spring Boot CLI : 命令行初始化SpringBoot 没啥用
    • Build Tool Plugins : SpringBoot构建期间使用的插件,Maven,Gradle
    • “How-to” Guides : 特别推荐,小技巧 , 应用开发技巧,配置技巧,嵌入式服务器,数据存取

    附录内容

    版本更新内容:https://github.com/spring-projects/spring-boot/wiki#release-notes

    什么是微服务

    微服务原文翻译:https://blog.csdn.net/u013970991/article/details/53333921

    James Lewis and Martin Fowler (2014) 提出微服务完整概念。https://martinfowler.com/microservices/

    In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.-- James Lewis and Martin Fowler (2014)

    • 微服务是一种架构风格
    • 一个应用拆分为一组小型服务
    • 每个服务运行在自己的进程内,也就是可独立部署和升级
    • 服务之间使用轻量级HTTP交互
    • 服务围绕业务功能拆分
    • 可以由全自动部署机制独立部署
    • 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术

    微服务(设计)->分布式(部署)

    微服务是架构设计方式,分布式是系统部署方式.(通俗来说,假设去大饭店吃饭就是一个完整的业务的话, 饭店的厨师、洗碗阿姨、服务员就是分布式; 厨师、洗碗阿姨和服务员都不止一个人,这就是集群; 分布式就是微服务的一种表现形式,分布式是部署层面,微服务是设计层面。)

    分布式

    image-20210214215049516

    分布式的困难
    • 远程调用 HTTP在各个服务器之间交流
    • 服务发现 可能会有服务器出现故障,在一组处理相同服务的服务器里需要寻找服务没问题的服务器
    • 负载均衡 一组处理相同服务的服务器中该选择哪一个,涉及负载均衡
    • 服务容错 有在代码指定的处理请求的服务器出现问题后的后续步骤,比如选择的服务器出现网络问题,选择其他服务器或是出错后返回一个数据之类的
    • 配置管理 服务的配置放在配置中心中,不需要改源代码,改配置中心,然后服务器去同步配置中心的配置
    • 服务监控
    • 链路追踪 服务器A调用B,B调用C,整个链路出现问题后需要知道是链路中的哪一块出现了问题。
    • 日志管理
    • 任务调度 触发定时任务,是以串行方式还是并行方式
    分布式的解决

    SpringBoot(快速部署应用)+SpringCloud(连接微服务,互连互调)

    img

    云原生 CloudNative

    概念解释:https://www.jianshu.com/p/a37baa7c3eff

    ​ https://zhuanlan.zhihu.com/p/150190166

    Pivotal最新官网对云原生概括为4个要点:DevOps+持续交付+微服务+容器符合云原生架构的应用程序应该是:采用开源堆栈(K8S+Docker)进行容器化,基于微服务架构提高灵活性和可维护性,借助敏捷方法、DevOps支持持续迭代和运维自动化,利用云平台设施实现弹性伸缩、动态调度、优化资源利用率。

    image-20210302084150976

    应用上云

    • 服务自愈 如果相关服务器挂了,能不能再拉另一个服务器来工作
    • 弹性伸缩 在流量高峰期自动调用更多服务器 低的时候再释放
    • 服务隔离 服务器内服务故障后不会影响其他服务器内的服务
    • 自动化部署
    • 灰度发布 A调B,B全部要更换成2.0版本,可能会出现故障,A的链路就断了,在一组B中替换一个为2.0版本,因为是负载均衡,如果调用没有问题,再逐步将1.0版本全部更换为2.0版本。
    • 流量治理 限制进入服务器流量,动态扩缩等

    上云解决方案
    在这里插入图片描述

    展开全文
  • Spring与SpringBoot-01

    2021-03-16 22:38:39
    文章目录Spring 能做什么Spring 框架的基本的功能Spring 可以做什么?Spring 的生态Spring5 重大升级为什么用 SpringBootSpring Boot优点Spring Boot 缺点时代背景微服务分布式分布式的困难分布式...响应式编程 分布式

    Spring 能做什么

    Spring 框架的基本的功能

    • IOC 容器
    • 切面 AOP
    • Springmvc 做 web 开发

    Spring 可以做什么?

    • 微服务开发
    • 响应式编程
    • 分布式云开发
    • web 开发
    • 无服务开发
    • 事件驱动
    • 批处理
      在这里插入图片描述

    Spring 的生态

    网址:https://spring.io/projects/spring-boot

    • Spring 的生态覆盖了:
      • web开发
      • 数据访问
      • 安全控制
      • 分布式
      • 消息服务
      • 移动开发
      • 批处理

    Spring5 重大升级

    1) Spring5 的重大升级,引入了响应式编程,使 Spring Boot2 与 1版本的使用有一些不一样。
    image.png
    2) 内部源码设计,基于 Java8 的一些新特性,如:接口默认实现。重新设计源码架构。

    为什么用 SpringBoot

    Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".
    

    Spring Boot 的底层是 Spring Framework,Spring Framework 的底层是 Java。所以 Spring Boot 能快速创建出生产级别的Spring应用。

    Spring Boot优点

    • Create stand-alone Spring applications
    • 创建独立Spring应用
    • Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
      • 内嵌web服务器
    • Provide opinionated ‘starter’ dependencies to simplify your build configuration
      • 自动starter依赖,简化构建配置
    • Automatically configure Spring and 3rd party libraries whenever possible
      • 自动配置Spring以及第三方功能
    • Provide production-ready features such as metrics, health checks, and externalized configuration
      • 提供生产级别的监控、健康检查及外部化配置
    • Absolutely no code generation and no requirement for XML configuration
      • 无代码生成、无需编写XML
    SpringBoot 是整合 Spring 技术栈的一站式框架
    SpringBoot 是简化 Spring 技术栈的快速开发脚手架
    

    Spring Boot 缺点

    • 人称版本帝,迭代快,需要时刻关注变化
    • 封装太深,内部原理复杂,不容易精通

    时代背景

    微服务

    James Lewis and Martin Fowler (2014) 提出微服务完整概念。https://martinfowler.com/microservices/

    In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.-- James Lewis and Martin Fowler (2014)
    
    • 微服务是一种架构风格
    • 一个应用拆分为一组小型服务
    • 每个服务运行在自己的进程内,也就是可独立部署和升级
    • 服务之间使用轻量级 HTTP 交互
    • 服务围绕业务功能拆分
    • 可以由全自动部署机制独立部署
    • 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术

    分布式

    分布式的困难

    • 远程调用
    • 服务发现
    • 负载均衡
    • 服务容错
    • 配置管理
    • 服务监控
    • 链路追踪
    • 日志管理
    • 任务调度

    分布式的解决

    • SpringBoot + SpringCloud
      在这里插入图片描述

    云原生

    • 原生应用如何上云。 Cloud Native

    上云的困难

    • 服务自愈
    • 弹性伸缩
    • 服务隔离
    • 自动化部署
    • 灰度发布
    • 流量治理

    上云的解决

    在这里插入图片描述

    如何学习SpringBoot

    官网文档架构

    image.png
    image.png

    • 查看版本新特性;
      https://github.com/spring-projects/spring-boot/wiki#release-notes
      image.png
    展开全文
  • vue的入门/简介

    2018-04-09 14:56:00
    1. 响应的数据绑定/响应式编程2. 组件化 vue优点 1. 轻量级的框架 2. 简单易学3. 双向数据绑定4. 组件化5. 视图,数据,结构分离6. 虚拟DOM7. 运行速度更快 vue缺点 作为一个新兴的前端框架,在支持特性方面存在...
  • 1.3、Spring5重大升级1.3.1、响应式编程1.3.2、内部源码设计2、为什么用SpringBoot2.1、SpringBoot优点2.2、SpringBoot缺点3、时代背景3.1、微服务3.2、分布式3.3、云原生4、如何学习SpringBoot4.1、官方文档架构 ...
  • 构建微服务架构:使用 API Gateway本期内容简要概述客户端与微服务直接通信使用 API 网关构建微服务API 网关的优点缺点实现 API 网关性能和可扩展性使用响应式编程模型服务调用服务发现处理局部失败总结3....
  • 引言:多道编程可以克服单道编程缺点,提高CPU和内存的利用效率,改善用户的响应时间。本文将介绍多道编程下固定分区的内存管理。后续文章会介绍非固定分区、分页、分段、段页管理方式。 内存管理笔记五...
  • 1.2 、spring开发生态1.3、spring5的重大升级1.3.1 、响应式编程的引入1.3.2、 内部源码设计升级2、 为啥需要使用springboot2.1 springboot优点(功能介绍)Features 功能2.2 缺点3、springboot官方文档的架构3.1、...
  • 文章目录**Spring与SpringBoot**1、Spring能做什么1.1、Spring的能力1.2、Spring的生态1.3、Spring5重大升级1.3.1、响应式编程1.3.2、内部源码设计2、为什么用SpringBoot2.1、SpringBoot优点2.2、SpringBoot缺点3、...
  • 0608面试题扩展

    2021-06-08 20:42:48
    vue两大特点:响应式编程、组件化。 vue的优势:轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的分离、虚拟DOM、运行速度快。 vue是单页面应用,使页面局部刷新,不用每次跳转页面都要请求所有数据和dom...
  • 文章目录引言使用API网关API网关的优点和不足实现API网关性能和可扩展性使用响应式编程模型服务调用服务发现处理局部失败小结 有关微服务的系列文章的 第一篇 介绍了微服务架构模式,讨论了使用微服务的优缺点,...
  • 微服务查询模式

    2020-08-03 22:17:10
    API组合器需要使用响应式编程,并行调用较小rt。 优点: 简单直观。 缺点: 增加额开销。 I/O。涉及多次rpc和查库。 CPU。聚合查询结果,可能需要执行大规模数据内存链接。 可用性降低。受依赖服务的影响。...
  • 事务我们都知道是什么,而Spring事务就是在数据库之上利用AOP提供声明事务和编程式事务帮助我们简化开发,解耦业务逻辑和系统逻辑。但是Spring事务原理是怎样?事务在方法间是如何传播的?为什么有时候事务会失效...
  • 分析了RS-485和RS232的优点缺点,提出了软件采用RS232方式编程、硬件采用RS232和RS-485透明互换的设计方法。词论并实现了Socket通信过程。分析了HTTP协议中客户浏览器请求和服务器响应的过程和内容,提出在嵌人...
  • •主要包括data,widget,form,grid,dd,menu,其中最强大的应该算grid了,编程思想是基于面对对象编程(oop),扩展性相当的好.可以自己写扩展.自己定义命名空间.web应用可能感觉太大.不过您可以根据需要按需加载您想要的...
  • 1.1.3 优点缺点 1.2 黑盒测试 1.2.1 人工测试 1.2.2 自动测试或模糊测试 1.2.3 优点缺点 1.3 灰盒测试 1.3.1 二进制审核 1.3.2 自动化的二进制审核 1.3.3 优点缺点 1.4 小结 1.5 脚注 第2章 什么是模糊测试 ...
  • 使用spa之后,页面在切换的时候非常流畅,完全没有那种不断刷新的感觉,而是非常快的就有了响应,因为js运行速度很快,所以js在做本地路由的时候,就会非常快。 -单页应用没有页面之间的切换,就不会出现“白屏...
  • •兼有段和页管理的优点,系统复杂和开销增大,一般在大型机器上才使用。 第五章文件管理 1、文件管理任务与功能 任务:把存储、检索、共享和保护文件的手段,提供给操作系统本身和用户,以达到方便...
  • 基于MCS51单片机温度控制系统

    热门讨论 2009-04-10 19:45:04
    而近年以FPGA(现场可编程门阵列)为代表的可编程逻辑器件异军突起,其优异的性能大大弥补了单片机响应速度慢、中断源少的缺点。但FPGA的运算能力有限,因此,在我们的设计中采用FPGA与单片机相结合的控制方式,二者...
  • 操作系统(内存管理)

    热门讨论 2009-09-20 12:55:25
    操作系统维持着一个虚拟地址到物理地址的转换的表,以便计算机硬件可以正确地响应地址请求。并且,如果地址在硬盘上而不是在 RAM 中,那么操作系统将暂时停止您的进程,将其他内存转存到硬盘中,从硬盘上加载被请求...
  • 唯一的缺点,软件仿真精度有 限,而且不可能所有的器件都找得到相应的仿真模型。 使用keil c51 v7.50 + proteus 6.7 可以像使用仿真器一样调试程序,可以完全 仿真单步调试,进入中断等各种调试方案。 Proteus 与...
  • 操作系统维持着一个虚拟地址到物理地址的转换的表,以便计算机硬件可以正确地响应地址请求。并且,如果地址在硬盘上而不是在 RAM 中,那么操作系统将暂时停止您的进程,将其他内存转存到硬盘中,从硬盘上加载被...
  • 应用程序需要响应用户操作,对数据进行排序,然后需要同步到界面上。 在开发应用程序的时候,以求更好的管理应用程序的复杂性,基于职责分离(Speration of Duties)的思想都会...
  • java面试题

    2018-04-27 19:55:38
    3:多台:不同对象对统一消息作出不同响应称之为多态 4:抽象:忽略与当前主题无关的那些方面,将注意力集中在与当前目标有关的方面 运行时异常和一般异常有何异同? 答:运行时异常时(JVM)java虚拟机在运行过程...
  • 在阻塞 I/O 模型中,应用程序在从IO系统调用开始,一直到到系统调用返回,这段时间是阻塞的。返回成功后,应用进程开始处理用户空间的缓存数据。 <p><img alt="" src=...
  • 基于SSM的校园二手交易平台 ...完整的设计报告在后面 喜欢就点一下star哟,谢谢亲的支持 ...个人主页 ...Java版本:1.8 数据库:MySQL 框架:Spring + Spring MVC + MyBatis 服务器:Tomcat 前端解析框架:Thymeleaf ...
  • 软件工程教程

    热门讨论 2012-07-06 23:10:29
    这幅画在一副优雅的4x8英尺画布上以画家特有的滴溅泼洒的艺术手法来进行风暴设计并拨开油彩。 任务1 系统的研发背景 追问:为什么呢? 你好,这里是梦幻家园售楼处,我是蔡小姐。 我是张总,我严重警告你。 为...

空空如也

空空如也

1 2
收藏数 32
精华内容 12
关键字:

响应式编程优点缺点