自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

F道人

二次元java技术宅

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

原创 Netty保姆级教程(一)IO 演变

Netty(一)IO详解文章目录Netty(一)IO详解@[toc]1. 内核态与用户态切换2. 基于 BIO 设计的 Socket 示例3. OS 指令上 BIO 阻塞验证系统调用strace 参数设置4. NIO代码示例总结下 BIO 与 NIO5. BIO、 NIO 的模型图6. IO 多路复用Select、poll 多路复用器的缺陷7. epoll 多路复用器epoll_createepoll_ctlepoll_waitepoll 中 OS 指令的过程8. NIO 之 Selector(选择器)

2021-05-13 22:54:27 342

原创 LeetCode常见经典算法——KMP算法

常见经典算法KMP算法参考:https://www.bilibili.com/video/BV1jb411V78H?from=search&seid=6567338116212695926关键字:有效回溯、最大公共前后缀长度、样本串的next数组(下一步回溯样本串的比较位置)类库中String类的indexOf();方法采用的KMP算法,常规方法——依次暴力遍历,如果不匹配回溯到母字符串下一位置继续进行比较!在这里存在一个问题,回溯到下一位置可能导致很多多余比较操作!例如下面示例:母串:

2021-01-19 17:11:47 2461 1

原创 LeetCode链表篇(一):常见简单题型

链表的一些简单题型反转链表链表中倒数第k个节点从尾到头打印链表判断链表中是否有环链表中环的起始点剑指Offer 24. 反转链表参考网址:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/示例代码:(双指针)/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next;

2020-11-04 15:15:44 272

原创 SpringCloud(五):Hystrix工作流程详解

Hystrix摘要服务降级服务熔断服务限流(资源隔离)同步等待:资源隔离、MQ解耦、不可用服务调用快速失败等。资源隔离通常指不同服务调用采用不同的线程池;不可用服务调用快速失败一般通过熔断器模式结合超时机制实现。Hystrix 解决同步等待导致的服务雪崩问题。高并发下,线程资源被某一服务抢用,导致其他服务也会等待线程资源释放才能获取到对应资源,从而导致资源获取变慢。资源隔离的两种形式线程池信号量服务降级springBoot启动类标注EnableHystrix注解@Hy

2020-09-16 22:32:39 389

原创 kafka基础学习(六):kafka 代码示例

kafka 代码示例生成者API在不同版本间无较大变动;消费者(Consumer)提供了两套API低版本(8.0版本及其以前)API高版本(8.0版本后)API两种API的优缺点:高版本Consumer API 优点:高级API写起来简单,易用。不需要自行去管理offset,API已经封装好了offset这块的东西,会通过zookeeper自行管理不需要管理分区,副本等情况,系统自动管理消费者断线后会自动根据上次记录在zookeeper中的offset接着消费消息。高版本Cons

2020-08-20 15:05:00 2053

原创 kafka基础学习(五):kafka如何保证数据可靠性和数据一致性

