自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 奈学:Java 和 JavaScript 是什么关系?

一、什么是Javascript?它是运行在浏览器中的一种脚本语言,在web页面中,Javascript可谓是无所不能:  1. 可以操作HTML,提供了一种运行时改变HTML的工具;  2. 可以附加并执行事件,符合面向事件编程的思想;  3. 数据验证功能,在提交表单时对表单数据进行合法性验证;  4. 对客户浏览器的操作,前进、后退、刷新、跳转、打开新窗口、打印等;  5. 可以创建并使用Cookies. 二、什么是Java?  Java是Sun公司推出的一种编程语言。它是一种通过解释方

2020-09-29 10:55:21 850

转载 奈学开发者社区分享:Java - 设计模式的7个设计原则

因为设计模式就是基于这些原则的实现,所以很有必要了解这些原则,下面主要对面向对象编程的几个原则进行简单介绍。1、单一职责原则 ( SRP )英文全称是Single Responsibility Principle,定义是一个类,应该只有一个引起它变化的原因。类变化的原因就是职责,如果一个类承担的职责过多,就等于把这些职责耦合在一起了。一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。而如果想要避免这种现象的发生,就要尽可能的遵守

2020-09-28 16:57:31 167

转载 Java中强、软、弱、虚四种引用详解

强引用  强引用就是指在程序代码之中普遍存在的,指创建一个对象并把这个对象赋给一个引用变量,并没有像其它三种引用一样有一个就具体的类来描述。对于强引用对象,即使内存不足,JVM宁愿抛出OutOfMemoryError (OOM)错误也不会回收这种对象。例如:Object object =new Object(); String str =“hello”;  如果想中断强引用和某个对象之间的关联,可以显示地将引用赋值为null,这样一来的话,JVM在合适的时间就会回收该对象。比如各种集合的移除方法.

2020-09-03 11:03:38 238

转载 Java创建对象的方法有哪些?

1.运用New 关键字创建实例,这是最常用的创建对象方法。2.运用反射,调用Java.lang.Class类当中newInstance方法。只能调用公共的无参构造函数。3.运用反射,调用java.lang.reflect.Constructor类中的newInstance方法提供无参或有参实例。除了无参构造器,还可以调用有参数的/私有的/受保护的构造函数。事实上Class的newInstance方法内部调用Constructor的newInstance方法。这也是众多框架Spring、Hibernate

2020-09-03 10:45:41 247

转载 奈学:Executor线程池的概述

Executor线程池来自于JDK1.5的JUC包,使用线程池的目的或者好处如下:实现线程资源的合理复用。线程资源属于操作系统核心资源之一,创建和销毁都需要占用系统资源和大量时间。使用线程池之后,不再需要开发者管理线程,线程的创建和销毁都交给线程池控制,实现线程的复用,减少线程资源的频繁的创建和销毁。提升任务执行效率。当新来一个线程任务的时候,由于具有线程复用计数因此可以直接利用现有的线程去执行任务,不需要新建线程,这样一定程度上提升了执行效率。可以对线程和线程任务实现实时监控和管理。比如目前活动线程

2020-08-27 10:46:54 87

转载 奈学:红黑树(RedBlackTree)的概述

AVL树与红黑树  AVL树是一种自平衡的二叉查找树,又称平衡二叉树。AVL用平衡因子判断是否平衡并通过旋转来实现平衡,它的平衡的要求是:所有节点的左右子树高度差不超过1。AVL树是一种高平衡度的二叉树,执行插入或者删除操作之后,只要不满足上面的平衡条件,就要通过旋转来保持平衡,而的由于旋转比较耗时,由此我们可以知道AVL树适合用于插入与删除次数比较少,但查找多的情况。  由于维护这种高度平衡所付出的代价可能比从中获得的效率收益还大,故而实际的应用不多,更多的地方是用追求局部而不是非常严格整体平衡的..

2020-08-26 19:32:39 160

转载 奈学:reaseShared共享式释放锁

共享锁的释放是通过调用releaseShared模版方法来实现的。大概步骤为:调用tryReleaseShared尝试释放共享锁,这里必须实现为线程安全。如果释放了锁,那么调用doReleaseShared方法环迅后继结点,实现唤醒的传播。对于支持共享式的同步组件(即多个线程同时访问),它们和独占式的主要区别就是tryReleaseShared方法必须确保锁的释放是线程安全的(因为既然是多个线程能够访问,那么释放的时候也会是多个线程的,就需要保证释放时候的线程安全)。由于tryReleaseShare

