Spring Boot
文章平均质量分 89
SpringBoot是Spring框架的扩展,其设计目的是用来简化Spring应用的初始搭建以及开发过程,使得开发变得更快、更高效、更自动化。
pan_junbiao
这个作者很懒,什么都没留下…
展开
-
SpringBoot获取resources目录下的文件
在 Spring Boot 项目中,获取 resources 目录中的文件路径通常涉及到访问类路径资源(classpath resources)。Spring Boot 提供了一些工具类和方法,可以方便地访问这些资源。ApplicationContext 是 Spring 框架中的一个核心接口,它是 Spring IoC 容器的实现之一,用于管理和组织应用程序中的各种 Bean,同时提供了一系列功能来支持依赖注入、AOP 等特性。同时ApplicationContext 提供了对资源的访问能力,如文件、U原创 2024-10-30 17:55:40 · 484 阅读 · 0 评论 -
SpringBoot使用RestTemplate实现发送HTTP请求
RestTemplate 是 Spring 框架提供的一个用于访问 RESTful 服务的客户端工具,它简化了与 RESTful 服务的交互,并提供了一系列方便的方法来发送 HTTP 请求、处理响应以及处理错误。RestTemplate 提供了一组简单易用的方法,使得发送HTTP请求变得非常简单和直观。RestTemplate 可以自动将请求和响应的 JSON/XML 数据转换为 Java 对象,简化了数据的处理过程。原创 2024-10-19 18:06:22 · 1159 阅读 · 0 评论 -
SpringBoot实现接口:统一返回值、全局异常处理、Swagger接口文档
在 Spring Boot 应用中实现统一返回值和全局异常处理可以带来多方面的好处,这些好处不仅提升了代码的可读性和可维护性,还增强了应用的健壮性和用户体验。通过定义统一的返回值格式,可以确保整个应用中的API响应结构保持一致。统一的异常处理机制使得错误信息的返回方式也保持一致,便于前端开发者理解和处理。原创 2024-10-15 16:28:50 · 931 阅读 · 0 评论 -
SpringBoot使用@Slf4j注解实现日志输出
@Slf4j 是 Lombok 库中的一个注解,它极大地简化了日志记录的代码。通过使用这个注解,Lombok 会自动在你的类中注入一个静态的日志对象。通过在类上添加 @Slf4j 注解后,可以直接在方法中使用 log.info() 等方法进行日志打印。原创 2024-09-29 16:50:55 · 567 阅读 · 0 评论 -
SpringBoot解决跨域问题
在 Spring Boot 项目中解决跨域问题,主要可以通过以下几种方式来实现。使用 @CrossOrigin 注解,是 Spring 4.2 后引入的。这是解决跨域问题最直接和简单的方法,@CrossOrigin 注解可以添加到类或者方法上,以允许跨域请求。通过实现 WebMvcConfigurer 接口,并重写 addCorsMappings 方法来实现解决跨域问题,这种方式提供了更灵活的配置选项,实现全局的跨域配置。原创 2024-09-29 14:58:09 · 1090 阅读 · 0 评论 -
SpringBoot与MyBatis-Plus的整合与综合实例
MyBatis 是一款优秀的持久层框架,它支持定制化SQL、存储过程、以及高级映射。MyBatis3 提供的注解可以取代 XML。例如,使用注解 @Select 直接编写 SQL 完成数据查询。MyBatis-Plus 是一个对 MyBatis 进行增强的工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。原创 2024-09-27 17:48:16 · 1312 阅读 · 0 评论 -
SpringBoot整合Lombok插件与使用说明
Lombok 是一款 Java 开发插件,旨在通过定义的一些注解来消除业务工程中冗长和繁琐的代码,尤其是对于简单的 Java 模型对象(POJO)。使用 Lombok 插件后,Java 开发人员可以节省出重复构建诸如 hashCode 和 equals 这样的方法以及各种业务对象模型的 accessor 和 ToString 等方法的大量时间。这些方法在编译源代码期间自动生成,并没有如反射那样降低程序的性能。原创 2024-09-26 18:54:31 · 1067 阅读 · 0 评论 -
SpringBoot拦截器的配置并实现用户登录校验
在系统中,经常需要在处理用户请求之前和之后执行一些行为,例如检测用户的权限,或者将请求的信息记录到日志中。当然不仅仅这些,所以需要一种机制,拦截用户的请求,在请求的前后添加处理逻辑。SpringMVC提供了Interceptor拦截器机制,用于请求的预处理和后处理。在SpringMVC中定义一个拦截器有两种方法:第一种是实现HandlerInterceptor接口,或者继承实现了HandlerInterceptor接口的类(例如:HandlerInterceptorAdapter);第二种方法时实现Sp原创 2021-10-11 17:21:31 · 17516 阅读 · 3 评论 -
SpringBoot通过重写WebMvcConfigurer配置接口中的addViewControllers方法实现页面跳转
WebMvcConfigurer 配置接口其实是 Spring 内部的一种配置方式,采用 JavaBean 的形式来代替传统的 XML 配置文件形式进行针对框架个性化定制,可以自定义一些 Handler,Interceptor,ViewResolver,MessageConverter。基于 java-based 方式的 Spring MVC 配置,需要创建一个配置类并实现 WebMvcConfigurer接口。了解WebMvcConfigurer配置接口的详解:请浏览本博客的文章:《Sprin.原创 2021-09-01 16:58:11 · 3289 阅读 · 1 评论 -
SpringBoot中的WebMvcConfigurer配置接口的详解
1. 简介WebMvcConfigurer 配置接口其实是 Spring 内部的一种配置方式,采用 JavaBean 的形式来代替传统的 XML 配置文件形式进行针对框架个性化定制,可以自定义一些 Handler,Interceptor,ViewResolver,MessageConverter。基于 java-based 方式的 Spring MVC 配置,需要创建一个配置类并实现 WebMvcConfigurer接口。转载 2021-09-01 15:27:01 · 3404 阅读 · 0 评论 -
SpringBoot整合Elasticsearch与综合实例(二):搜索、分页、排序
Elasticsearch 是一个分布式、可扩展、近实时的高性能搜索与数据分析引擎。Elasticsearch 基于 Apache Lucene 构建,采用 Java 编写,并使用 Lucene 构建索引、提供搜索功能。Elasticsearch 的目标是让全文搜索功能的落地变得简单。本文是SpringBoot整合Elasticsearch与综合实例的第二篇,主要实现SpringBoot整合Elasticsearch实现搜索、分页、排序的相关操作。SpringBoot整合Elasticsearch原创 2021-05-15 15:57:44 · 2815 阅读 · 2 评论 -
SpringBoot整合Elasticsearch与综合实例(一):索引、文档
Elasticsearch 是一个分布式、可扩展、近实时的高性能搜索与数据分析引擎。Elasticsearch 基于 Apache Lucene 构建,采用 Java 编写,并使用 Lucene 构建索引、提供搜索功能。Elasticsearch 的目标是让全文搜索功能的落地变得简单。本文是SpringBoot整合Elasticsearch与综合实例的第一篇,主要实现SpringBoot整合Elasticsearch实现索引和文档的相关操作。SpringBoot整合Elasticsearch与综合原创 2021-05-13 15:54:30 · 1457 阅读 · 0 评论 -
SpringBoot整合RabbitMQ实现消息的发送与接收
RabbitMQ 是采用 Erlang 语言实现 AMQP(Advanced Message Queuing Protocol,高级消息队列协议)的消息中间件,用于在分布式系统中存储转发消息。RabbitMQ 凭借其高可靠、易扩展、高可用及丰富的功能特性收到越来越多企业的青睐。【实例】SpringBoot整合RabbitMQ实现消息的发送与接收。实例要求:实现SpringBoot整合RabbitMQ框架。 实现RabbitMQ消息确认机制(ACK)。 实现RabbitMQ消息队列延迟功能。原创 2021-02-02 17:30:49 · 6389 阅读 · 7 评论 -
SpringBoot整合Redis并实现Redis工具类
Redis 是用 C 语言开发的一款开源的、高性能的键值对存储数据库。它采用 BSD 协议,为了适应不同场景下的存储需求,提供了多种键值对类型,到目前为止 Redis 数据库支持5种数据类型,分别是String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Sorted Set(有序集合)。Redis 是目前使用最广泛的内存数据存储系统之一。它支持更丰富的数据结构,支持数据持久化、事务、HA(高可用 High Available)、双机集群系统、主从库。Redis是一款功能强大的数据库,原创 2020-12-22 17:37:20 · 1406 阅读 · 0 评论 -
SpringBoot整合Quartz实现定时任务
1、Quartz简介Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。1.1 Quartz的三大核心组件调度器:Scheduler。 任务:JobDetail。 触发器:Trigger,包括 SimpleTrigger 和 CronTrigger。(1)Jo原创 2020-11-08 11:48:22 · 32008 阅读 · 4 评论 -
SpringBoot使用@Scheduled注解实现定时任务
序言Spring 3.0 版本之后自带定时任务,提供了@EnableScheduling注解和@Scheduled注解来实现定时任务功能。使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式:1、基于注解(@Scheduled) 2、基于接口(SchedulingConfigurer) 前者相信大家都很熟悉,但是实际使用中我们往往想从数据库中读取指定时间来动态执行定时任务,这时候基于接口的定时任务就派上用场了。 3、基于注解设定多线程定时任务1、基于注解(@Schedu原创 2020-10-31 16:29:21 · 109331 阅读 · 9 评论 -
SpringBoot获取YAML配置文件中的自定义属性值
SpringBoot支持使用Properties和YAML两种配置方式。两者功能类似,都能完成SpringBoot的配置,但是Properties的优先级要高于YAML(YAML语言的文件以“.yml”为后缀)。使用application.yml文件配置SpringBoot项目。主要对SpringBoot项目的端口号、超时时间、参数值等进行配置。YAML文件的好处是——它采用的是树形结构,一目了然。如下:server: port: 8080 servlet: session:原创 2020-10-23 16:26:39 · 20743 阅读 · 2 评论 -
SpringBoot使用RedisTemplate操作Redis的5种数据类型
Spring 封装了RedisTemplate 来操作 Redis,它支持所有的 Redis 原生的 API。在RedisTemplate 中定义了对5种数据结构的操作方法。opsForValue():操作字符串。 opsForHash():操作散列。 opsForList():操作列表。 opsForSet():操作集合。 opsForZSet():操作有序集合。下面通过实例来理解和应用这些方法。这里需要特别注意的是,运行上述方法后要对数据进行清空操作,否则多次运行会导致数据重复操作。..原创 2020-09-30 18:50:27 · 16655 阅读 · 6 评论 -
SpringBoot整合Redis实现数据缓存
1、认识Spring CacheSpring Cache是Spring提供的一整套缓存解决方案。它本身并不提供缓存实现,而是提供统一的接口和代码规范、配置、注解等,以便整合各种Cache方案,使用户不用关心Cache的细节。Spring支持“透明”地向应用程序添加缓存,将缓存应用于方法,在方法执行前检查缓存中是否有可用的数据。这样可以减少方法执行的次数,同时提高响应的速度。缓存的应用方式“透明”,不会对调用者造成任何干扰。只要通过注解@EnableCaching启用了缓存支持,Spring Boo.原创 2020-09-26 17:26:15 · 1363 阅读 · 1 评论 -
SpringBoot整合Druid实现数据库连接池和监控
1、Druid的简介Druid是Java语言中使用的比较多的数据库连接池。Druid还提供了强大的监控和扩展功能。下面将介绍SpringBoot整合Druid实现数据库连接池和监控功能。官方文档:《Druid官方文档》2、创建SpringBoot项目与数据表【实例】SpringBoot整合Druid实现数据库连接池和监控,使用MyBaits操作数据库,获取用户信息,如下图:2.1 创建项目(1)创建SpringBoot项目,项目结构如下图:(2)使用Maven添.原创 2020-09-22 17:10:35 · 5092 阅读 · 1 评论 -
SpringBoot与MyBatis的整合与综合实例
SpringBoot是Spring框架的扩展,其设计目的是用来简化Spring应用的初始搭建以及开发过程,使得开发变得更快、更高效、更自动化。MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程、以及高级映射。MyBatis3提供的注解可以取代XML。例如,使用注解@Select直接编写SQL完成数据查询。下面将介绍SpringBoot与MyBatis的整合。1、创建数据表在MySQL数据库中创建用户信息表(tb_user),并添加数据。-- 判断数据表是否存在,存在则删除原创 2020-06-12 17:28:43 · 1203 阅读 · 0 评论 -
SpringBoot整合Shiro框架实现加密、登录、授权
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。下面将使用SpringBoot整合Shiro框架实现加密、登录、授权。1、创建数据表使用MySQL数据库,创建实例所需的数据表,用户信息表、角色信息表、权限信息表等。1.1 数据表结构1.2 数据表脚本(1)创建数据表脚本。-- 创建数据表:us.原创 2020-05-30 11:50:58 · 7631 阅读 · 7 评论 -
SpringBoot使用MockMvc对Controller层进行单元测试
Mockito是GitHub上使用最广泛的Mocking框架。它提供简洁的API来测试。Mockito简单易学、可读性强、验证语法简洁。【示例】使用Mockito框架,对Controller层进行单元测试。创建UserController(用户信息控制器)。package com.pjb.controller; import com.pjb.entity.UserInfo;import com.pjb.service.UserService;import org.springframe原创 2020-05-28 15:57:29 · 4014 阅读 · 2 评论 -
SpringBoot使用JUnit5实现单元测试
1、SpringBoot单元测试单元测试(Unit Test)是为了检验程序的正确性。一个单元可能是单个程序、类、对象、方法等,它是应用程序的最小可测试部件。SpringBoot提供了spring-boot-starter-test 启动器。通过它,能引入一些有用的测试库。1.1 快速创建单元测试在SpringBoot中进行单元测试很简单,它已经自动添加好了Test的Starter依赖,如下:<dependency> <groupId>org.spring.原创 2020-05-28 15:28:29 · 1937 阅读 · 0 评论 -
SpringBoot使用ApplicationContext对象获取Bean
ApplicationContext对象是Spring容器的上下文对象。下面将介绍基于SpringBoot平台完成ApplicationContext对象的获取,并通过实例获取Spring管理的Bean。(1)创建User(用户信息实体类),并在类上添加@Component注解。import org.springframework.stereotype.Component;/** * 用户信息实体类 * @author pan_junbiao **/@Componentpublic原创 2020-05-27 15:39:42 · 5737 阅读 · 1 评论 -
SpringBoot整合Swagger实现接口文档
在项目开发中,一般都是前后端分离开发的,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发、维护。为了便于编写和维护稳定,可以使用Swagger来编写API接口文档,以提升团队的沟通效率。【示例】SpringBoot整合Swagger实现接口文档。1、配置Swagger(1)添加Swagger依赖。在pop.xml文件中加入Swagger2的依赖,配置如下:<!--Swagger依赖--><dependency> &l原创 2020-05-27 11:30:32 · 569 阅读 · 0 评论 -
SpringBoot实现RESTful接口架构应用
1、认识REST1.1什么是RESTREST是软件架构的规范体系结构,它将资源的状态以适合客户端的形式从服务器端发送到客户端(或相反方向)。在REST中,通过URL进行资源定位, 用HTTP动作(GET、POST、DELETE、PUSH等)描述操作,完成功能。遵循RESTful风格,可以使开发的接口通用,以便调用者理解接口的作用。基于REST构建的API就是RESTful (REST风格) API。各大机构提供的API基本都是RESTful风格的。这样可以统一规范, 减少沟通、学习和开发的成本.原创 2020-05-25 17:43:11 · 1036 阅读 · 2 评论 -
SpringBoot使用@ControllerAdvice和@ExceptionHandler注解实现全局异常处理
1、使用控制器通知在编写代码时,需要对异常进行处理。进行异常处理的普通的代码是try...catch结构。但在开发业务时,只想关注业务正常的代码,对于catch语句中的捕获异常,希望交给异常捕获来处理,不单独在每个方法中编写,这样不仅可以减少冗余代码,还可以减少因忘记写catch而出现错误的概率。Spring正好提供了一个非常方便的异常处理方案——控制器通知 (@ControllerAdvice或 @RestControllerAdvice),它将所有控制器作为一 个切面,利用切面技术来实现。.原创 2020-05-25 12:00:13 · 3493 阅读 · 0 评论 -
SpringBoot使用Thymeleaf动态绑定下拉框、单选钮、复选框
项目中如果使用Thymeleaf模板引擎,需要经常的对下拉框、单选钮、复选框进行数据的动态绑定。下面将介绍如何使用Thymeleaf动态绑定下拉框、单选钮、复选框的数据。1、使用Thymeleaf动态绑定1.1Select标签的动态绑定(下拉框)<select name="departmentCode" class="b_select" > <option value="">请选择</option> <option th:each=".原创 2020-05-20 17:08:16 · 17430 阅读 · 1 评论 -
SpringBoot中Servlet容器的配置
SpringBoot默认使用Tomcat作为内嵌式的Servlet容器,查看spring-boot-starter-web 依赖如下:关于Servlet容器的属性都在org.springframework.boot.autoconfigure.web.ServerProperties配置类中做了定义,我们只需要在application.properties配置文件中配置属性即可。通用的S...原创 2020-05-06 15:48:13 · 1695 阅读 · 0 评论 -
SpringBoot使用DevTools实现热部署
在项目的开发中,当每次修改了后台代码后都需要重启服务,这样降低了开发效率。下面将介绍在SpringBoot项目中使用DevTools实现热部署。spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动还要更快,更快指的不是节省出来的手工操作的时间。深层...原创 2020-04-29 16:25:55 · 7956 阅读 · 2 评论 -
SpringBoot使用Thymeleaf模板引擎
1、认识ThymeleafSpringBoot主要支持Thymeleaf、Freemarker、Mustache、 Groovy Templates等模板引擎。Thymeleaf可以轻易地与SpringMVC等Web框架进行集成。Thymeleaf语法并不会破坏文档的结构,所以Thymeleaf模板依然是有效的HTML文档。模板还可以被用作工作原型,Thymeleaf会在运行期内替换掉静态值。...原创 2020-04-21 18:42:17 · 5440 阅读 · 0 评论 -
SpringBoot项目中使用Servlet、过滤器、监听器
1、使用Servlet处理请求Servlet是运行在Web服务器端的Java应用程序,它使用Java语言编写,具有Java语言的优点。与Java程序的区别是,Servlet对象主要封装了对HTTP请求的处理,并且它的运行需要Servlet容器的支持,在Java Web应用方面,Servlet的应用占用十分重要的地位,它在Web请求的处理功能方面也非常强大。1.1 @WebServlet注释...原创 2020-04-20 11:52:05 · 1122 阅读 · 0 评论 -
SpringBoot项目中访问HTML页面
SpringBoot默认的页面映射路径(即模板文件存放的位置)为“classpath:/templates/*.html”。静态文件路径为“classpath:/static/”,其中可以存放JS、CSS等模板共用的静态文件。1、将HTML页面存放在resources/static目录下的访问将HTML页面存放在 resources(资源目录)下的 static 目录中。【示例】在st...原创 2020-04-19 16:42:10 · 55353 阅读 · 17 评论 -
SpringBoot项目中使用JSP
1、SpringBoot虽然支持JSP,但是官方不建议使用在《Spring官方文档》中对于JSP的支持有这么一段描述:使用翻译软件上述内容:JSP局限性当运行使用嵌入式servlet容器(并打包为可执行档案)的Spring Boot应用程序时,JSP支持存在一些限制。对于Jetty和Tomcat,如果使用war包装,它应该可以工作。 与java -jar一起启动时,可执行...原创 2020-04-18 17:26:30 · 9722 阅读 · 0 评论 -
SpringBoot中的Starter
1、了解StarterSpringBoot为了简化配置,提供了非常多的Starter。它先打包好与常用模块相关的所有JAR包,并完成自动配置,然后组装成Starter(如把Web相关的SpringMVC、容器等打包好后组装成 spring-boot-starter-web)。这使得在开发业务代码时不需要过多关注框架的配置,只需要关注业务逻辑即可。SpringBoot提供了很多开箱即用的St...原创 2020-03-25 17:05:55 · 1004 阅读 · 0 评论 -
SpringBoot使用Properties和YAML配置多环境
SpringBoot支持使用Properties和YAML两种配置方式。两者功能类似,都能完成SpringBoot的配置,但是Properties的优先级要高于YAML(YAML语言的文件以“.yml”为后缀)。YAML文件的好处是——它采用的是树形结构,一目了然。如下:server: port: 8080 servlet: session: timeout:...原创 2020-03-25 16:02:24 · 2276 阅读 · 0 评论 -
第一个SpringBoot应用程序并打包成可执行JAR包
SpringBoot是Spring框架的扩展,其设计目的是用来简化Spring应用的初始搭建以及开发过程,使得开发变得更快、更高效、更自动化。下面将使用IDEA创建第一个SpringBoot应用程序,并打包成可执行JAR包。1、构建SpringBoot项目(1)点击IDEA菜单栏的 “File → New → Project” 命令,在弹出窗口中选择 “Spring Initializr”...原创 2020-03-23 18:48:30 · 1372 阅读 · 0 评论 -
SpringBoot最核心的25个注解
学习和应用 Spring Boot 有一些时间了,你们对 Spring Boot 注解了解有多少呢?今天栈长我给大家整理了 Spring Boot 最核心的 25 个注解,都是干货!Spring Boot 最核心的 25 个注解1、@SpringBootApplication这是 Spring Boot 最最最核心的注解,用在 Spring Boot 主类上,标识这是一个 Spring...转载 2020-03-06 15:47:17 · 1960 阅读 · 0 评论 -
SpringBoot使用@Configuration、@Bean、@ComponentScan注解实现Java配置方式
1、XML配置方式在Java项目开发中,使用Spring框架,如果使用传统的XML配置方式,需要首先创建Spring的核心配置文件(applicationContext.xml),然后配置Bean等相关信息。配置文件如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframe...原创 2020-03-01 19:01:23 · 2120 阅读 · 0 评论