kafka如何保证数据可靠性和数据一致性数据可靠性下面从以下几个角度来介绍kafka如何保证数据的可靠性。Producter 往 Broker 发送消息Topic 分区副本Leader 选举1. Producer 往 Broker 发送消息ack机制:Kafka 在 Producer 里面提供了消息确认机制。也就是说我们可以通过配置来决定有几个副本收到这条消息才算消息发送成功。定义 Producer 时通过 acks 参数指定(在 0.8.2.X 版本之前是通过 request.requ

2020-08-20 14:59:54 2194

原创 kafka基础学习(四):kafka运行原理与文件存储机制

kafka运行原理与文件存储机制一:运行原理kafka中消息是以Topic进行分类的,生产者生产消息,消费者消费消息,都是面向Topic。Partition分为Leader和Follower两种角色,Producer和Consumer都是面向Leader生成消费消息,Follower做数据备份以及kafka高可用的保证(Leader宕机)。Leader和Follower 位于不同的节点。工作的只有Leader。Topic是逻辑概念,Partition是物理概念,用于存储数据,数据存储是

2020-08-20 14:57:59 214

原创 kafka基础学习(三):kafka常见命令集

kafka常见命令集kafka的命令行操作不常使用(运维除外),常用语kafka环境搭建成功后,来测试kafka是否能正常运行。参考:https://www.cnblogs.com/toutou/p/kafka_command.html一:Topic相关命令(bin/kafka-topics.sh)查看当前服务器中的所有topic命令格式bin/kafka-topics.sh --zookeeper ZK_IP:ZK_PORT --listZK_IP:ZK_PORT 为管理kafka的zk

2020-08-20 14:56:23 553

原创 kafka基础学习(二):安装说明文档

kafka安装手册非Docker安装集群规划hadoop102 hadoop103 hadoop104zk zk zkkafka kafka kafkajar下载下载地址 :http://kafka.apache.org/downloads.html3. 安装部署1)解压安装包tar -zxvf kafka_2.11-0.11.0.0.tgz -C /opt/module/2)修改解压后的文件名称mv kafka_2.

2020-08-20 14:53:43 192

原创 kafka基础学习(一):基础知识

kafka基础知识kafka是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。结构特点:分布式支持分区(partition)多副本基于z

2020-08-20 14:49:43 236

原创 Netty(一):BIO、NIO基础知识详解

IO相关知识学习IO模型如上图所示,大致可以总结出BIO与NIO两种IO模型的特点。1. BIO(Blocking IO)传统的IO模型,所有类与接口在java.io包下。同步阻塞:一:等待连接,二:等待响应,线程会在这两点出阻塞中,同事一,二是同步进行,进一步降低了效率。JDK1.4及其以前版本的唯一选择,程序简单易于理解。适用于连接数少且固定的架构中,并发局限于项目内部。BIO工作机制server端创建SocketServer,并创建线程来维持通讯。client端创建sock

2020-07-09 23:36:11 292

原创 SpringCloud(四):Ribbon与OpenFeign详解

Ribbon与OpenFeign详解前言:本篇文章主要将介绍Ribbon与OpenFeign是什么?用来做什么?如何实现?实现其功能的大致过程?项目中如何使用?这几块来进行对Ribbon与OpenFeign的学习,不会涉及太多源码部分,帮助道友对其有一个基础认识。一:什么是Ribbon?Ribbon 是Netflix公司开源的一个负载均衡的项目,是一个客户端负载均衡器,运行在客户端上。因此,其可以很好地控制HTTP和TCP客户端的一些行为。 Feign已经默认使用了Ribbon。项

2020-07-09 23:32:11 1344

原创 SpringCloud(三):SpringBoot集成Eureka的项目配置

SpringBoot集成Eureka首先第一点,查看Eureka官方,看下springBoot与Eureeka版本问题。防止版本不兼容问题Finchley 兼容Spring Boot 2.0.x,不兼容Spring Boot 1.5.xDalston和Edgware 兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.xCamden 兼容Spring Boot 1.4.x,也兼容Spring Boot 1.5.xBrixton 兼容Spring Boot 1.3.x,

2020-06-24 00:23:53 1253

原创 SpringCloud(二):Eureka服务注册与发现

Eureka服务注册中心前言因为Eureka2.x在2018年停更,所以一般情况下继续研究Eureka的意义不大,由于道人本公司现在还有部分项目在使用Eureka,所以道人写下一些总结比较浅显的一些知识,应对平时项目开发。服务注册方面作为其替代品zookeeper,道友们可以去道人zookeeper专栏中去看看。本篇博文纯理论,关于Eureka在项目中如何使用,会在下篇文章中详细介绍。Eureka的作用在SpringCloud中,其实就可以简单的理解为服务注册中心。至于服务注册中心,你也可以理

2020-06-24 00:23:09 138

原创 SpringCloud(一):五大基本组件

SpringCloud基础知识关于微服务的发展历程,分布式的优缺特点,前面文章已经有说过;这里简单再介绍下大致过程。SpringCloud的基础功能:服务治理: Spring Cloud Eureka客户端负载均衡: Spring Cloud Ribbon服务容错保护: Spring Cloud Hystrix声明式服务调用: Spring Cloud FeignAPI网关服务:Spring Cloud Zuul分布式配置中心: Spring Cloud Config分布式架构-C

2020-06-23 07:30:06 452

原创 Hive(三):DDL操作

Hive的DDL(data define language)操作创建表与HDFS文件的映射关系两种方式:一:HDFS文件系统中创建的Hive表包路径下存放对应的HDFS文件。二:创建Hive表时,使用location来指定映射的外部HDFS文件。一些库的操作1)创建数据库create database name;2)切换库use name;3)查看库列表show databases;show databases like ‘test*’;4)查看数据库的描述信息

