![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring
文章平均质量分 88
Spring 学习
Miaow.Y.Hu
欲买桂花同载酒,终不似,少年游。
展开
-
Spring系统学习- 事务之基于注解的声明式事务
基于注解的声明式事务是Spring框架提供的一种事务管理机制,它允许开发者以声明的方式指定哪些方法应该在事务边界内执行,而不是通过编程方式显式地管理事务开始和结束。这种机制极大地简化了事务管理代码,使得业务逻辑更加清晰,同时也提高了代码的可维护性和可读性。原创 2024-07-16 17:13:30 · 748 阅读 · 0 评论 -
Spring系统学习 - Spring事务的概念
提到事务,这个我们应该比较熟悉了,在数据库学习的过程中,我们或多或少接触过了事务,当然你可能没有用到,也可能用到了,这篇博客我们将围绕Spring的相关事务的概念进行,了解Spring中的事务和事务可以用来解决什么问题。原创 2024-07-12 17:59:39 · 854 阅读 · 0 评论 -
Spring系统学习 - AOP之基于注解的AOP和XML的AOP
基于注解的 AOP 是一种使用注解来定义切面和通知的方式。在传统的基于 XML 配置的 AOP 中,切面和通知的定义通常是通过 XML 配置文件来完成的,而基于注解的 AOP 则使用注解来实现这些定义,使得配置更加简洁和直观。原创 2024-07-09 20:03:07 · 641 阅读 · 0 评论 -
Spring系列学习-AOP之代理模式在AOP中的运用
所谓代理模式其实就是二十三种设计模式中的一种,属于结构型模式。它的作用就是通过提供一个代理类,让我们在调用目标方法的时候,不再是直接对目标方法进行调用,而是通过代理类间接调用。让不属于目标方法核心逻辑的代码从目标方法中剥离出来——解耦。调用目标方法时先调用代理对象的方法,减少对目标方法的调用和打扰,同时让附加功能能够集中在一起也有利于统一维护。原创 2024-07-08 17:46:36 · 624 阅读 · 0 评论 -
Spring系统学习-什么是AOP?为啥使用AOP?
Spring AOP(Aspect-Oriented Programming)是Spring框架提供的一种面向切面编程的支持。它允许开发者通过定义切面(Aspect)来将横切关注点(Cross-cutting Concerns)与核心业务逻辑分离,从而提高代码的可维护性和可重用性。原创 2024-07-03 18:02:51 · 882 阅读 · 0 评论 -
Spring系统学习 - 基于注解管理Bean
用通俗的话来说就是,不管是注解还是XML实际上就相当于,我们在现实生活中,假设你手上有一群人,然后你需要这群人去做三个任务,对于你标记为红色区域的,要放置红色的花朵,你标记为黄色的区域就放置黄色话多,标记为绿色的地方,就放置绿色草块,你标记完毕之后,剩下的放置花朵和草块的地方就交给你手上的那群人去完成就行。原创 2024-06-27 20:11:14 · 1029 阅读 · 0 评论 -
Spring系统学习 - FactoryBean和基于XML的自动装配
Spring的FactoryBean是一个特殊的Bean,用于创建其他Bean实例。FactoryBean接口定义了一个工厂Bean,该Bean可以用来生成其他Bean的实例。通过实现FactoryBean接口,开发人员可以自定义Bean的创建逻辑,实现更灵活的Bean实例化过程。原创 2024-06-20 16:06:33 · 1235 阅读 · 0 评论 -
Spring系列学习-Bean的生命周期
Spring 框架中,Bean的生命周期是指Bean从创建到销毁这一个阶段的整个过程。关于Bean的整个生命周期,我们这篇博客将会根据以实例结合讲述Bean的整个生命周期。原创 2024-06-20 14:39:45 · 658 阅读 · 0 评论 -
Spring系统学习 - Bean的作用域
注意线程安全性:如果Bean是有状态的,并且在多线程环境中使用,需要确保Bean的线程安全性。**在多线程环境中,最好使用原型作用域或每次请求创建新的Bean实例**。注意内存消耗:使用原型作用域时,需要注意内存消耗。**如果原型Bean被频繁创建,可能会导致内存占用过高**。在这种情况下,可以考虑使用对象池或其他缓存机制来管理Bean的创建和销毁。原创 2024-06-13 20:29:09 · 909 阅读 · 1 评论 -
Spring系统学习 -Spring IOC 的XML管理Bean之P命名空间、实现引入MySQL外部链接属性文件
在Spring框架中,P命名空间是一种用于简化XML配置文件中属性注入的方式。通过引入P命名空间,可以使用更简洁的语法来设置bean的属性值,而无需显式地使用``子元素。这使得XML配置文件更加简洁和易于阅读。原创 2024-06-13 19:54:20 · 529 阅读 · 0 评论 -
Spring系统学习 -Spring IOC 的XML管理Bean之类类型属性赋值、数组类型属性赋值、集合类属性赋值
类类型属性赋值: 在XML配置中,可以使用 `` 元素为类类型属性赋值。通过指定属性的名称和值,可以直接将其他Bean的实例引用注入到目标Bean的属性中。这种方式可以建立对象之间的关联关系。例如,可以将一个Address对象注入到Person对象的address属性中。数组类型属性赋值: XML配置中,可以使用 `` 元素为数组类型属性赋值。通过使用` ` 或 ` `元素,可以定义一个数组或列表,并使用 `原创 2024-06-11 20:21:12 · 1382 阅读 · 0 评论 -
Spring系统学习 -Spring IOC 的XML管理Bean之bean的获取、依赖注入值的方式
在Spring框架中,XML配置是最传统和最常见的方式之一,用于管理Bean的创建、依赖注入和生命周期等。这个在Spring中我们使用算是常用的,我们需要根据Spring的基于XML管理Bean了解相关Spring中常用的获取bean的方式、依赖注入值的几种方式等等。原创 2024-06-04 20:23:27 · 848 阅读 · 2 评论 -
Spring系统学习篇 - IOC容器
上篇博客我们简单介绍了Spring 的相关知识,这篇博客我们将主要围绕Spring的两个重要特性之一的IOC进行学习,Spring的IOC(控制反转),也算是一种设计模式,是我们Spring框架的核心特性之一,IOC核心思想将对象的创建和依赖关系的管理交给我们的容器进行控制,并非程序员手动进行管理对象与对象之间的依赖关系,可以说通过IOC容器之后,我们程序员需要的是关注业务逻辑的实现,而不是将大量的时间花费在对象的创建和管理上去了。原创 2024-06-03 20:25:34 · 999 阅读 · 0 评论 -
Spring系统学习 - Spring入门
Spring翻译过来就是春天的意思,字面意思,冠以Spring的意思就是想表示使用这个框架,代表程序员的春天来了,实际上就是让开发更加简单方便,实际上Spring确实做到了。官网地址:[https://spring.io/](https://spring.io/)Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用。Spring 框架来创建性能好、易于测试、可重用的代码。也是一个开源的 Java 平台,它最初是由 Rod Johnson 编写的,并且于原创 2024-06-01 17:58:23 · 994 阅读 · 0 评论 -
在Spring Boot中使用POI完成一个excel报表导入数据到MySQL的功能
最近看了自己玩过的很多项目,忽然发现有一个在实际开发中我们经常用到的功能,但是我没有正儿八经的玩过这个功能,那就是在Spring Boot中实现一个excel报表的导入导出功能,这篇博客,主要是围绕excel报表数据导入进行,感兴趣的可以看看,有能力的可以在本篇博客的基础上进行改造,实现一个前端报表导入导出功能。原创 2024-04-12 15:11:25 · 1229 阅读 · 1 评论 -
在Spring Cloud Config Github配置中心
关于Spring Cloud系列我们其实讲解了很多,但是这里我们介绍一下Spring Cloud Config,它是一个解决分布式系统的配置管理方案,他包含了Client 和 Server 两个部分,server提供配置文件的存储,以接口的方式将配置文件内容提供出去,Client通过接口获取相关数据,并依据数据初始化自己的应用,Spring Cloud 使用git或者svn存放配置文件,默认情况下使用git。原创 2024-01-08 20:27:00 · 1192 阅读 · 0 评论 -
在Spring Cloud中使用Gateway 网关
我们在上述文章中介绍了相关Spring Cloud的五大核心组件,现在我们来了解一下关于Spring Cloud的网关,关于使用网关,我们同时也需要知道他在一个架构中起到的作用,并且,我们需要知道网关具体的相关功能,本篇将带你了解gateway网关。## 概述网关也称作gateway,是一个在系统架构中起到中介的作用的组件,主要位于客户端和后端服务之间,负责接收来自客户端的请求,并将其转发到相应的后端服务。我们在Spring Cloud中通常会有多个独立的服务提供不同的功能,这个时候,我们知道每个原创 2024-01-02 20:28:47 · 1573 阅读 · 0 评论 -
在Spring Cloud中使用Ribbon完成一个简单的负载均衡demo
Spring Cloud系列断更了有一段时间了,这段时间最近都在忙着项目上的事,天天修复bug以及调整需求,反正各种操劳,了解业务需求,然后开发相关功能,很久都没碰Spring Cloud系列的相关文章了,最近回头看看,发现Spring Cloud的Ribbon还没举例进行介绍,就光生成了一个注册中心服务罢了,今天就将这个坑填充一下。原创 2023-12-27 15:05:14 · 1805 阅读 · 0 评论 -
在Spring Cloud中使用RabbitMQ完成一个消息驱动的微服务
Spring Cloud系列目前已经有了Spring Cloud五大核心组件:分别是,Eureka注册中心,Zuul网关,Hystrix熔断降级,openFeign声明式远程调用,ribbon负载均衡。这五个模块,对了,有没有发现,其实我这五个模块中ribbon好像还没有案例例举,目前只有一个Ribbon模块的搭建,后边我会完善的.原创 2023-12-20 17:39:25 · 2941 阅读 · 1 评论 -
在Spring Cloud中使用Zuul网关实现一个案例
本篇依旧是在Spring Cloud系列的博主已经搭建的Spring Cloud微服务模块上进行的,注意,本文依旧适合初学者和或者在Spring Cloud框架了解不是很深入的基础的开发者,本系列说不上有多高大上,博主坚持通过简单的案例,让开发者可以对Spring Cloud的组件进行了解和使用,并在一定程度上介绍这些组件在开发中充当什么样的成分。原创 2023-12-19 20:20:34 · 1021 阅读 · 0 评论 -
在Spring Cloud中使用Hystrix服务完成熔断降级处理
举例上次发布博文隔了好几天了,今天我们重点围绕Spring Cloud的Hystrix服务的熔断降级处理进行,在之前篇的文章中,我们完成了Spring Cloud的各个微服务模块的搭建,这个是既往的事实,如果你还不知道该如何搭建Spring Cloud微服务,请参照我之前发的文章,Spring Cloud系列文章就行。这篇我们来完善一个在超时时间未得到响应的时候,我们的Hystrix会调用相关方法进行降级处理,并且返回我们的降级结果。原创 2023-12-18 20:08:35 · 1217 阅读 · 0 评论 -
在Spring Cloud中使用OpenFeign完成从一个微服务上传到另一个微服务中
跨服务上传文件,嘿嘿,来一篇实用性高的,本篇将主要完成在Feign中上传文件到另一个微服务中。步骤如下:我们需要在服务提供者和服务消费者的项目中添加相应的依赖:对于服务提供者的项目,你需要添加Spring Boot的Web依赖和Spring Cloud的Feign依赖。在pom.xml文件中添加以下依赖:原创 2023-12-13 18:00:04 · 2339 阅读 · 0 评论 -
在Spring Cloud中实现Feign声明式服务调用客户端
如果你学过Spring Cloud,你应该知道我们可以通过OpenFeign从一个服务中调用另一个服务,我们一般采用的方式就是定义一个Feign接口并使用`@FeignClient`注解来进行标注,feign会默认为我们创建的接口生成一个代理对象。当我们在代码中调用Feign接口的方法的时候,实际上就是在调用我们Feign生成的代理对象的方法,代理对象会根据接口定义的方法信息,将我们的请求转发到相应的代码提供者。原创 2023-12-12 19:28:14 · 358 阅读 · 0 评论 -
在Spring Cloud使用Hystrix核心组件,并注册到Eureka注册中心去
其实吧,写Spring Cloud系列,我有时候觉得也挺难受的,因为Spring Cloud的微服务启动都需要一个一个来,并且在IDea中也需要占用比较大的内存,并且我本来可以一篇写完5大核心组件的,但是我却分了三篇,起初我交代过,这个系列,我将会慢慢来,因为我希望,将模块查分,这样我自己去理的时候也蛮清楚,别人看的时候,也轻松一点,所以我才一步一步完成微服务,这五大组件,其实都是可以聚合使用的,我只是为了把他单独划分出来讲解罢了。原创 2023-12-07 20:15:35 · 1342 阅读 · 0 评论 -
在Spring Cloud中使用组件Ribbon和Feign,并分别创建子模块注册到Eureka中去
ok,在上篇文章中我们讲了在Spring cloud中使用Zuul网关,这篇文章我们将Spring Cloud的五大核心组件的Ribbon和Feign分别创建一个微服务模块。题外话,本篇博客就是配置子模块,或者说是微服务,然后将微服务正式启动之前,将所有的服务注册到Eureka注册中心去,方便我们查看我们的微服务是否正式启动,文章更加偏向刚刚接触Spring Cloud的开发者,如果你对这些步骤已经很熟练了,实际上这篇博客对你来说,就是一篇水文罢了。我之所以写这篇,是考虑到刚刚学习的开发者,或者说让我自原创 2023-12-06 17:37:55 · 921 阅读 · 0 评论 -
在Spring Cloud中使用组件Zuul网关,并注册到Eureka中去
我们搭建了Spring Cloud的父子模块,并实现了一个Eureka子模块的启动,可以通过浏览器地址去访问Eureka主页了,相信了解过的童鞋应该看到,主页上并未有任何服务去注册,那么我们就在这篇,使用zuul网关作为第一个注册到Eureka注册中心的服务吧。原创 2023-12-05 14:23:56 · 1424 阅读 · 0 评论 -
使用Spring Cloud搭建一个项目框架之父子模块的创建
说实在的,Spring Cloud的这个系列,很多人都写过,写的比博主好的一大堆,网友们百度一下,就可以发现很多很多,甚至有一批都是系列文章,我只不过之前学过一段时间,但是过了一段时间了,很多东西都忘了,在这里再次巩固一下相关知识点,如果你也一样,那么可以看一下我这个系列的文章,如果你是初学者,你可以先去了解一下比我写的更好的博主,我可以做到的,仅仅就是把这个系列相对好一点,但是我却不能满足大众的所有口味,所以如果你喜欢,你可以看一下,如果你不喜欢,可以移步看看别的博主文章。原创 2023-12-05 09:29:01 · 1107 阅读 · 0 评论 -
Spring Cloud笔记 —— 什么是Spring Cloud?
在写这篇博客之前,其实吧,博主很久之前有过一段时间的Spring Cloud的案例项目开发经验,就是一个案例项目开发而已,也说不上有多高大上,那个时候,我其实也是从众而已罢了,毕竟现在的面试动不动都是分布式,微服务项目等等。本来嘛,我其实不想如个系列的坑的,毕竟网上这个系列一大堆的,并且有好多的Spring Cloud系列讲的还蛮好,甚至带你对源码进行分析,我觉得这样挺好的,但是吧,我发现我还是自己搞一套吧,毕竟属于自己的才是我的,适合自己的才是符合我的身价,哈哈,开个玩笑,我一个程序员有什么身价。总之原创 2023-12-02 17:23:31 · 975 阅读 · 0 评论 -
在Spring Boot中使用JavaMailSender发送邮件
用了这么久的Spring Boot,我们对Spring Boot的了解应该也逐步进入正轨了,这篇文章讲的案例也在我们的实际开发中算是比较实用的了,毕竟我们完成注册功能和对用户群发消息,都可以采用到邮箱发送功能,往下看,我们来看看什么是JavaMailSender。原创 2023-11-30 18:46:57 · 1772 阅读 · 0 评论 -
在Spring Boot中使用不同的日志
前言,本篇就是介绍在Java中使用相关的日志,适合初学者看,如果对这篇不感兴趣的可以移步了,本篇主要围绕我们Java中的几种日志类型,也说不上有多深入,算的上浅入浅出吧,如果你有一段时间的开发经验或者以及学过日志了,其实这篇文章对你并无太大用处。原创 2023-11-29 15:48:10 · 1328 阅读 · 0 评论 -
在Spring Boot中配置@Async的线程池的拒绝策略
在上一篇文章中,我们使用多个线程隔离不同的异步任务,这篇文章,我们将围绕在@Async的线程池的拒绝策略进行完善线程池的使用,在我们例举案例之前,我们先了解一下什么情况下才使用@Async的线程拒绝策略@Async的拒绝策略用来解决什么问题,使用他有什么好处?原创 2023-11-28 19:34:16 · 971 阅读 · 0 评论 -
在Spring Boot中隔离@Async异步任务的线程池
在异步任务执行的时候,我们知道其背后都有一个线程池来执行任务,但是为了控制异步任务的并发不影响到应用的正常运作,我们需要对线程池做好相关的配置,以防资源过度使用。这个时候我们就考虑将线程池进行隔离了。原创 2023-11-27 20:30:11 · 1300 阅读 · 0 评论 -
在Spring Boot中使用@Async异步任务的线程池
既然有了@Async,我们还需要使用他提供的线程池?虽然使用`@Async`注解允许方法异步执行,但它并不提供底层的线程池管理。默认情况下,Spring会使用一个简单的任务执行器来执行异步方法,这可能不是在所有场景下都是理想的。原创 2023-11-27 15:32:24 · 1583 阅读 · 0 评论 -
在Spring Boot中使用@Async实现一个异步调用
异步调用对应的事同步调用,同步调用是值程序按照我们定义的顺序依次执行,每一行程序都必须等待上一行的程序执行完成之后才执行,而异步是指在顺序执行的时候,不等待异步调用的语句返回结果就执行后面的程序,例如,我们常常进行对报表的导出,因为数据导出需要时间,为了避免用户在界面等待时间过长,我们就会采用异步进行导出。原创 2023-11-25 17:34:27 · 842 阅读 · 0 评论 -
在SpringBoot中使用定时任务注解实现简单的定时任务
定时任务,其实在我们开发过程中经常会碰到的一个场景,比如,我现在想要给某些用户定时的发送一些短信呀,邮件呀什么的,也可以用来定时的检查或者监测我们对一些参数的处理。玩的花的可以用来帮我我们进行网页签到,甚至隔一段时间爬取网页的某些数据,具体还得看你怎么用,这里只提供一个定时任务案例,具体实施,得看你想怎么用了。原创 2023-11-24 17:30:58 · 1004 阅读 · 0 评论 -
在Spring Boot中实现单文件,多文件上传
==注意本篇博客,主要适合初学者,如果不感兴趣,可以移步了。==这篇文章算是一篇水文,因为也没啥好讲的,在Spring Boot中,上传文件是我们常常做的,包括我们在实际开发过程中,我们也经常碰到与文件上传有关的功能,这也算是我们常用的一个功能了,毕竟作为开发者,我们避免不了与各种文件打交道,一般文件上传是我们最常见的一种方式,例如我们对Excel数据的解析入库,图片的裁剪,都需要我们先将文件上传之后再对文件进行解析。==注意本篇博客,主要适合初学者,如果不感兴趣,可以移步了。==原创 2023-11-24 14:38:08 · 2452 阅读 · 0 评论 -
在Spring Boot中使用ECharts绘制数据图表
使用ECharts来完成一些花里胡哨的图表吧,一般这种需求我们在我们的客户端不太常见,但是,我们在后端进行各种数据统计的时候就会发现ECharts的优点了,比如我们常常做的柱状图,折线图,雷达图等可视化形式,可以更加直观的展示和分析运营我们对系统运行状态的情况。原创 2023-11-22 17:18:56 · 1432 阅读 · 0 评论 -
在Spring Boot中使用Thymeleaf开发Web页面
引言: 为啥写这篇文章呢?我明明就没怎么用过这个Thymeleaf进行web开发,用JSP也行,三剑客也行,或者Vue,React,PHP等等,不好吗?那我为啥写这篇博客呢?这个写了估计也没几个人看,这是我在写之前就做好心理准备了的,毕竟很多东西都需要参照官网案例进行开发,主要写这个是因为,咱们的Spring Boot官方推荐咱们使用Thymeleaf,Thymeleaf也是有好处的,毕竟他是一种基于java的Web应用程序的服务器端模版引擎,它的主要目标是将模板和业务逻辑分离,使开发人员能够更轻松地开原创 2023-11-20 20:11:55 · 635 阅读 · 0 评论 -
Spring Boot中使用MongoDB完成数据存储
这篇我们将围绕MongoDB进行,MongoDB是一个开源的,面向文档的NoSQL数据库管理系统,使用类似JSON的BSON(二进制JSON)格式来存储数据,具有灵活的数据模型和强大的查询功能。与传统的关系型数据库不同的是,MongoDB不使用表和行的结构,而是使用集合和文档进行的,一个集合就相当于关系型数据库里边的表,一个文档就相当于表中的一行数据,每个文档都是一个键值对的集合,可以包含不同类型的数据。原创 2023-11-17 16:04:30 · 1416 阅读 · 1 评论 -
在Spring Boot中使用Redis的发布订阅功能
Redis的发布订阅模式是一种消息传递模式,==它允许多个订阅者订阅一个或多个频道,同时一个发布者可以将消息发布到指定的频道==。这种模式在分布式系统中非常有用,可以解决以下问题:- **实时消息传递**:发布订阅模式可以用于实时消息传递,当发布者发布消息到指定频道时,所有订阅该频道的订阅者都能够接收到消息。这对于实时通信、聊天应用、实时数据更新等场景非常有用。- **解耦系统组件**:发布订阅模式可以将系统的不同组件解耦,使得它们可以独立地进行通信。发布者和订阅者之间不需要直接知道彼此的存在,它们原创 2023-11-16 17:40:35 · 1780 阅读 · 0 评论