自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

心神沫沫的收藏

既然没有创造知识的能力,那就当知识的搬运工吧! 本博客文章均为笔者学习过程中自行搜索查找并抱着收藏的心态进行转载的,如果无意中侵犯了您的权益,我深感抱歉并请您立刻私信联系我,我会在第一时间删除相关文章。

  • 博客(591)
  • 收藏
  • 关注

转载 javaagent,idea中对javaagent的运用 侵删

如上图所示,平时我们在IDEA中随便写一个类,写上一个测试方法,然后点那个三角符号就会成功运行,如下图:并且点击那个红色正方形按钮程序就会停止,这是怎么实现的呢?经查看,程序运行界面有一行命令:把它复制下来,看下:好乱,整理下:显而易见,原来是调用了java.exe来运行com.dengbin.socket.TestThread这个类的main方法。然而我们仔细观察一下这些命令,-classpath是指类查找路径、-D开头的是定义环境变量,那-javaagent...

2020-12-27 15:01:46 2322 2

转载 内存随机访问也比顺序慢,带你深入理解内存IO过程 侵删

平时大家都知道内存访问很快,今天来让我们来把刨根问底的精神发挥到极致,来思考两个问题问题1: 内存访问延时到底是多少?你是否会进行大概的估算?例如笔者的内存条的Speed显示是1066MHz,那是否可以推算出内存IO延时是1s/1066MHz=0.93ns? 这种算法大错特错。问题2: 内存存在随机IO比顺序IO慢的问题吗? 我们都知道磁盘的随机IO要比顺序IO慢的多(操作系统底层还专门实现了电梯调度算法来缓解这个问题),那么内存的随机IO会比顺序IO慢吗?要想彻底弄明白以上两个问题,我想我们

2020-11-02 10:30:50 387

转载 Sentinel 滑动窗口实现原理 侵删

要实现限流、熔断等功能,首先要解决的问题是如何实时采集服务(资源)调用信息。例如将某一个接口设置的限流阔值 1W/tps,那首先如何判断当前的 TPS 是多少?Alibaba Sentinel 采用滑动窗口来实现实时数据的统计。温馨提示:如果对源码不太感兴趣,可以先跳到文末,看一下滑动窗口的设计原理图,再决定是否需要阅读源码。1、滑动窗口核心类图我们先对上述核心类做一个简单的介绍,重点关注核心类的作用与核心属性(重点需要探究其核心数据结构)。 Metric 指标收集核心接口,主

2020-11-01 04:15:14 904

转载 linux shell脚本 -f -z啥意思 侵删

文件表达式-e filename 如果 filename存在,则为真-d filename 如果 filename为目录,则为真-f filename 如果 filename为常规文件,则为真-L filename 如果 filename为符号链接,则为真-r filename 如果 filename可读,则为真-w filename 如果 filename可写,则为真-x filename 如果 filename可执行,则为真-s filename 如果文件长度不为0,则为真-h ...

2020-10-18 22:26:48 2714

转载 Fel表达式计算引擎学习 侵删

Fel的问题Fel的问题Fel是轻量级的高效的表达式计算引擎Fel在源自于企业项目,设计目标是为了满足不断变化的功能需求和性能需求。Fel是开放的,引擎执行中的多个模块都可以扩展或替换。Fel的执行主要是通过函数实现,运算符(+、-等都是Fel函数),所有这些函数都是可以替换的,扩展函数也非常简单。Fel有双引擎,同时支持解释执行和编译执行。可以根据性能要求选择执行方式。编译执行就是将表达式编译成字节码(生成java代码和编译模块都是可以扩展和替换的)Fel有多快?通常情况...

2020-08-30 22:01:19 303

原创 有道云笔记网页剪报登录不上,反复登录问题

原因:新版chrome cookie策略https://blog.chromium.org/2019/10/developers-get-ready-for-new.html解决:新版的chrome浏览器,地址栏输入: chrome://flags/#same-site-by-default-cookies 将右边的下拉框修改为:disabled

2020-08-23 16:47:04 6931

转载 自动导出数据库文档