2020-08-18 18:54:33 142

转载 奈学:Executor框架的概述

JDK1.5之前,我们如果想要使用Java线程来完成相关任务,一般涉及两个类,一个是Thread类,一个Thread对象在启动(start)之后会创建一个关联的本地操作系统线程,随后会自动回调run方法。另一个是Runnable接口,可以看作 run方法的抽象,代表线程任务。通过Runnable和Thread的配合可以编写我们自己的多线程逻辑。  可以看到,此时Java对于多线程编程的支持还是比较原始的,功能也并不多。因此,在JDK1.5的JUC包中,对Java的多线程应用做了一次全面的扩展,比如新loc

2020-08-18 18:23:57 101 1

转载 什么是死锁?如何解决死锁?

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。产生死锁的原因,主要包括:系统资源不足;程序执行的顺序有问题;资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,那么死锁出现的可能性就很低;否则,就会因争夺有限的资源而陷入死锁。其次,程序执行的顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:互斥条件:一个资源每次只能被

2020-08-11 18:48:21 280

转载 Flink 支持的重启策略有哪些

Flink支持不同的重启策略,可以控制在发生故障时如何重启新启动作业。默认重启策略是通过Flink的配置文件设置的flink-conf.yaml。配置参数restart-strategy定义采用的策略。如果未启用检查点,则使用“无重启”策略。如果激活了检查点并且尚未配置重启策略,则固定延迟策略将用于 Integer.MAX_VALUE重启尝试。重启策略分为:固定延迟重启策略、故障率重启策略、无重启策略、后备重启策略。1.固定延迟重启策略固定延迟重启策略是尝试给定次数重新启动作业。如果超过最大尝试次

2020-08-11 18:22:30 403

转载 NIO的组成有哪些——奈学

Buffer:与Channel进行交互,数据是从Channel读入缓冲区,从缓冲区写入Channel中的flip方法 : 反转此缓冲区,将position给limit,然后将position置为0,其实就是切换读写模式clear方法 :清除此缓冲区,将position置为0,把capacity的值给limit。rewind方法 : 重绕此缓冲区,将position置为0DirectByteBuffer可减少一次系统空间到用户空间的拷贝。但Buffer创建和销毁的成本更高,不可控,通常会用内存池来提高

2020-08-06 10:28:01 148

转载 奈学:一起了解几种序列化协议

序列化(编码)是将对象序列化为二进制形式(字节数组),主要用于网络传输、数据持久化等;而反序列化(解码)则是将从网络、磁盘等读取的字节数组还原成原始对象,主要用于网络传输对象的解码,以便完成远程调用。影响序列化性能的关键因素:序列化后的码流大小(网络带宽的占用)、序列化的性能(CPU资源占用);是否支持跨语言(异构系统的对接和开发语言切换)。Java默认提供的序列化:无法跨语言、序列化后的码流太大、序列化的性能差XML,优点:人机可读性好,可指定元素或特性的名称。缺点:序列化数据只包含数据本身以及类的

2020-08-05 16:57:11 258

转载 NameNode和SecondaryNameNode工作机制

1.NameNode启动(1)首次启动需要格式化NameNode,创建Fsimage和Edits文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。(2)客户端对元数据进行增删改的请求。(3)NameNode记录操作日志,更新滚动日志。(4)NameNode在内存中对元数据进行增删改。2.SecondaryNameNode工作(1)SecondaryNameNode询问NameNode是否需要CheckPoint。直接带回NameNode是否检查结果。(2)SecondaryNameN

2020-07-28 19:01:45 212

转载 Django框架,Flask框架和Tornado框架各有什么优缺点

Django:Python 界最全能的 web 开发框架,battery-include 各种功能完备,可维护性和开发速度一级棒。常有人说 Django 慢,其实主要慢在 Django ORM 与数据库的交互上,所以是否选用 Django,取决于项目对数据库交互的要求以及各种优化。而对于 Django 的同步特性导致吞吐量小的问题,其实可以通过 Celery 等解决,倒不是一个根本问题。Django 的项目代表:Instagram,Guardian。Tornado:天生异步,性能强悍是 Tornado 的

2020-07-28 18:39:29 773

转载 Gossip 协议详解