2020-06-09 21:31:25 276

原创 Hive(一):基础知识最全总结

Hive基础一、基础概念Hive:facebook实现并开源的Hadoop的一个数据仓库工具,底层数据存储依赖于Hadoop的HDFS分布式文件存储上,将结构化数据映射到一张数据库表中,并提供HQL的查询功能,HQL的本质在于将HQL解析,转换为MapReduce任务进行数据的分析。概括下:Hive就是基于HDFS进行数据存储,HSQ基于MapReduce任务进行数据分析的Hadoop数据仓库工具。HQL请求Hive处理转化为MapReduceMapReduce任务执行MapReduce 所面临的

2020-06-08 21:38:31 1100

原创 Zookeeper(三):单机版与集群安装(Docker版)

Zookeeper的安装简介ZK的部署主要有三种方式:一,单机版;二,伪集群;三,集群部署。单机模式:宕机导致服务不可用(单点问题)。伪集群模式:在同一台机器中,使用不同端口模仿不同服务器的部署方式;多用于演示功能,实际生产中仍然存在单机模式的问题。集群模式:实现了ZK服务的高可用,节点宕机不影响整个服务的运行(宕机节点数小于半数)。注意事项:ZK节点数最佳为大于等于3的奇数,且节点数不易过多,过多节点情况下,选举与数据同步会影响ZK整个服务的性能。原因参见:道人的上一篇文章ZK的基本原理

2020-05-26 00:51:23 480

原创 Zookeeper(二):基本原理详解

基本原理因为只是做下基础知识的讲解,加深对ZK的了解,所以,下面只讲下ZK的两个重要机制监听机制选举机制(ZK集群)一:监听机制道人画了下简图(MarkDowm画简图,真香!):创建监听通知监听对象发生变化创建监听通知监听对象发生变化注册,修改服务client1zk_serviceclient2serviceZooKeeper 提供了分布式数据发布/订阅功能,一个典型的发布/订阅模型系 统定义了一种一对多的订阅关系,能让多个订阅者同时监听某一个主题对象,当 这个主题对象自身状态变化时,会

2020-05-25 00:02:53 431

原创 Zookeeper(一):基本概念讲解

Zookeeper详解一:基本概念下面是百度百科的解释:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper包含一个简单的原语集,提供Java和C的接口。ZooKeeper

2020-05-24 23:56:26 429

原创 LeetCode数组篇(七):数组中的K-diff数对

题目给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对。这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k.示例 1:输入: [3, 1, 4, 1, 5], k = 2输出: 2解释: 数组中有两个 2-diff 数对, (1, 3) 和 (3, 5)。尽管数组中有两个1,但我们只应返回不同的数对的数量。示例2:输入:[1, 2, 3, 4, 5], k = 1输出: 4解释: 数组中有

2020-05-24 00:23:17 118

原创 LeetCode数组篇(六):盛最多水的容器

题目:盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例:输入:[1,8,6,2,5,4,8,3,7]输出:49

2020-05-22 23:23:04 193

原创 Sonar代码扫描常见规则总结

Sonar代码扫描常见规则最近公司项目交付,交付前集成,功能,性能,安全种种测试工作就来了,由于测试离职,被抓壮丁,兼职起测试修改工作。小公司,平时敲(ctrl+c)代码(ctrl+v)时,同事也不在意一些代码规范,以及一些常见的规约要求(阿里规约),所以代码扫描一地bug,漏洞,以及坏味道,道人委实因为这恨加了几天班。(心疼道人3秒)因此,如果项目交付需要进行代码质量扫描等工作,一定要将代码规范写进公司代码规范中,并严格遵守。程序员啦,代码提交时,idea编辑工具的话,可以使用sonarLine插

2020-05-22 09:46:22 10612

原创 LeetCode数组篇(五):最大正方形问题(动态规划)

题目在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4两种思路:一:暴力筛查计算出每一个点(以该点为正方形的左上点)最大正方形面积。代码这里不写了,时间复杂度过高。第二种思路:动态规划创建同样大小的二维数组int[][] dp,数组存放的值为dp[i][j] 表示以该点为正方形右下角(或者说该点左上方存在最大正方形)的最大正方形边长

2020-05-21 23:05:23 916