简介在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,从业以来,待过几家企业,关于数据库表结构文档状态:要么没有、要么有、但都是手写、后期运维开发,需要手动进行维护到文档中,很是繁琐、如果忘记一次维护、就会给以后工作造成很多困扰、无形中制造了很多坑留给自己和后人,于是需要一个插件工具 screw[1]来维护。screw 特点 简洁、轻量、设计良好。不需要 powerdesigner 这种重量的建模工具 多数据库支持 。支持市面常见的数据库类型 MySQL、Oracle、..

2020-07-30 09:25:25 256

转载 一次 SQL 查询优化原理分析(900W+ 数据,从 17s 到 300ms) 侵删

有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms(execution: 16 s 831 ms, fetching: 107 ms),按照下文的方式调整SQL后,耗时347 ms(execution: 163 ms, fetching: 184 ms);操作:查询条件放到子查询中,子查询只查主键ID,然后使用子查询中确定的主键关联查询其他的属性字段;原理:减少回表操作;-- 优化前SQLSELECT ...

2020-07-21 15:34:10 197

转载 一个基于 Spring Boot 的项目骨架 侵删

最近使用Spring Boot 配合 MyBatis 、通用Mapper插件、PageHelper分页插件 连做了几个中小型API项目,做下来觉得这套框架、工具搭配起来开发这种项目确实非常舒服,团队的反响也不错。在项目搭建和开发的过程中也总结了一些小经验,与大家分享一下。在开发一个API项目之前,搭建项目、引入依赖、配置框架这些基础活自然不用多说,通常为了加快项目的开发进度(早点回家)还需要封装一些常用的类和工具,比如统一的响应结果封装、统一的异常处理、接口签名认证、基础的增删改差方法封装、基础代码生成

2020-07-21 15:34:04 172

转载 实战篇,你不得不懂的Elasticsearch搜索引擎! 侵删

当前Spring Boot很是流行,包括我自己,也是在用Spring Boot集成其他框架进行项目开发,所以这一节,我们一起来探讨Spring Boot整合ElasticSearch的问题。本文主要讲以下内容:第一部分,通读文档第二部分,Spring Boot整合ElasticSearch第三部分,基本的CRUD操作第四部分,搜索第五部分,例子还没有学过Elasticsearch的朋友,可以先学这个系列的第一节(这个系列共三节),如果你有不明白或者不正确的地方,可以给我评论、留言

2020-07-21 15:33:57 391

转载 同事埋了个坑:Insert into select语句把生产服务器炸了 侵删

前言Insert into select请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现。通过在Baidu的海洋里遨游,他发现了可以使用insert into select实现,这样就可以避免使用网络I/O,直接使用SQL依靠数据库I/O完成,这样简直不要太棒了。然后他就被开除了。事故发生的经过由于数据数据库中order_today数据量过大,当时好像有700

2020-07-21 15:33:49 209

转载 微服务 2.0 技术栈选型手册 侵删

一、前言2014 年可以认为是微服务 1.0 的元年,当年有几个标志性事件,一是 Martin Fowler 在其博客上发表了 “Microservices” 一文,正式提出微服务架构风格;二是 Netflix 微服务架构经过多年大规模生产验证,最终抽象落地形成一整套开源的微服务基础组件,统称 NetflixOSS,Netflix 的成功经验开始被业界认可并推崇;三是 Pivotal 将 NetflixOSS 开源微服务组件集成到其 Spring 体系,推出 Spring Cloud 微服务开发技术栈。

2020-07-21 15:33:40 360

转载 面试:SpringBoot中的条件注解底层是如何实现的? 侵删

SpringBoot内部提供了特有的注解:条件注解(Conditional Annotation)。比如: @ConditionalOnBean、 @ConditionalOnClass、 @ConditionalOnExpression、 @ConditionalOnMissingBean等。 条件注解存在的意义在于动态识别(也可以说是代码自动化执行)。比如@ConditionalOnClass会检查类加载器中是否存在对应的类,如果有的话被注解修饰的类就有资格被Sp

2020-07-21 15:33:32 112

转载 一个故事讲完CPU的工作原理 侵删

