springboot
文章平均质量分 84
springboot一些用法
一缕82年的清风
这个作者很懒,什么都没留下…
展开
-
SpringBoot教程(十八) | SpringBoot集成Milvus(全网最全)
Milvus是一款向量数据库,主要用于在大模型领域做向量查询的相关操作。milvus在之前的版本中其实是存在一些弊端的,尤其是在一些类似于mysql的查询方面,有一些缺点,这里简单唠叨几句。首先milvus不支持多个向量字段,其次milvus的模糊匹配只支持前缀匹配,再次milvus不支持排序。不过这些功能在最新版的milvus中都已经解决了。但是我还没来得及体验最新的版本,所以不知道支持情况如何。原创 2024-04-26 11:08:18 · 1201 阅读 · 2 评论 -
SpringBoot教程(十九) | SpringBoot集成knife4j
其实主要的集成方式,在文档里都已经描述了,并且我之前也写过集成SpringBoot集成swagger的文章,大同小异。然后就是写注解了,需要在Controller上和vo上写注解,注意openapi2和openapi3的注解是不一样的。然后启动项目: 输入: ip:port/doc.html 就可以打开接口文档了,长的比swagger强。这里在说一下,如果项目中添加了拦截器,就会导致接口文档出不来,就需要放开才行,我之前也讲过这个问题。这个写的比之前的代码多一下,排除支持的也更多一些。原创 2024-04-26 15:12:37 · 602 阅读 · 0 评论 -
SpringBoot集成easyExcel实现按模板导出
SpringBoot如何集成easyExcel实现按照模板进行导出原创 2022-07-27 15:51:18 · 1971 阅读 · 0 评论 -
SpringBoot教程(十七) | SpringBoot中ApplicationEvent用法
我们前面的文章中讲解过RabbitMQ的用法,所谓MQ就是一种发布订阅模式的消息模型。在Spring中其实本身也为我们提供了一种发布订阅模式的事件处理方式,就是ApplicationEvent和 ApplicationListener,这是一种基于观察者模式实现事件监听功能。也已帮助我们完成业务逻辑的解耦,提高程序的扩展性和可维护性原创 2022-03-25 10:59:31 · 5785 阅读 · 0 评论 -
SpringBoot2.6.x集成swagger: Failed to start bean ‘documentationPluginsBootstrapper问题解决
SpringBoot2.6.x集成swagger: Failed to start bean 'documentationPluginsBootstrapper问题解决原创 2022-03-23 16:35:02 · 2276 阅读 · 6 评论 -
SpringBoot教程(十六) | SpringBoot集成swagger(全网最全)
一. 接口文档概述swagger是当下比较流行的实时接口文文档生成工具。接口文档是当前前后端分离项目中必不可少的工具,在前后端开发之前,后端要先出接口文档,前端根据接口文档来进行项目的开发,双方开发结束后在进行联调测试。所以接口文档其实就是开发之前双方之间的一种约定。通常接口文档分为离线的和实时的。离线的接口文档工具有: word(相当于没说), YAPI, 小幺鸡等,这种文档需要程序员在上面编写,也一般具备接口测试功能。通常是由开发人员先在离线接口文档上编写信息,然后交给前端人员参照开发。最大的弊原创 2022-03-23 10:08:07 · 72749 阅读 · 22 评论 -
SpringBoot教程(十五) | SpringBoot集成RabbitMq
RabbitMq是我们在开发过程中经常会使用的一种消息队列。今天我们来研究研究rabbitMq的使用。rabbitMq的官网: rabbitmq.com/rabbitMq的安装这里先略过,因为我尝试了几次都失败了,后面等我安装成功了会把详细的文章发出来。目前是使用公司的环境进行的调试。1. 一些概念RabbitMQ是一个开源的消息代理和队列服务器,用来实现各个应用服务间的数据共享(跨平台 ,跨语言)。RabbitMQ是使用erlang语言编写的,并且基于AMQP协议实现。所有的消息队..原创 2022-03-22 09:44:30 · 7637 阅读 · 4 评论 -
SpringBoot教程(十四) | SpringBoot集成Redis(全网最全)
一、Redis集成简介Redis是我们Java开发中,使用频次非常高的一个nosql数据库,数据以key-value键值对的形式存储在内存中。redis的常用使用场景,可以做缓存,分布式锁,自增序列等,使用redis的方式和我们使用数据库的方式差不多,首先我们要在自己的本机电脑或者服务器上安装一个redis的服务器,通过我们的java客户端在程序中进行集成,然后通过客户端完成对redis的增删改查操作。redis的Java客户端类型还是很多的,常见的有jedis, redission,lettuce等,原创 2022-03-17 16:56:47 · 30532 阅读 · 23 评论 -
SpringBoot教程(十三) | SpringBoot集成MybatisPlus
一、MybatisPlus简介MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。Mybatis-Plus是一个国产框架,有中文的文档,所以使用起来还是很方便的,没有那么大的障碍。文档地址:baomidou.com/当前的最新版本是3.5.1文档上说的十分清楚,这里我就不多说了。直接进入集成步骤。二、集成步骤我们首先拉取一个feature/mybatisPlus的分支,在这个分支上演示..原创 2022-03-08 13:42:25 · 16436 阅读 · 6 评论 -
SpringBoot教程(十二) | SpringBoot集成JPA
1. JPA简介概念:JPA顾名思义就是Java Persistence API的意思,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。优势:标准化JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。容器级特性的支持JPA框架中支持大数据集、事务、并发等容器级事务,这使得 JP原创 2022-02-10 09:38:38 · 5427 阅读 · 1 评论 -
SpringBoot教程(十一) | SpringBoot集成Mybatis
上一篇文章我们介绍了SpringBoot集成JdbcTemplate.简单体验了一下JdbcTemplate框架的用法,今天的内容比较重要,我们来介绍一下SpringBoot集成Mybatis的步骤。1、 Mybatis 介绍MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Ja原创 2022-01-26 10:08:25 · 2072 阅读 · 0 评论 -
SpringBoot教程(十) | SpringBoot集成JdbcTemplate
1. JdbcTemplate概述经过了前面的几篇文章,我们几乎讲解完毕了SpringBoot中前端控制器中的一些操作,体验到SpringBoot为我们使用框架所带来的便捷。前面文章中的所有案例,总共只引入了一个 web-starter, 配置也很少。从今天开始,我们来开始研究一下,SpringBoot如何完成数据的持久化操作。一般持久化的操作都是有一些专门来做持久化的框架来完成的,比如原始一些的JDBC, 老牌劲旅JPA(hibernate), 还有现在用的比较或的mybatis和MybatisP原创 2022-01-25 09:32:49 · 2906 阅读 · 0 评论 -
SpringBoot教程(九) | SpringBoot统一异常处理
异常大家应该都很清楚,我们的项目总是不可避免的出现异常,那么应该如何优雅的进行异常处理使我们需要关注的一个问题,合理的异常封装既可以方便前端的处理,也能够简化后端的开发。一般情况下,我们应该在我们的项目中,根据不同的异常场景,定义不同的异常类型,然后不同的异常类型,返回不同的状态码,然后和前端约定好,根据不同的状态码,做不同的展现。SpringBoot中为我们提供一个统一的异常处理类,也是利用了AOP的思想,我们可以向外抛出各种类型的异常,然后在这个统一的处理类中,针对每一种不同类型的异常,做不同的原创 2022-01-24 09:44:05 · 1678 阅读 · 0 评论 -
SpringBoot教程(八) | SpringBoot统一结果封装
经过了前面几篇文章,SpringBoot中MVC相关的配置其实都已经差不多了,接下来就可以完全进入接口开发阶段了。前面我们写过几个接口,虽然都加了@RestController注解,相当于统一了我们的返回数据的基本形式为JSON,但是由于我们的项目可能是很多人一起开发,所以我们最好能够把我们的返回结果统一一下,让大家都返回一样的数据格式,这样即规范了代码,也方便了前端人员的调用,不然每个人都按照每个人的风格去写,代码会变得非常混乱。那我我们怎么还封装这个结果呢,那就要关注我们返回给前端的数据都要包含哪些原创 2022-01-22 09:33:10 · 3801 阅读 · 2 评论 -
SpringBoot教程(七) | SpringBoot解决跨域问题
上篇文章我们介绍了SpringBoot的拦截器的写法,其中有一个比较重要的步骤,就是把我们写好的拦截器注册到Spring的一个配置类中,这个类是实现了WebMvcConfigurer 接口,这个类很重要,因为这个类中除了可以注册拦截以外,还可以配置很多内容。今天我们来讲解一下SpringBoot如何解决跨域问题。原创 2022-01-21 09:32:48 · 1522 阅读 · 0 评论 -
SpringBoot教程(六) | SpringBoot开发拦截器
1. 拦截器介绍拦截器: 是在请求进入到Controller 的一层AOP处理,相当于在Controller之前、之中和之后可以定义一些我们自己的业务逻辑。2. 自定义拦截器的步骤首先实现HandlerInterceptor 接口SpringMVC中给我提供了一个接口叫做 HandlerInterceptor, 我们实现了这个接口之后,需要实现里面的几个方法。这几个方法就是用来定义我们拦截器的业务逻辑实现。我们来看下这接口中的内容:package org.springframework原创 2022-01-20 09:28:23 · 1592 阅读 · 0 评论 -
SpringBoot教程(五) | SpringBoot中Controller用法及传参
SpringBoot整合SpringMvc其实千面一直讲的都是。只需要我们在pom文件中引入 web的starter就可以了,然后我们就可以正常使用springMvc中的功能了。所以本篇文章可能更多的是回顾,回顾一下springMVC中的一些常用的功能。重点讲讲Controller的传参原创 2022-01-19 09:51:26 · 28697 阅读 · 3 评论 -
SpringBoot教程(四) | SpringBoot中的配置文件
4.1 关于yml 和 properties的写法问题上文我中我们提到,spring中常用的配置文件有yml 和 properties 两种,都是以application来命名的,通常放到resources文件夹下。yml是使用缩进来体现层级管理的, 而properties 中是以. 的形式体现。二者没啥区别,根据个人的使用习惯来进行选择即可。目前来说用的比较多的还是yml 形式的。为什么呢,因为properties 可能会有很多冗余的书写,相对于yml来说,不够简洁。我们具体体会一下。比如我们要配原创 2022-01-18 09:40:14 · 1984 阅读 · 2 评论 -
SpringBoot教程(三) | Spring Boot初体验
上篇文章我们创建了SpringBoot 项目,并且进行了简单的启动。整个项目了里其实我们就动了两个文件,一个是pom.xml负责管理springboot的相关依赖,一个是springBoot的启动类。pom文件中通过starter的形式大大简化了配置,不像以前一样需要引入大量的依赖配置,搞不好还得解决冲突。 启动类里就一个main方法,让我们通过一个简单的注解,就可以启动整个项目。相比于之前的ssm简直不要太香。3.1 Controller开发那么接下来我们就在这个项目的基础之上来开发一个接口。原创 2022-01-17 15:02:00 · 1179 阅读 · 0 评论 -
SpringBoot教程(二) | 创建SpringBoot项目
接下来我们要学习一下如何创建一个spring boot项目。 我们采用的环境信息JDK1.8Maven 3.6Idea 2021.1所谓spring Boot项目,其实本质上就是一个maven/gradle项目,这是里面通过引入springBoot专门设置好的依赖,完成整个项目开发流程的简化。所以我们就先创建一个maven 项目即可。当然也可以采用 spring initiallizer进行创建(需联网)。我们就用创建普通maven项目的方式来演示。打开我们的idea, 创建一个新的原创 2022-01-17 09:53:57 · 3382 阅读 · 3 评论 -
SpringBoot教程(一) | 认识Spring Boot
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。原创 2022-01-14 16:23:24 · 1007 阅读 · 0 评论 -
SpringBoot+mybatis-plus实现多数据源的方法
目前springBoot + mybatis-plus的框架组合在企业中使用的越来越广泛。最近遇到了一个需求,需要集成多数据源。先来解释一下什么是多数据源,多数据源的意思就是,我需要在一个项目(工程) 中连接两个或两个以上的数据库。通常情况我们的一个项目都是连接一个数据库的,但是不排除 一些特殊情况下,需要连接多个数据库。这里一定要注意,数据源的定义是以库为区分的,只要库不同,就代表不同的数据源,不管他们是不是在同一台机器上。 而对于多数据源的引入,一般也会伴随分布式事务的问题,这里不做讨论。多数据原创 2021-12-03 15:57:01 · 3299 阅读 · 0 评论 -
springboot项目集成nacos配置中心
这几天我们部门的项目都要集成nacos的配置中心,把对应的配置文件都要放到nacos上进行存储,方便试试刷新。 之前我们的springcloud项目已经统一做了迁移,因为给出了迁移文档。但是我们有一个项目一直搁置了,就是开源的xxl-job项目, 由于我们定时任务一直用的都是xxl-job,并且在源码基础上做过一些小的改动(前边文章里介绍过),这个项目没迁的原因,一是懒,二是它是一个springboot项目和常规的springcloud项目迁移还不太一样,springcloud迁移是通过bootstrap.原创 2021-03-12 11:05:16 · 2185 阅读 · 0 评论 -
springboot解决跨域问题的方式
由于目前多数的项目都是采用前后端分离的设计方式,所以不可避免的就要在后端系统上设置跨域配置,否则前端调用接口时就很容易报跨域的错误,这里总结两种springboot的跨域配置方式方式一: 采用过滤器:import org.springframework.core.annotation.Order;import org.springframework.stereotype.Component;import javax.servlet.*;import javax.servlet.annota原创 2021-03-08 15:09:15 · 644 阅读 · 1 评论 -
springboot跨域过滤器与swagger拦截器冲突的解决方案
最近在做一个项目,有这样的使用场景,首先是前后端分离,联调的时候出现了跨域问题。所以添加了一个处理跨域的拦截器。代码如下:@Order(1)@Component@WebFilter(urlPatterns = "/*", filterName = "cooCorsFilter")public class CooCorsFilter implements Filter { String ORIGIN = "Origin"; @Override public void i原创 2020-12-02 14:42:12 · 4464 阅读 · 6 评论 -
springboot使用poi实现Excel模板的下载功能
今天做个项目,要求下载exel模板,然后填写数据,在上传,是通过poi实现的,这里给出下载excel模板的实现方案。首先将excel模板放到resource的根目录下,然后提供下载接口,如下:@ApiOperation("下载导入模板") @GetMapping("/downloadExcel") public void download(HttpServletResponse response) { try { InputStream fis = Thread.currentThr原创 2020-12-02 14:52:33 · 1928 阅读 · 0 评论 -
springboot yml配置文件中换行问题
我们在使用springboot开发项目的时候,一般都是使用yml作为配置文件,简洁方便,但是有时候由于我们的配置文件中的内容比较长,比如想要存储一个私钥,这时候使用yml存的时候,有可能出现得到的字符串要么就是有空格,要么就是有换行,那么应该如何解决这个问题呢?很简单: 在yml中在每个需要换行的末尾 加上一个 \ 同时要注意,把整个字符串用双引号括起来接下...原创 2019-09-10 10:56:58 · 9610 阅读 · 1 评论 -
springboot整合rocketmq实现顺序消费
消息队列依然成为当下非常火热的中间件,而rocketmq作为阿里开源的中间件产品,历经数次超大并发的考验,依然成为中间件产品的首选。而有时候我们在使用消息队列的时候,往往需要能够保证消息的顺序消费,而rocketmq是可以支持消息的顺序消费的。rocketmq在发送消息的时候,是将消息发送到不同的队列(queue,也有人称之为分区)中,然后消费端从多个队列中读取消息进行消费,很明显,在这种全局模式...原创 2020-03-18 12:10:57 · 6176 阅读 · 1 评论 -
spring类中给静态变量赋值
大家在用spring读取配置文件中的数据的时候,一定用过@Value这个注解。但有时候如果我们想要给静态变量赋值发现就不管用了,给静态变量赋值,要把@Value注解放到静态变量的set方法上。最近的项目有这样一个需求,就是类中有几个静态变量,初始化的时候,他们的值需要读取一个配置文件,获取一个code,然后用这个code拼接而成。 这个code不是静态的变量,怎么实现的呢,代码如下: @Value("${projectCode}") private String proj..原创 2020-10-10 09:23:23 · 1347 阅读 · 0 评论 -
Springboot中的面试题你能接几招?
附答案,不带答案的面试题都是数流氓1. springboot中的核心配置文件是什么?如何配置端口号application.yml 或 application.properiesserver.port=8080 #application.properies配置方法server: port:8080 #application.yml配置方法2. 什么是springboot, 有哪些优点用来简化spring应用的初始搭建及开发过程,使用特定的方...原创 2020-07-10 16:53:36 · 1068 阅读 · 0 评论 -
springboot集成elasticsearch7实现全文检索及分页
springboot集成elasticsearch7实现全文检索及分页elasticsearch系列文章前面已经更新过三篇(https://blog.csdn.net/lsqingfeng/category_10219329.html)(建议先看下这三篇文章),分别讲解了elasticsearch7.2的安装,和springboot的集成以及简单的使用。前面都是通过demo的方式,主要讲解了他的一下简单使用,最近已经将es成功应用到了项目当中,本篇文章主要系统的介绍一下到底在项目中该如何使用es.一.原创 2020-07-27 20:29:15 · 9480 阅读 · 17 评论