自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java中几种保障线程安全的设计技术

说明:以下我主要从面向对象设计的角度出发介绍几种保障线程安全的设计技术,这些技术可以使得我们在不必借助同步锁的情况下保障线程安全,这就避免锁可能导致的问题及其资源的开销。文章目录一、变量定义为局部变量二、无状态(数据)对象三、不可变对象(final)四、构建线程私有对象一、变量定义为局部变量JVM里规定,Java运行数据区可以划分为以下五部分:线程私有:Java虚拟机栈、本地方法栈、程序计数器线程共享:堆空间、方法区(非堆)对JVM不太了解的朋友,可以看看我的这系列文章1、Java虚拟机栈:.

2020-09-02 11:09:49 12420 2

原创 多线程中wait()、sleep()、notify()和notifyAll()方法异同点【面试】

现在面试基本上都会被问及到多线程,就有很高概率问到wait() 和 sleep() 这两者的区别1、wait()、sleep() 方法相同点(1)都是对线程的操作;(2)都需要抛异常; (这一点我遇到很多人答错,记住这两者都会抛异常)(3)都会让当前运行线程进入阻塞状态。2、wait()、sleep() 方法不同点(1)使用位置不同: wait() 方法必须在同步代码中,sleep() 则不需要;(2)申明位置不同: wait() 方法是 Object类 中的方法,sleep() 方法是 T.

2020-08-17 07:44:53 2516 5

原创 你真的知道HashMap与Hashtable的区别与关系吗?【底层讲解】