上二年级的小明正坐在教室里。现在是数学课,下午第一节,窗外的蝉鸣、缓缓旋转的吊扇让同学们昏昏欲睡。此时,刘老师在黑板上写下一个问题:6324 + 244675 = ?小明抬头看了一眼,觉得这两个数字挺眼熟。他昨天翘课去网吧了,因此错过了刘老师讲的竖式计算加法。“同学们算一算这道题。”刘老师和蔼可亲地说道。小明盯着黑板懵逼。小学二年级的他面对这样一道世界级难题,束手无策。小明伸出了自己的左手,打算用一个古老而深邃的方法--掰手指--尝试一下。小明发现...

2020-07-16 15:32:15 184

转载 我们已经不用AOP做操作日志了! 侵删

以下文章来源于JAVA葵花宝典,作者努力减肥的胖子JAVA葵花宝典墙裂置顶,每天准时推送干货,SpringBoot/ SpringCloud/Dubbo/Docker /Linux /Mysql /Mybatis/MQ/大数据处理/中间件/中台技术!修Python的可关注Java老鸟Python学习日记前言用户在操作我们系统的过程中,针对一些重要的业务数据进行增删改查的时候,我们希望记录一下用户的操作行为,以便发生问题时能及时的找到依据,这种日志就是业务系统的操作日志。本篇我们来探.

2020-07-16 15:32:07 149

转载 Spring 的 Bean 生命周期,11 张高清流程图及代码,深度解析 侵删

1. 获取Bean 2. 创建Bean 2.1 创建Bean之前 2.1 真正的创建Bean,doCreateBean 3. destroy 方法跟销毁 Bean 4. 总结 在网上已经有跟多Bean的生命周期的博客,但是很多都是基于比较老的版本了,最近吧整个流程化成了一个流程图。待会儿使用流程图,说明以及代码的形式来说明整个声明周期的流程。注意因为代码比较多,这里的流程图只画出了大概的流程,具体的可以深入代码1. 获取Bean..

2020-07-16 15:31:59 127

转载 每个程序员都应该收藏的算法复杂度速查表 侵删

复杂度通常会使用大-O 记号来表示,比如快速排序的平均时间复杂度是 O(nlog(n))。虽然我是「理解派」,但是虽然每个算法/数据结构都理解了,不时仍有可能忘记具体某个算法/数据结构的复杂度(特别是在最好、最坏和平均情形下的复杂度)。因此制作一个速查表是蛮有必要的。动手前先看看是否已经有轮子是一个好习惯,果不其然,我找到了原作。http://bigocheatsheet.com/图例抽象数据结构的操作复杂度数组排序图操作堆操作大-O 复杂度曲线

2020-07-16 15:31:51 107

转载 如何设计一个牛逼的本地缓存 侵删

前言 考虑点 如何实现 总结 前言最近在看Mybatis的源码,刚好看到缓存这一块,Mybatis提供了一级缓存和二级缓存;一级缓存相对来说比较简单,功能比较齐全的是二级缓存,基本上满足了一个缓存该有的功能;当然如果拿来和专门的缓存框架如ehcache来对比可能稍有差距;本文我们将来整理一下实现一个本地缓存都应该需要考虑哪些东西。考虑点考虑点主要在数据用何种方式存储,能存储多少数据,多余的数据如何处理等几个点,下面我们来详细的介绍每个考虑点,以及该如何去实现..

2020-07-16 15:31:43 92

转载 图解 Spring 循环依赖,写得太好了! 侵删

# 前言Spring如何解决的循环依赖,是近两年流行起来的一道Java面试题。其实笔者本人对这类框架源码题还是持一定的怀疑态度的。如果笔者作为面试官,可能会问一些诸如“如果注入的属性为null,你会从哪几个方向去排查”这些场景题。那么既然写了这篇文章,闲话少说,发车看看Spring是如何解决的循环依赖,以及带大家看清循环依赖的本质是什么。# 正文通常来说,如果问Spring内部如何解决循环依赖,一定是单默认的单例Bean中,属性互相引用的场景。...

2020-07-16 15:31:36 187