原创 LeetCode数组篇(四):最佳观光组合

题目给定正整数数组A,A[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的距离为j - i。一对景点(i < j)组成的观光组合的得分为(A[i] + A[j] + i - j):景点的评分之和减去它们两者之间的距离。返回一对观光景点能取得的最高分。示例:输入:[8,1,5,2,6]输出:11解释:i = 0, j = 2, A[i] + A[j] + i - j = 8 + 5 + 0 - 2 = 11提示:2 <= A.length <= 500

2020-05-20 23:25:43 205

原创 Nginx(四):Nginx常见应用示例

Nginx常见应用Nginx 最常见的几种应用场景反向代理负载均衡(反向代理某个应用服务器集群)动静分离(可以作为静态服务器来使用)Nginx集群部署(实现高可用)上述应用都会牵扯到nginx.conf配置文件的配置,具体配置详解参见道人另一篇文章。一:反向代理示例演示(Nginx服务器反向代理两个tomcat服务)Nginx服务器部署在192.168.32.133虚机上web服务器(道人配置的两台虚机)192.168.32.134 上布置tomcat1(端口8080)192

2020-05-20 22:22:36 540

原创 LeetCode数组篇(三):买卖股票的最佳时机

题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。示例

2020-05-20 00:17:12 263

原创 Nginx(三):Nginx安装部署

Nginx安装部署这里会介绍两种部署方式,1:非Docker部署;2:Docker部署。一:非Docker部署Nginx 安装系统平台:CentOS release 6.6 (Final) 64位。一、安装编译工具及库文件yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel二、首先要安装 PCREPCRE 作用是让 Nginx 支持 Rewrite 功能。1、下载 PCRE 安装包,下载地址

2020-05-19 23:08:36 227

原创 Nginx(二):配置文件详解

Nginx配置文件配置文件:分为3大块全局块: 进行全局配置 核心配置(worker_processes 1;)events块: 进行工作模式和连接设置http块:设置Nginx实现反向代理,负载均衡,动静分离配置。#运行用户user www-data; #启动进程,通常设置成和cpu的数量相等worker_processes 1;#全局错误日志及PID文件error_log /var/log/nginx/error.log;pid /var/run/

2020-05-19 23:06:39 138

原创 Nginx(一):基础概念详解

Nginx基础知识前言:本片博文,道人会介绍下Nginx的主要作用,地位,主要应用,以及延伸的特点的解释。详细原理,配置文件以及项目中如何使用(范例)会在后续文章中讲到。一:什么是Nginx?百度百科解释如下:Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事

2020-05-19 23:05:12 326

原创 LeetCode数组篇(二):船依次运货物问题(贪心+二分查找)

贪心算法以及二分查找的运用感悟:思考问题角度要进行转化,无思路时,转化下着眼点!题目:传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。传送带上的第 i个包裹的重量为weights[i]。每一天,我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。返回能在 D 天内将传送带上的所有包裹送达的船的最低运载能力。示例 1:输入:weights = [1,2,3,4,5,6,7,8,9,10], D = 5输出:15解释:船舶最低载重 15 就能够在 5

2020-05-19 10:45:04 1462

原创 LeetCode数组篇(一):数组中存在多少对数之和能被60整除

题目:在歌曲列表中,第 i 首歌曲的持续时间为 time[i] 秒。返回其总持续时间(以秒为单位)可被 60 整除的歌曲对的数量。形式上,我们希望索引的数字 i 和 j 满足 i < j 且有(time[i] + time[j]) % 60 == 0。示例 1:输入:[30,20,150,100,40]输出:3解释:这三对的总持续时间可被 60 整数:(time[0] = 30, time[2] = 150): 总持续时间 180(time[1] = 20, time[3] = 10

2020-05-18 00:19:53 373

原创 Mybatis(一):基础知识详解

Mybatis基础知识与实践由于公司,对Mybatis进行了封装,平时业务代码也写的比较多,赶到面试时,Mybatis相关知识忘记地差不多了,现在就从一个有相关java基础的程序猿的角度,来看看Mybatis该如何回顾?简介下自己回顾一个知识的思路:第一设计思想是什么?目标是解决程序开发的那些痛点?第二:核心概念是什么?怎么解决这些问题?给程序开发带来了那些好处?同类型的软件有没有?程序开发中如何进行选择?第三:核心模块(组成)是什么?分别有什么用?有兴趣的还可以研究下底层原理是什么(这一部分看

2020-05-17 22:56:50 635

原创 LeetCode(一):二叉树最小深度,二维平面多点共线个数

LeetCode刷题(一)道人现在在LeetCode上刷题,争取日更,同时也会更新一些数据结构的相关知识。希望对各位道友有所帮助。道人最近生活,工作都有很多不顺之处,也很苦恼,技术上也想有所突破,但是越发觉得自己不会的不懂的很多很多,各种压力接踵而来,但是道人我还是坚信所有付出,总会看到收获,努力总会使生活越来越好!现在道人在刷LeetCode,努力提升算法能力,一年后的今天,再来看看这一年的变化与成长。题型一:question:求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径

2020-05-17 00:30:18 249

原创 Dubbo(一):基础知识详解

Dubbo基础知识一:基本概念软件架构的发展过程单体架构-----垂直架构-----SOA架构-----微服务架构单体架构:(All In One)所有的服务集中在一个应用,扩展时需要横向扩展整个系统(成本较高)。优点:适用于小型项目,开发部署简单易用缺点:大型项目不易开发与维护;只能使用一种开发语言;扩展成本高垂直架构:根据业务进行整个应用的切割,拆成几个互不影响的应用。举例说明下:一个系统包含用户管理,订单模块,物流模块,垂直架构就是,将系统根据业务分为用户管理和订单模块,用户

2020-05-16 21:47:49 992

原创 Spring(五):事务管理

Spring中事务详解一:事务的基本特性(ACID)原子性(Atomicity): 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用;一致性(Consistency): 执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的;隔离性(Isolation): 并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的;持久性(Durability): 一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该

2020-05-16 21:42:05 278

原创 Spring(四):SpringMVC知识详解

SpringMVC详解一:MVC模式MVC是 model、view、和controller的缩写,分别代表web应用程序中的三种职责:model-模型:用于存储数据以及能处理用户请求的业务逻辑view-视图:向控制器提交数据,显示模型中的数据controller-控制器:根据视图提出的请求,判断将请求和数据交给哪个模型处理,处理后的有关结果交给哪个视图更新显示二、SpringMVC模型SpringMVC其实就一种基于Servlet的MVC模型:模型:一个或多个javabean对象,用于

2020-05-16 00:02:37 551

原创 Spring(三):JavaBean的生命周期

JavaBean的生命周期一:基本概念bean 就是由IOC 容器初始化、装配及管理的对象。Spring中的bean默认都是单例的,那么单例Bean在多线程程序下如何保证线程安全呢?Spring的单例是基于BeanFactory也就是Spring容器的,单例Bean在此容器内只有一个,Java的单例是基于 JVM,每个 JVM 内只有一个实例。所以非分布式服务情况下,单例Bean可以保证线程安全。二:Bean的作用范围创建一个bean定义,其实质是用该bean定义对应的类来创建真正实例的“配方”

2020-05-15 00:00:42 5120 1

原创 Spring(二):基础学习之AOP

AOP面向切面编程,什么是切面?举个栗子:业务逻辑中有很多重复性代码,比如说记录日志,性能检测等,而 每一个业务逻辑都有类似代码造成大量代码冗余;为了解决这一问题,第一进行重复代码的纵向抽取(提取出相同代码封装成类);但是该方式在业务代码中还是会存在大量类调用的代码重复,所以提出了横向切割的方式来进行。将类似的业务代码抽取到独立的模块中,那么怎么使我们横切出来的模块功能织入业务逻辑中,这就是AOP解决的问题。概括下:面向切面编程,其实讲分散在不同业务逻辑中的相同代码,横向切割出来,形成单独的模

2020-05-13 23:38:42 130

原创 Spring(一):基础学习之IOC

Spring Ioc与AOP相关知识总结1. 什么是 Spring 框架?Spring 是一种轻量级开发框架,旨在提高开发人员的开发效率以及系统的可维护性。核心模块:(项目中会使用到)Spring Core: 基础,可以说 Spring 其他所有的功能都需要依赖于该类库。(核心容器)主要提供 IoC 依赖注入功能。Spring Aspects : 该模块为与AspectJ的集成提供支持。...

2020-05-07 20:56:01 188

空空如也

空空如也

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

TA关注的人

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