Gossip protocol 也叫 Epidemic Protocol (流行病协议)。Gossip protocol在1987年8月由施乐-帕洛阿尔托研究中心发表ACM上的论文《Epidemic Algorithms for Replicated Database Maintenance》中被提出。原本用于分布式数据库中节点同步数据使用,后被广泛用于数据库复制、信息扩散、集群成员身份确认、故障探测等。Gossip协议是基于六度分隔理论(Six Degrees of Separation)哲学的体现

2020-07-22 18:58:16 896

转载 OOP面向对象编程(Object-Oriented Programming)概述

Java的编程语言是面向对象的,采用这种语言进行编程称为面向对象编程(Object-Oriented Programming, OOP)。1)抽象(abstract)忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用关注细节。例如:要设计一个学生成绩管理系统,那么对于学生,只关心他的班级、学号、成绩等,而不用去关心他的身高、体重这些信息2)封装(Encapsulation)封装是面向对象的特征之一,是对象和类概念

2020-07-17 17:15:12 447

转载 Redis基础:redis特点

redis作为非关系型数据库的一种,属于键值型数据存储,因为redis支持高并发的快速数据访问,所以在生产中多用来作为缓存使用,以提高数据读取效率,提高整个应用程序的并发性能。redis主要有以下特点1.支持多种数据结构;2.支持持久化操作,支持用AOF和RDB两种数据持久化策略把数据持久化到磁盘;3.单线程请求,并发请求情况下不需要考虑数据一致性问题;4.支持两种高可用方式:哨兵机制(master-slave模式)和redis cluster高可用;5.支持发布与订阅的消息机制(不建议使用red

2020-07-13 19:12:54 114

转载 单体架构知识点及单体架构的缺陷

什么是单体架构一个归档包(例如war格式或者Jar格式)包含了应用所有功能的应用程序,我们通常称之为单体应用。架构单体应用的方法论,我们称之为单体应用架构,这是一种比较传统的架构风格。单体架构的缺陷 -1.复杂性高整个项目包含的模块非常多,模块的边界模糊,依赖关系不清晰,代码质量参差不齐,整个项目非常复杂。每次修改代码都心惊胆战,甚至添加一个简单的功能,或者修改一个BUG都会造成隐含的缺陷。2.技术债务逐渐上升随着时间推移、需求变更和人员更迭,会逐渐形成应用程序的技术债务,并

2020-07-08 17:47:37 491

转载 分布式事务精华总结篇

总述 -咱们前面分别对分布式事务的几个分支:XA、2PC、3PC、TCC、Saga、事务消息、最大努力事务进行的详细介绍。本篇作为分布式事务设计的收尾篇,讲对前面的内容查缺补漏和总结,最后对市面的一些开源框架做一些介绍。查缺补漏 -补偿型事务柔性事务分补偿型事务和通知型事务。但对补偿型事务没有进行详细介绍,那什么是补偿型事务呢,在Atomikos 公司Guy Pardon的论文《Business_Activities》中有这样的描述: 大致含义是,"补偿是一个..

2020-07-08 17:23:55 133

转载 Kafka 消息丢失与消费精确一次性

消息丢失的场景如果Kafka Producer使用“发后即忘”的方式发送消息,即调用producer.send(msg)方法来发送消息,方法会立即返回,但此时并不能说明消息已经发送成功。消息发送方式详见初次邂逅Kafka生产者。如果在消息过程中发生了网络抖动,那么消息就会丢失;或发送的消息本身不符合要求,如大小超过Broker端的承受能力等(消息太大的情况在生产中实际遇到过,最后通过在发送前将消息分包,再依次发送,解决了该问题)。解决该问题的方法就是:Producer要使用带回调通知的方法发送消息,即

2020-07-03 18:38:52 334

转载 分布式柔性事务之最大努力通知事务详解

一、概述咱们今天聊聊分布式事务系列中的最后一个方案:最大努力通知事务。最大努力通知事务的主流实现仍是基于MQ来进行事务控制。最大努力通知事务和事务消息都是通知型事务,主要适用于那些需要异步更新数据,并且对数据的实时性要求较低的场景。最大努力通知事务主要用于外部系统,因为外部的网络环境更加复杂和不可信,所以只能尽最大努力去通知实现数据最终一致性,比如充值平台与运营商、支付对接、商户通知等等跨平台、跨企业的系统间业务交互场景;而事务消息主要适用于内部系统的数据最终一致性保障,因为内部相对比较可控,比如订单和

2020-07-03 18:01:32 113

转载 Kafka面试题——20道Kafka知识点

本篇给大家总结了20道Kafka知识点或者说面试题,持续更新中…1.kafka的3个关键功能?发布和订阅记录流,类似于消息队列或企业消息传递系统。以容错的持久方式存储记录流。处理记录流。2.kafka通常用于两大类应用?建立实时流数据管道,以可靠地在系统或应用程序之间获取数据构建实时流应用程序,以转换或响应数据流3.kafka特性?消息持久化高吞吐量扩展性多客户端支持Kafka Streams安全机制数据备份轻量级消息压缩4.kafka的5个核心Api?Producer

2020-06-29 19:14:11 193

转载 分布式柔性事务之事务消息详解

消息详解 -一、概述在 《柔性事务之TCC详解》 和《柔性事务之Saga详解》两文中我们详细剖析了柔性事务的第一个分支补偿型事务。在《刚性事务总结和柔性事务概述》中我们介绍过的柔性事务包含补偿型事务和通知型事务。通知型事务主要包含事务消息和最大努力通知型分布式事务两个组成。通知型事务的核心思想是通过MQ来通知其他事务参与者自己事务的执行状态。MQ组件的引入有效的将事务参与者解耦开,各个参与者都可以异步执行,所以通知型事务又称为异步事务。事务消息的难度在于服务本地事务和投递消息的一致..

2020-06-29 18:47:32 138

转载 奈学:数据湖有哪些缺点?

数据湖本身是一个中心化的存储,能够存储任意规模的结构化与非结构化数据。数据湖相比数据仓库有很多的优势,但大多是在理想状态下的,一旦执行起来还有很多技术挑战。(一)数据湖的数据可能并不会真正做到实时。在业务环境下,如果把所有数据都放到数据湖里,那么从数据湖直接调用数据的过程可能比原来数据仓库更慢,因为从数据湖中提取出来的数据,依然要经过清洗实现标准化后才能更好的利用。具体能否达到需求的低时延效果,还要根据具体应用场景来进行判断。(二)把所有的原始数据都放到数据湖,可能会提升数据的使用难度。对于大型企业而言

2020-06-28 19:23:29 226

转载 奈学:数据湖和数据仓库的区别有哪些?

储存方面:数据湖中数据为非结构化的,所有数据都保持原始形式;存储所有数据,并且仅在分析时再进行转换。数据仓库就是数据通常从事务系统中提取,在将数据加载到数据仓库之前,会对数据进行清理与转换。数据组织形式:数据湖就是捕获半结构化和非结构化数据。而数据仓库则是捕获结构化数据并将其按模式组织。用途:数据湖的目的就是数据湖非常适合深入分析的非结构化数据。数据科学家可能会用具有预测建模和统计分析等功能的高级分析工具。而数据仓库就是数据仓库非常适用于月度报告等操作用途,因为它具有高度结构化。Schema:数据湖通

2020-06-28 19:00:55 171

转载 了解概率知识,概率作为机器学习的底层逻辑

爱因斯坦曾说:上帝不玩掷骰子。但是物理界薛定谔的猫和生物界女朋友的脾气就是不可测量,不可揣摩的两大难题。经常听各种段子,女朋友莫名的又生气了。我们试着从概率上解释下,女朋友生气是不是随机的(滑稽脸.jpg)。说到概率,有一个特别经典的问题:存在三个盒子,其中一个盒子中存放着大奖。现在你随机挑选了其中一个,中奖的概率是1/3。接着主持人打开了剩下2个盒子中的一个,没有中奖。问给你一次重选择的机会,你会怎么做?维持原来的选择 or 放弃原来的选择。随机随机是我们进行概率推导的基石之一。我们的统计学中经

2020-06-24 19:06:57 164

转载 奈学教育:“混沌工程”的基本理念和使用原则

混沌工程简介混沌工程师一门新兴的技术学科,它的初衷是通过实验性的方法,让人们建立复杂分布式系统能够在生产中抵御事件能力的信息。—— Principles of Chaos Engineering有没有这种感觉,当你写下第一行代码的时候,后面等着你的就是不断和系统中的各种错误做斗争?年纪大了,老是害怕在平时的工作中出各种各样五颜六色的问题,一出问题就整宿的加班通宵,熬到六亲不认,枸杞当饭吃。就好像写的代码会跳出来嘲讽你一样:百因必有果,你的报应就是我。实际生产环境中,各种不可预期的突发事件无可避免,系

2020-06-24 18:27:23 165

转载 奈学教育《大数据架构师》课程大纲

深度剖析了各个基础技术的源码(ZooKeeper、Hive、Spark、Flink、Hadoop等),对这些基础技 术知识动态的排列组合,形成大数据全局架构观,并深入讲述大数据全局架构设计的方方面面,打 造真正满足企业万亿级海量数据规模的数据中台,真正赋能前台业务。同时,在企业万亿级真实项 目落地环节,采用高性能、高可用、高扩展的架构设计原则,技术上更是融合了企业级主流的离线 架构和实时架构,带领大家构建PB级的大数据中台,真正落地“企业千亿级的数据仓库中台”,实现 “企业级数据中心平台”,搞定“企业千亿级

2020-06-23 15:08:59 1617 1

转载 奈学教育《P7架构师》课程大纲

孙玄与沈剑联手全新设计,《P7架构师》融合了业界数位大咖超10年开发经验以及他们的架构师成长经验。同时,课程由一线大厂资深架构师(阿里P8+)进行主讲。业内首次将分布式架构全部技术串联,并结合大厂真实案例实践讲解,并提供基于百度、58和转转等真实案例的工业级落地代码,将后端架构技术全面系统的展现,帮助同学们从全局视角掌握分布式架构设计方法,成为一个合格的架构师。我们用名师+好课来改变世界,打破业界严重缺乏顶层架构思维且仅靠疯狂堆叠知识点常见作法,初心不变,让每个人持续提升职业能力!阶段一:核心基础组件源码

2020-06-23 14:43:59 2411 1

转载 奈学教育《Java资深研发工程师》课程大纲

课程从Java核心基础知识入手,深入JDK、JVM底层源码实现,以及对各种开源框架的优雅设计剖析,为学员打下坚实的基础,让源码学习和底层原理梳理变得更加的简单、清晰、有效。通过结合企业级真实项目案例,融合核心技术知识点与框架级设计思想,进一步夯实核心技术能力的理解和应用。让学员面对企业变化多样的需求,和承担更有挑战性的工作。第一阶段:Java语言核心特性第一阶段:Java语言核心特性第一单元掌握Java语言核心特性玩转反射在框架设计中的应用反射实战-应用场景和总结第二单元掌握Java语言

2020-06-23 12:04:21 1024 1

转载 奈学教育《百万架构师》课程大纲

《百万架构师》课程由58集团技术委员会主席孙玄创办于2018年,至今已高质量、高口碑开班多期。 奈学教育出品的《百万架构师》是在原有课程基础上全新升级打造而成。课程首次联手业内知名架构师沈剑精心打磨,深度对标阿里P8。更有超强教研团队:陈东、姚劲、李希沅、江士仕、肖秋平、林淮川、吴守星、向寒等P8+老师,提供课程辅导让你的问题不再过夜。本次课程核心:交付7大架构设计思维模型不变应万变的架构设计能力,达到架构设计降本增效的终极之道第一阶段:基础架构设计与实践之道篇第一单元通过架构演进掌握架构设

2020-06-22 19:01:04 1816

转载 奈学教育《大数据开发工程师》课程大纲

本课程针对企业不同数据规模技术方案进行讲解,紧贴企业热门需求,深入讲解企业级大数据技术的数据存储技术、数据采集技术、数据处理技术、任务调度技术等;课程针对知识点进行企业级案例式教学,理论结合实战,从0到1构建大数据生态技术的方方面面,内容涵盖大数据平台、Spark、Flink、OLAP等核心技术;用真实的企业级实时数仓项目、离线数仓项目、PB级实时用户行为分析系统、千亿级实时广告系统等多个大型项目,把大数据生态技术知识串连起来,让学员形成自己的技术栈,真正成为企业级的大数据开发工程师!阶段一:小规模数据处

2020-06-22 17:58:34 276

原创 奈学教育《P7架构师》课程大纲(第一阶段)

阶段一:核心基础组件源码深入剖析篇第一单元 掌握RPC核心原理 1.RPC核心原理剖析2.RPC核心知识剖析第二单元 掌握RPC具体开源项目原理与实践RPC核心知识剖析Dubbo深度讲解第三单元 掌握RocketMQ的原理与应用消息队列设计思考消息队列选型场景与方案基于RocketMQ二次开发改造第四单元 掌握配置中心的选型与应用基于RocketMQ二次开发改造配置中心在分布式架构中的作用开源配置中心产品选型对比ctrip Apollo深入原理剖析第五单元 掌握注册中心的原

2020-06-22 16:46:18 736

原创 奈学教育《大数据架构师》课程大纲(1)

第一阶段:分布式协调组件第一单元掌握ZooKeeper的核心设计ZooKeeper生态体系结构ZooKeeper总体架构设计ZooKeeper读写请求流程深度剖析第二单元掌握ZooKeeper服务端源码流程ZooKeeper启动流程源码深度剖析Master选举算法源码深度剖析服务端通信模型源码深度剖析第三单元掌握ZooKeeper客户端源码流程客户端启动流程源码剖析客户端通信模型源码剖析Session管理机制源码剖析第四单元.

2020-06-18 18:16:45 360

原创 奈学教育《百万架构师》课程大纲(1)

第一阶段:基础架构设计与实践之道篇第一单元通过架构演进掌握架构设计核心思维模式智能互联网之总体架构设计(上)第二单元通过架构演进掌握架构设计核心思维模式智能互联网之总体架构设计(下)第三单元掌握高可用架构设计基本原则智能互联网之核心技术实践篇(上)第四单元掌握核心技术之分布式资源哲学本质和思维智能互联网之核心技术实践篇(中)第五单元掌握网关/分布式锁的哲学本质和场景Balance案例(一)企业级分布式组件案例第六单元掌握高并发下架构设计的BASE理论智能互联网之核心技术.

2020-06-18 17:28:31 682

转载 江帅帅:精通 Spring Boot 系列 06

Spring Boot 文件的上传下载说真的,在 Spring Boot 实现文件下载,真的是方便到让我颤抖。Java 中实现文件上传可以用两个组件:CommonMultipartResolver 和 StandardServletMultipartResolver。Spring Boot 在 web 模块中集成了 Spring MVC ,文件上传这块儿的支持是可以通过即插即用的 MultipartResolver 实现类:CommonMultipartResolver。如果用它,则需要使用 commo

2020-06-17 18:31:32 118

转载 江帅帅:精通 Spring Boot 系列 05

Spring Boot 处理 JSON 数据JSON 是目前主流的前后端数据传输方式,当 Controller 中返回的是一个 Java 对象或 List 集合时,Spring Boot 将自动把它转换成 JSON 数据。Spring Boot 中内置了 JSON 解析功能,当你在项目中,添加了 spring-boot-starter-web 模块之后,即可看到默认包含 Jackson 解析器,也可以换成 Fastjson 等其他解析器。编辑 Book 类public class Book {

2020-06-17 17:36:48 113

原创 分布式柔性事务的TCC方案

起源 -TCC概念由Pat Helland于2007年发表的一篇名为《Life beyond Distributed Transactions:an Apostate’s Opinion》的论文提出, 在该论文中,TCC还是以Tentative-Confirmation-Cancellation命名。正式以Try-Confirm-Cancel作为名称的是Atomikos公司,并且还注册了TCC商标。国内最早可查引进TCC概念,应是阿里程立2008年在 软件开发2.0大会 上分享主题《大规..

2020-06-16 17:51:08 160

转载 江帅帅:精通 Spring Boot 系列 04

Web 开发的支持使用 Spring Boot 实现 Web 开发更加便捷了,因为直接依赖 spring-boot-starter-web 模块即可支持 Web 开发,此模块预定义了 Web 开发中常用的依赖包,还有内嵌的 Tomcat 作为默认 Web 容器。Thymeleaf 模板引擎目前,多数企业级应用开发中都支持前后端分离,但还有少数离不开视图层技术,Spring Boot 提供了很多模板引擎来支持视图层技术,比如 Thymeleaf、Freemarker、Velocity。Thym.

2020-06-16 17:14:16 88

转载 江帅帅:精通 Spring Boot 系列 02

1 @SpringBootApplication 注解Spring Boot 的启动类,也就是入口类,需要使用 @SpringBootApplication 注解来标注。在启动类中,我们的 main 方法就是 Java 应用程序的入口方法。@SpringBootApplication 是一个组合注解,具体源码如下:其中,比较重要的三个注解是:@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan。2 @SpringBoo.

2020-06-15 19:44:45 126

空空如也

空空如也

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

TA关注的人

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