转载 项目实践中的一些性能优化指南 侵删

作为一个程序员,性能优化是常有的事情,不管是桌面应用还是web应用,不管是前端还是后端,不管是单点应用还是分布式系统。本文从以下几个方面来思考这个问题:性能优化的一般性原则,性能优化的层次,性能优化的通用方法。本文不限于任何语言、框架,不过可能会用Python语言来举例。不过囿于个人经验,可能更多的是从Linux服务端的角度来思考这些问题。一般性原则依据数据而不是凭空猜测这是性能优化的第一原则,当我们怀疑性能有问题的时候,应该通过测试、日志、profillig来分析出哪里有问题,有的放矢,而

2020-07-16 15:31:28 145

转载 干掉 “final“ 侵删

Java 语言的每个关键字都设计的很巧妙,金雕玉琢,只有深度钻研其中,才知其中懊悔,本文带领大家一起深入理解 Java 内存模型之 final。与锁和 volatile 相比较,对 final 域的读和写更像是普通的变量访问。对于 final 域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个 final 域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。 初次读一个包含 final 域的对象的引用,与随后初次读这个 final 域,这两个操作

2020-07-16 15:31:20 98

转载 彻底理解 SpringIOC、DI,这篇文章就够了 侵删

前言你可能会有如下问题:1、想看Spring源码,但是不知道应当如何入手去看,对整个Bean的流程没有概念,碰到相关问题也没有头绪如何下手2、看过几遍源码,没办法彻底理解,没什么感觉,没过一阵子又忘了本文将结合实际问题,由问题引出源码,并在解释时会尽量以图表的形式让你一步一步彻底理解Spring Bean的IOC、DI、生命周期、作用域等。先看一个循环依赖问题现象循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,...

2020-07-16 15:31:13 95

转载 我的天,你工作5年了,连Java agent都不知道... 侵删

# 引言在本篇文章中,我会通过几个简单的程序来说明 agent 的使用,最后在实战环节我会通过 asm 字节码框架来实现一个小工具,用于在程序运行中采集指定方法的参数和返回值。有关 asm 字节码的内容不是本文的重点,不会过多的阐述,不明白的同学可以自己 google 下。# 简介Java agent 提供了一种在加载字节码时,对字节码进行修改的方式。他共有两种方式执行,一种是在 main 方法执行之前,通过 premain 来实现,另一种是在程序运行中,通过 attach a...

2020-07-16 15:31:02 149

转载 你这代码写得真丑,满屏的try-catch,全局异常处理不会吗? 侵删

# 背景软件开发过程中,不可避免的是需要处理各种异常,就我自己来说,至少有一半以上的时间都是在处理各种异常情况,所以代码中就会出现大量的try {...} catch {...} finally {...}代码块,不仅有大量的冗余代码,而且还影响代码的可读性。比较下面两张图,看看您现在编写的代码属于哪一种风格?然后哪种编码风格您更喜欢?丑陋的 try catch 代码块优雅的Controller上面的示例,还只是在Controller层,如果是在...

2020-07-15 08:56:25 166

转载 总结:被MySQL UTF8编码坑的惨痛教训... 侵删