一、简介及相同点1、产生时期Hashtable是Java最早版本(JDK1.0)就发布的一种提供键值映射(Key-Value)的数据类型,而HashMap产生于JDK1.2。虽然Hashtable比HashMap出现的早一些,但是现在Hashtable基本上已经被弃用了。而HashMap已经成为应用最为广泛的一种数据类型了。造成这样的原因一方面是因为Hashtable是线程安全的,效率比较低。另外Hashtable没有遵循驼峰命名法,不是HashTable2、==简介=(区别中都有详细介绍)(1

2020-08-07 01:53:45 12896 3

原创 聊一聊Spring中@Transactional注解及其失效的七种场景

文章目录一、事务(基于AOP)二、@Transactional介绍三、@Transactional失效场景说明:当我准备写我知道的那几个场景时,我发现有人比我写的更好,关键是好得多,于是我就用了这位博主的文章,由于不是一个平台我就直接将有些内容复制加以修改,感谢这位博主!他地址:https://www.cnblogs.com/frankyou/p/12691463.html一、事务(基于AOP)事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两

2020-08-04 18:41:35 15221 1

原创 分析使用spring @transactionl事务注解之后注入service报错的问题

文章主要内容来源于:https://blog.csdn.net/wylkl00/article/details/91863611首先还原一下问题这边我开发的一个service类 :ContractProjectFlowServiceImpl,和它的接口 :ContractProjectFlowService。然后同事在他自己的类里面是这么注入的:@Autowiredprivate ContractProjectFlowServiceImpl projectFlowService;直接注入的实现

2020-08-04 00:51:31 14133 5

原创 聊一聊Spring IOC注解自动装配@Autowired @Qualifier @Resource

1、@Autowired默认按照类型装配,默认情况下它要求依赖对象必须存在值,如果允许为null,可以设置它required属性为false。属性:required , 是-个boolean类型的,默认true(1)required=true : 表示引用类型赋值失败,程序报错,并终止执行(建议使用,有错误可以报错)。(2)required=false :引用类型如果赋值失败,程序正常执行 ,引用类型是null演示@Autowired:2、如果我们想使用按照名称装配,可以结合@Qualifie.

2020-07-31 23:00:59 14579

原创 Java对象头的内部结构(new Object这个对象里面到底有什么)及锁状态信息【图文】

1、创建了Customer()实例 和 Account()实例2、对象头里包括:运行时元数据、类型指针、实例数据、对齐填充① 运行时元数据里又包括:哈希值(HashCode)、GC分代年龄、锁状态标志哈希值:它是一个地址,用于栈对堆空间中对象的引用指向,不然栈是无法找到堆中对象的GC分代年龄:记录幸存者区对象被GC之后的年龄age,,一般age为15之后下一次GC就会直接进入老年代锁状态标志:记录一些加锁的信息② 类型指针:是对方法区中类元信息的引用③ 实例数据:真实记录一个对象包含的数据.

2020-07-22 10:51:22 5576 2

原创 七大经典垃圾回收器篇+部分调优 不会让你失望(两万字)【图文】

文章目录一、垃圾回收器分类二、评估GC的性能指标三、吞吐量 VS 暂停时间四、垃圾回收器发展史五、七大经典的垃圾回收器一、垃圾回收器分类1、按垃圾回收线程数分,可以分为串行垃圾回收器和并行垃圾回收器。(1)串行回收指的是在同一时间段内只允许有一个CPU用于执行垃圾回收操作,此时工作线程被暂停,直至垃圾收集工作结束。➢在诸如单CPU处理器或者较小的应用内存等硬件平台不是特别优越的场合,串行回收器的性能表现可以超过并行回收器和并发回收器。所以,串行回收默认被应用在客户端的Client模式下的JVM中。6

2020-07-20 17:05:11 15683 2

原创 看完面试就够了-- JVM垃圾回收篇(Garbage Collection)三万字【图文并茂】

文章目录一、基础部分二、垃圾标记阶段引用计数算法(Java未使用)可达性分析算法(Java使用)三、对象的finalization机制一、基础部分1、什么是垃圾(Garbage)呢?垃圾:是指在运行中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。2、为什么需要GC(垃圾回收)呢?(1)如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占的内存空会一直保留到应用程序结束,被保留的空间无法被其他对象使用。甚至会导致内存溢出(2)对于一个高级语言来说,如果不进行GC,内存迟早都会被消耗完

2020-07-18 23:31:09 7369 13

原创 面试篇--String字符串整理(底层角度分享)【完整版】

文章目录一、String的基本特性二、String 的内存分配三、String 的基本操作四、String 字符串拼接操作五、intern()方法的理解一、String的基本特性1、String:字符串,最常见的两种创建方式① String str1 = “qingdianguanzhu” ; //字面量定义的方式,数据存储于字符串常量池中② String str2 = new String (“hello”) ;2、String 底层声明为 final 的,也就意味着不可以被继承,还不可变3

2020-07-18 01:36:03 15852 5

原创 Java中创建对象的六个步骤 细分后(new关键字)对象头详细介绍

要看的懂对象的创建过程,首先你得有对Java虚拟机和Java基础以及JUC很是熟悉,比如类的加载过程,CAS、多线程、JVM的GC等等首先好看一个图,我大概会根据图中的内容来分享这六个步骤(其实几个步骤不重要,只要包括的内容都在就行):可以看完这个图就懵了,以下是创建对象的六个步骤:1、判断是否能在常量池中能找到类符号引用,并检查是否已被加载、解析、初始化(即判断类元信息是否存在)如果没有则在双亲委派模式下,使用当前类加载器以ClassLoader + 包名 + 类名为Key进行查找对应的.cl.

2020-07-16 22:31:39 8474

原创 深解Java虚拟机(JVM)内存结构各部分总结【三层划分】

文章部分图形来源于尚硅谷,内容仅为个人对JVM的理解,如有错误请批评指正1、第一层:Class文件由类装载子系统(类加载器Class Loader)加载进内存,有三个过程包括加载、链接、初始化。其中链接过程有验证、准备、解析子过程。2、第二层:运行时数据区包括:线程共享区域:方法区(落地实现jdk7永久代,jdk8元空间)、堆线程私有区域:虚拟机栈、本地方法栈、程序计数器3、第三层:执行引擎、本地方法接口(本地方法库)第一层一、过程1、加载:通过类的全限定名来获取定义此类的二进制流;在.

2020-07-15 18:00:26 6357 8

原创 IDEA工具连接远程服务器主机快速操作与上传文件

Java开发人员都知道,Intellij IDEA是一款十分强大的工具,它不但可以方便开发,还可以用来连接远程服务器。下面我来介绍一下,今天的发现。用IDEA工具连接远程服务器并对其文件进行增删改查是真的方便。当然要是要在服务器上执行复杂命令,而不是简单操作文件,那您还是使用像XShell或finalShell这样的连接工具。步骤:①连接服务器 -> ② 直接操作文件-> ③ 提交上传,便对服务器上的文件进行了更新1、打开IDEA,打开远程连接工具;2、此时会弹出 Remote Hos

2021-07-12 18:04:05 7601 7

原创 Linux上tomcat配置http2和安全访问https协议

文章目录一、准备:二、windows 系统上配置三、Linux 系统上配置一、准备:1、Tomcat版本要求:Tomcat8.5 就是支持Http2协议的规范的,现在Tomcat新版本是9。2、前置知识:要支持Https(简单理解就是 Http + SSL/TLS),需要去生成证书才可以。证书生成工具有很多,有商用的有开源免费的,免费的比如有OpenSSL和JDK自带的工具等。以下我用JDK自带的证书生成工具去生成证书。其他知识我就不在这儿多说。下面开始在 windows 上和 Linux 双系统上

2021-04-25 20:08:37 3569

原创 You do not have permission to push to protection branch‘master‘

You do not have permission to push to protection branch ‘master’报错原因:是因为你没有推送当前项目代码到主分支(master)的权限前提条件,你已经再本地初始化仓库,并已经与远程仓库进行SSH公钥免登录验证过(建议)假如你是该项目的创建者是不会出现这种问题的问题解决:所以这时开通推送代码到master分支的权限即可。开通权限步骤如下:说明:你可以让项目的创建着或者管理员给你开通该项目的管理员身份,也就是让你也成为该项目的管理员,这样

2021-03-29 12:11:16 7439

原创 Linux中yum源CentOS8.3安装MySQL5.7详细教程

演示环境:Linux CentOS 8.3.2011前提:你的Linux环境中要有yum源,使用命令yum --version 测试一下,没有就安装一下即可文章目录一、检查系统环境二、下载并安装MySQL三、配置MySQL五、在防火墙中添加3306端口六、修改配置文件编码7、远程连接8、客服端连接9、常用命令10、更新MySQL一、检查系统环境1、检查Centos版本cat /etc/redhat-release2、删除之前安装过MySQL,确保这三个命令都没有查询出任何信息rpm -q

2021-03-04 20:22:29 7753 8

原创 CentOS7和 8配置阿里云yum源和epel源

首先先要确定你的Linux 是不是使用的 CentOS 8及以上的版本,是的话继续往下看:1、查看 CentOS版本命令:cat /etc/redhat-release2、进去 yum.repos.d 目录,编辑标记的三个文件信息。 cd /etc/yum.repos.d3、编辑文件一:CentOS-AppStream.repo使用vim进入编辑文件,先按 i 键或 a 键进入编辑模式,添加完成后,按Esc键退出编辑模式,最后在英文状态下输入 :wq 保存并退出文件。vim CentOS

2021-03-04 15:17:49 3545 1

原创 docker设置国内阿里云、网易等镜像教程没有/etc/docker/daemon.json解决

引言:安装 Docker 引擎之后 默认是不存在 /etc/docker/daemon.json 配置文件的,所以需要手动创建这个daemon.json文件。演示环境:Linux centos 7发行版,docker 版本:Docker version 20.10.4官网配置:https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file1、进入docker文件夹创建daemon.json文

2021-02-28 13:25:53 12036 1

原创 tomcat启动java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory

一下午的时间就被这报错给浪费了,一个奇奇怪怪的报错,可能只有千分之一的人才会遇到吧,我很幸运?tomcat 9 运行 web 项目报错截图:tomee 执行包启动报错截图:tomee 源码运行报错截图:这个错误会导致你的 tomcat 、tomee 启动不起来,执行 startup.bat 闪退 ,总之与tomee 相关的项目都是执行报错,但是 java 环境是可以的,也就是执行cmd 执行 java、javac、Java -version 这些命令是没有什么问题。我的解决办法:重装 JDK

2020-12-28 21:35:28 3069

原创 Tomcat源码学习记录

一、官网下载Tomcat 的源码:1、地址:http://tomcat.apache.org/ 左侧 Download Tomcat 7,在网页最下面下载Tomcat源码;2、下载完成后打开 , 选择File->Open->选择tomcat的源码目录

2020-11-13 14:47:21 11110 13

原创 GitHub到底该怎么高效的搜索到项目

2020年的你,是否会在GitHub上去使用一些有效搜索命令呢?假如你又记不住了,请继续往下阅读(文末有小彩蛋):文章目录一、GitHub上常见的名词含义:二、in 关键词限制搜索范围三、stars和fork的数量过滤四、awesome加强搜索五、键盘 T 实现项目内搜索六、使用 #L 高亮显示指定的代码行七、同性网站上找到对的人一、GitHub上常见的名词含义:访问GitHub官网:https://github.com/按键盘 s 键直接进入搜索框状态:随便点击一个项目进去会查看到以下名词:

2020-10-29 22:01:58 8386

原创 Linux docker中elasticsearch安装ik分词器插件(解决重启失败)

首先说一下:ik 分词器是安装在 docker 容器中的 elasticsearch 镜像的插件中的,文章步骤其实不多,不要被吓到。我的环境:OS :Linux centos 7.7 (阿里云)docker : Docker version 19.03.8, build afacb8belasticsearch : version 6.8.5ik : version 6.8.5 (与elasticsearch 对应)kibana : version 6.8.5文章目录一、下载 ik

2020-10-19 22:10:34 11988 10

原创 cnpm下载安装失败问题解决

cnpm 安装失败,个人总结原因:1、Node.js 的版本问题:个人觉得这很重要,官方说当前 v12 是为稳定版本,但是我使用 v12 就会报各种莫名其妙的错误,要是你在使用过程中出现各种问题的话,个人建议去彻底卸载掉 Node.js 下载低版本 Node.js ,推荐使用 V10 版本;2、当前网络有问题:我之前就遇到过,相同的安装方式,同一个电脑环境,换了一个网络就好使了;3、安装的方式不对:安装 cnpm 正确的方式我觉得应该是使用管理员的身份打开 cmd ,然后再执行有淘宝镜像的下载 cnp

2020-10-09 10:38:59 38257 4

原创 nacos 各个版本百度网盘快速下载地址及启动关闭命令

1、直接打开 GitHub 就可以使用百度网盘下载,地址:https://github.com/alibaba/nacos(或者打开 github 搜索 nacos, alibaba第一个 )2、找到 Download 通过百度网盘下载:3、跳转到百度网盘:要是觉得百度网盘下载资源还是慢的话,可以试试这样设置:https://blog.csdn.net/qq_43012792/article/details/106940037有用点个关注,手留余香!???? ???? ????.

2020-10-07 22:07:18 13602 4

原创 总结人人开源前端renren-fast-vue项目npm install报错

前期准备: 先安装完成 Node.js 这是必须的环境, Node.js 版本的话建议安装 V10 的,尽力少踩坑。                   下载 Node.js V10 版本的安装包地址:https://blog.csdn.net/qq_43012792/article/details/108921387

2020-10-04 20:21:00 7727 12

原创 如何指定下载各个版本的 Node.js(包括V10版本)

点击这个地址可以浏览到 Node.js 的所有版本(个人不建议使用最新版本):https://nodejs.org/en/download/releases/向下翻,选择你需要的版本,选择好了直接点击 Downloads 进行版本系统选择(演示下载 V10):.msi 是安装包,下载安装包即可(windows):下载之后直接傻瓜式安装即可。有用点个关注,手留余香! ???? ???? ????...

2020-10-04 19:15:07 39745 2

原创 Error:(15,36) java: 程序包javax.validation.constraints不存在

直接看报错(今天在使用人人开源的 renren-fast后台项目时,报这个错误了):错误原因:SpringBoot 新版本没有自动导入validation 程序包解决办法:我们只需要在当前项目的 pom.xml 中手动添加validation 依赖即可:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-val

2020-10-04 15:52:39 14262 7

原创 VSCode下载安装及多款常用插件介绍

Visual Studio Code 现在很多开发工程师都再用,它的有点就是体积小,占用内存也很小,对插件的扩展是很丰富的,也很轻量级等等,我个人是很喜欢这款开发工具的,下面来下载它,并且介绍它的一些常见插件。一、下载安装 Visual Studio Code官方网站免费下载地址:https://code.visualstudio.com/由于是国外的网站有时会打开很慢,多试几次。下载好了,直接一步步安装即可,然后就自动打开软件。要是觉得字体大小,可以设置以下字体大小(重启生效):进入设置

2020-10-03 11:43:18 14109

原创 数据卷详解和mysql redis在docker中映射宿主机文件启动

这么久了我还是没有记住这个长长的命令,所以今晚就记录一下,以后就可以直接复制运行了docker 中 MySQL运行1、直接开启使用命令 systemctl start docker 先运行 docker 容器,然后在直接如下命令运行 MySQL 镜像:docker run -p 3306:3306 --name mysql_name \-v /mydata/mysql/log:/var/log/mysql \-v /mydata/mysql/data:/var/lib/mysql \-v /my

2020-10-02 23:53:38 10333 3

原创 spring-boot邮件发送功能演示(163邮箱与QQ邮箱互发)

背景:使用 Spring Boot 发送邮件,演示的邮箱为 163邮箱与QQ邮箱,两者可以实现互发邮件。问题:自己可以实现一下 QQ邮箱 发 QQ邮箱,163发163,是什么样的。演示 :163 邮箱向 QQ 邮箱发送邮件,两者的原理是一样的,原理如下图:一、准备邮箱阶段:1、登陆163邮箱,然后开启 pop 协议。2、发送短信开启 POP;3、复制授权密码;4、你若要是使用 QQ邮箱作为主机发送邮件的话,就得去开启 QQ 邮箱的相关协议。二、编码测试阶段:1、先引入spring

2020-09-30 11:34:23 10234

原创 本地和服务器上项目注册验证码出现中文乱码问题

首先注册时验证码出现乱码有两种情况:一是在 windows 上测试时;二是在 Linux 上部署时;出现验证码中文乱码的原因:在代码层面明确指定了使用哪一种字体(比如:宋体)但是运行环境中,却没有对应的字体库存在。比如说:在 Linux 上没有宋体的字体库,但是你的项目又是明确说明是要使用到宋体的字体库的。你不知道什么是字体库也没事,请继续往下看.一、windows 上出现注册时验证码乱码快速说一下这种情况,首先在windows 上出现这种情况还是挺少见的,因为 windows 系统默认是有所有字

2020-09-29 16:03:28 855

原创 Linux上Redis使用可视化工具RedisDesktopManager远程连接不上

错误截图(背景:在本地使用可视化工具Redis Desktop Manager远程连接Linux服务器上的 Redis无法连接,非Docker容器中)连接失败原因:你的 Redis 没有设置连接的密码。只需要设置一个连接客服端的密码即可解决。修改配置文件常用命令: vim properties_name # 打开指定文件 i 或 a 键 # 进入写模式 ESC 键 # 退出写模式 :wq

2020-09-25 23:47:59 13072 10

原创 MySQL时区问题Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Con

先看 IDEA 报错,这个问题是 Mysql 数据库的时区和系统的不一致 导致的:(您要是不是以下报错就可以不看下面了)背景介绍:今天一个小伙伴问我为什么她 spring boot 整合 Mybaits 检查了 持久层、配置文件、数据库、mybatis 依赖都没有问题,一涉及到操作数据库就一直报这个时区的错误,还说 JDBC 和数据源有问题,于是我就演示一下她的错误,也算是一种记录!毕竟以前我也遇到过这个问题:解决:这是 MySQL 高版本数据库配置的时区与你系统的时区不一致所致,只需要把两者的时区设

2020-09-25 12:50:51 2375 2

原创 Linux防火墙关闭.开启.端口放行命令

使用阿里云 CentOS 7 演示:1、暴力临时关闭所有端口(临时:重启服务器就不会生效,会打开防火墙): 不推荐service firewalld stop 或 systemctl stop firewalld # 临时关闭防火墙(所有端口)service firewalld status 或 systemctl status firewalld # 查看防火墙运行的信息firewall-cmd --state # 查看防火墙是否运行中2、防火墙放行指定端口命令: 推

2020-09-24 09:14:46 6869 6

原创 Linux上tomcat访问不到项目和关闭防火墙

背景:今天突然遇到一个问题,就是我的项目在外网访问不了,直接访问 tomcat 的首页也访问不到了。这台服务器没有使用 docker 容器 tomcat 镜像,就是直接安装的 tomcat 。我的解决办法:1、关闭服务器防火墙,最好只允许 8080 端口或者 80 端口 访问;2、查看一下 tomcat 容器是否是运行状态;假如是的话,就强制性关闭这个进程;3、再使用命令 ./shutdown.sh关闭 tomcat ;之后再开启 tomcat 进程 命令 ./startup.sh;4、查看通过什

2020-09-23 10:45:39 12110 6

原创 Linux +CentOS安装docker下载镜像开启容器等操作详细教程

其实 Linux 安装 docker 是很简单的,几乎都是傻瓜式安装了。所以第一次安装 docker 也不要慌张。今天准备在新的一台服务器上安装 docker,服务器是阿里云的CenOS7,当然安装这也跟版本几乎没关系。记录如下:让我们开始吧!步骤:1、先使用远程连接工具连接上我们的服务器,我使用的是 Xshell 6,这款工具还是值得推荐的。安装 Xshell 远程连接工具;2、使用命令 uname -r查看当前服务器 CentOS 系统的内核版本,版本要高于 3.10 才可以安装使用 do

2020-09-22 14:45:05 11166

原创 SpringBoot配置文件、静态资源不同文件目录加载优先级

1、Spring Boot 启动会扫描以下位置的 application.properties或者 application.yml/yaml 文件作为 Spring Boot 的默认配置文件(1)当前项目下的 config 文件夹中;(2)当前项目路径的根目录下;(3)resource资源文件下的 config 文件夹中;(4)resource资源文件下(项目默认创建的配置文件)。启动 Spring Boot 项目扫描这四个位置的配置文件的顺序优先级为:优先级 1:当前项目下的 config.

2020-09-20 13:01:17 2345 4

原创 个人浅显理解 Redis 的简单总结回顾-01篇

首先先说一下,这是一篇我学习 Redis 之后的总结。其中的知识部分知识来源于享学课堂。其中还有一些常见面试题。Redis安装:阿里云CetenOS7(Linux)服务器Redis下载、安装、配置、测试教程,见这篇文章;Windows系统下载安装Redis教程,见这篇文章;阿里云服务器配上Redis缓存到底有多快?8.5万/S 分享测试方法,见这篇文章;免费下载安装redis-desktop-manager可视化工具,见这篇文章;非关系型数据库 Redis 基础学习总结分享,见这篇文章。一、.

2020-09-18 20:33:41 401

原创 CSDN总排名是什么时候更新一次的

有一天我突然注意到 CSDN 的个人总排名,然后就留意了一下它是什么时候更新一次的于是我默默的观察了两周(当前时间2020年9月),大概是知道了更新的规律。所以就分享给大家。2020年当前CSDN 总排名更新规律:每周二更新一次总排名的数据之前(大概在18年19年)CSDN 更新的时间是很短的,不像现在是一周更新一次,我估计是,更新太频繁了会出很多问题,之前有很多博主都再说这个排名问题有很多 bug ,现在用户也多了,要是实时的更新,估计他们的数据库也受不了,数据及时的刷新到缓存,不断地请求回数据库.

2020-09-15 10:59:40 1936 4

原创 Spring IOC AOP常见的面试题及概念

本篇部分内容来源于网络,加上个人总结归纳,另外加上一些自己的见解,于是本篇文章诞生。感谢部分内容的提供者。1、 Spring的 IOC和AOP机制 ?(1)我们是在使用 Spring框架的过程中,其实就是为了使用 IOC(控制反转)、依赖注入(DI与IOC一样)和AOP(面向切面编程),这两个也是 Spring 的灵魂。(2)主要用到的设计模式有工厂模式和代理模式IOC就是典型的工厂模式,AOP就是典型的代理模式的体现。代理模式是常用的Java设计模式,他的特征是代理类与委托类有同样的接口,代理

2020-09-12 20:56:49 8603

空空如也

空空如也

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

TA关注的人

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