最近遇到几个项目被MySQL的utf8编码坑,想起之前编码问题被坑的惨痛教训,记录一下,警示自己。曾几何时,每次建库都选utf8,觉得自己比那些用乱七八糟编码的人不知道酷到哪里去了。直到好多年前的某次课程设计做项目的时候,愉快的建了个用户表: CREATE TABLE `test_user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(32) DEFAULT NULL, ...

2020-07-15 08:56:10 399

转载 现在的学生太厉害了!一位同学冒着挂科的风险给大家写得 Spring Cloud 入门总结 侵删

马上要考试了!!!作为一个苦逼的在读大学生,又要面临半年一度的期末考试了,因为上课没听,我啥都不会,什么通信原理,单片机。。。饶了我吧!!!给你们看看我上课在干啥你就知道我为啥啥都不会了。上课笔记。。emmm,字比较丑????。我还记得那是一堂英语课,老师不让用电子设备,我只能手写我这篇文章的思路。。。所以,冒着期末要挂科的风险????,我也得把这篇文章写完,给大家分享知识,自己也能重新复习和认识一下Spring Cloud。我女朋友说,要是这篇文章能有 50

2020-07-15 08:55:56 200

转载 深入理解Spring的ImportSelector接口 侵删

ImportSelector接口是至spring中导入外部配置的核心接口,在SpringBoot的自动化配置和@EnableXXX(功能性注解)都有它的存在,关于SpringBoot的分析可以参考:深入理解SpringBoot的自动装配。一、关于ImportSelector接口packageorg.springframework.context.annotation;importorg.springframework.core.type.AnnotationMetadata;/**...

2020-07-15 08:55:22 196

转载 这 10 行比较字符串相等的代码给我整懵了,不信你也来看看 侵删

抱歉用这种标题吸引你点进来了,不过你不妨看完,看看能否让你有所收获。(有收获,请评论区留个言,没收获,下周末我直播吃**,哈哈,这你也信)补充说明:微信公众号改版,对各个号主影响还挺大的。目前从后台数据来看,对我影响不大,因为我这反正都是小号阅读量本身就少的可怜,真相了,(刚从交流群学会的表情)。先直接上代码:booleansafeEqual(Stringa,Stringb){if(a.length()!=b.length()){returnfa...

2020-07-15 08:55:15 104

转载 Java 代码精简之道 侵删

前言古语有云:道为术之灵,术为道之体;以道统术,以术得道。其中:“道”指“规律、道理、理论”,“术”指“方法、技巧、技术”。意思是:“道”是“术”的灵魂,“术”是“道”的肉体;可以用“道”来统管“术”,也可以从“术”中获得“道”。在拜读大佬“孤尽”的文章《Code Review是苦涩但有意思的修行》时,感受最深的一句话就是:“优质的代码一定是少即是多的精兵原则”,这就是大佬的代码精简之“道”。工匠追求“术”到极致,其实就是在寻“道”,且离悟“道”也就不远了,亦或是已...

2020-07-15 08:55:03 488

转载 Mybatis基础知识点:trim标签的使用 侵删

mybatis的trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 “where“、“set“以及“values(“ 等前缀,或者添加“)“等后缀,可用于选择性插入、更新、删除或者条件查询等操作。以下是trim标签中涉及到的属性:下面使用几个例子来说明trim标签的使用。1、使用trim标签去除多余的and关键字有这样的一个例子:<selectid="findActiveBlogLike"resultType="Blog"&gt...

2020-07-15 08:54:42 184

转载 JAVA 线上故障排查完整套路!牛掰! 侵删

线上故障主要会包括 CPU、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如 jstack、jmap 等工具也是不囿于一个方面的问题的,基本上出问题就是 df、free、top 三连,然后依次 jstack、jmap 伺候,具体问题具体分析即可。CPU一般来讲我们首先会排查 CPU 方面的问题。CPU 异常往往还是比较好定位的。原因包括业务逻辑问题(死循环)、频繁 gc 以及上下文切换过多。而最常见的往往是业务逻辑(或者框架逻辑)导

2020-07-15 08:54:34 148

转载 Redis + Tomcat + Nginx 集群实现 Session 共享 侵删

一、Session共享使用tomcat-cluster-redis-session-manager插件实现插件地址见:https://github.com/ran-jit/tomcat-cluster-redis-session-manager该插件支持Tomcat7、Tomcat8、Tomcat9或者直接在附件中下载(版本为2.0.2,2017-11-27日前最新版本)http://dl.iteye.com/topics/download/d9fffd9d-84dd-385b-b1

2020-07-15 08:54:25 126

转载 阿里问题定位神器 Arthas 的骚操作,定位线上BUG,超给力 侵删

公司有个渠道系统,专门对接三方渠道使用,没有什么业务逻辑,主要是转换报文和参数校验之类的工作,起着一个承上启下的作用。最近在优化接口的响应时间,优化了代码之后,但是时间还是达不到要求;有一个诡异的100ms左右的耗时问题,在接口中打印了请求处理时间后,和调用方的响应时间还有差了100ms左右。比如程序里记录150ms,但是调用方等待时间却为250ms左右。下面记录下当时详细的定位&解决流程(其实解决很简单,关键在于怎么定位并找到解决问题的方法)定位过程分析代码渠道系统是一个常..

2020-07-15 08:54:12 573

转载 深度好文,spring boot启动原理解析 侵删

我们开发任何一个 Spring Boot 项目,都会用到如下的启动类 1 @SpringBootApplication 2 public class Application { 3 public static void main(String[] args) { 4 SpringApplication.run(Application.class, args); 5 } 6 } 从上面代码可以看出,Annotation 定义(@Spring.

2020-07-14 16:39:15 129

转载 图解!微服务为什么一定要Zookeeper? 侵删

微服务中 Zookeeper 的应用及原理 一、背景 二、Zookeeper 的特性 1. 树状目录结构 2. 持久节点 (Persistent) 3. 持久有序节点 (Persistent_sequential) 4. 临时节点 (Ephemeral) 5. 临时有序节点 (Ephemeral_sequential) 6. 节点监听 (Wacher) 三、微服务中应用场景 1

2020-07-14 16:37:21 90

转载 面试官:你简历中写用过 Docker,能说说容器和镜像的区别吗? 侵删

Image Definition Container Definition Running Container Definition Image Layer Definition 全局理解(Tying It All Together) 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别。pasted_image_0.png当我对Dock..

2020-07-14 16:36:19 342

转载 30张图带你彻底理解红黑树 侵删

本文将通过图文的方式讲解红黑树的知识点,并且不会涉及到任何代码,相信我,在懂得红黑树实现原理前,看代码会一头雾水的,当原理懂了,代码也就按部就班写而已,没任何难度。阅读本文你需具备知识点:二叉查找树完美平衡二叉树事不宜迟,让我们进入正题吧。红黑树也是二叉查找树,我们知道,二叉查找树这一数据结构并不难,而红黑树之所以难是难在它是自平衡的二叉查找树,在进行插入和删除等可能会破坏树的平衡的操作时,需要重新自处理达到平衡状态。现在在脑海想下怎么实现?是不是太多情景需要考虑了?啧啧..

2020-07-14 16:34:39 163

转载 这么写参数校验(Validator)就不会被劝退了~ 侵删

为什么要用validator 实战演练 自定义参数注解 总结 很痛苦遇到大量的参数进行校验,在业务中还要抛出异常或者 不断的返回异常时的校验信息,在代码中相当冗长, 充满了if-else这种校验代码,今天我们就来学习spring的javax.validation 注解式参数校验.为什么要用validator javax.validation的一系列注解可以帮我们完成参数校验,免去繁琐的串行校验 不然我们的代码就像下面这样: //http://l...

2020-07-14 16:33:08 213

转载 Java : 对象不再使用时,为什么要赋值为 null ? 侵删

前言许多Java开发者都曾听说过“不使用的对象应手动赋值为null“这句话,而且好多开发者一直信奉着这句话;问其原因,大都是回答“有利于GC更早回收内存,减少内存占用”,但再往深入问就回答不出来了。鉴于网上有太多关于此问题的误导,本文将通过实例,深入JVM剖析“对象不再使用时赋值为null”这一操作存在的意义,供君参考。本文尽量不使用专业术语,但仍需要你对JVM有一些概念。示例代码我们来看看一段非常简单的代码:public static void main...

2020-07-14 16:31:54 101

转载 Spring Boot 多模块项目实践(附打包方法) 侵删

序言:比起传统复杂的单体工程,使用Maven的多模块配置,可以帮助项目划分模块,鼓励重用,防止POM变得过于庞大,方便某个模块的构建,而不用每次都构建整个项目,并且使得针对某个模块的特殊控制更为方便。接下来,本文将重点阐述SpringBoot在Maven环境的多模块构建过程。本项目传送门:https://github.com/yizhiwazi/springboot-socks/tree/master/springboot-integration一、创建聚合父工程1.首先使用 S

2020-07-14 16:30:53 92

空空如也

空空如也

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

TA关注的人

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