
Spring-Boot
文章平均质量分 86
超频化石鱼
这个作者很懒,什么都没留下…
展开
-
SpringBoot中企业微信的API调用
企业微信官方提供的均为API接口,没有提供集成SDK。因此无需引入Maven依赖,直接以Https方式请求即可。有些第三方提供了集成的Java SDK,可根据需求自行选用。本文采用直接调用官方API的方式。原创 2023-11-20 15:08:36 · 1938 阅读 · 0 评论 -
Spring Boot日志:SLF4J和Logback
日志的分类SpringBoot中的日志库分为两种:实现库:提供具体的日志实现,例如日志级别的控制、打印格式、输出目标等。外观库:自身不提供日志实现,而是对其他日志库进行封装,从而方便使用。基于外观模式实现。关于外观库的出现,可设想一下:现在有多种日志库,每一种接口都不同。于是我们在不同项目中往往需要调用不同的API。于是希望,无论哪一种日志库,我们都在外面套一层壳,使用时调用这层壳的接口,这样就统一了。这层壳就是外观库。对于这两种库,常见的有:实现库:Log4j、Log4j2、Logbac原创 2023-07-25 15:29:09 · 2018 阅读 · 0 评论 -
Kafka部署与SpringBoot集成
Kafka部署与SpringBoot集成原创 2023-03-01 18:51:45 · 964 阅读 · 1 评论 -
Kafka基本概念
Kafka是一个消息系统。它可以集中收集生产者的消息,并由消费者按需获取。原创 2023-03-01 18:49:28 · 512 阅读 · 0 评论 -
OAuth2.0-授权码模式
OAuth2.0授权码模式主要解决了信任问题:一个第三方网站需要访问我们Github上的数据(例如用户头像),那Github为什么要信任该网站?该对网站信任到什么程度?基于此,如果可以为该网站提供一个专门的,该有专门的权限和过期时间,且Github可随时清除的授权,这样问题就可以解决了。原创 2023-01-29 15:42:49 · 1804 阅读 · 1 评论 -
AOP开发
AOP开发基础原创 2023-01-06 16:26:17 · 555 阅读 · 0 评论 -
Feign原理及其使用
Feign的原理介绍及使用流程原创 2022-11-24 16:35:54 · 1738 阅读 · 0 评论 -
SpringBoot中多配置文件的动态启用
需求开发时使用的环境与生产环境配置往往不同。为了方便开发,在工程中针对不同的环境添加了多个配置文件,当处于不同环境时启用不同的配置文件。在多配置文件共同启用的前提下, application.properties 是一定启用的,其他配置文件根据需求启用。准备配置文件系统默认的配置文件为 application.properties 。该配置文件通常用于存放不需要变更的配置信息。这里使用默认的 .properties 文件, .yml 文件同理。额外添加的配置文件必须以 application 开头原创 2022-02-08 15:30:32 · 733 阅读 · 0 评论 -
MyBatisPlus搭建
MyBatisPlus搭建及相关问题原创 2022-01-27 15:24:14 · 4742 阅读 · 0 评论 -
基于Spring Cloud Alibaba搭建nacos
关系Spring Boot是框架。将各个组件集合在一起,方便快速开发web应用。Spring Cloud基于Spring Boot,限定了一组特定的组件,从而可以方便地进行微服务工程的开发。Spring Cloud Alibaba在Spring Cloud的基础上进行了一些调整,将某些组件替换为阿里巴巴的组件,同样是为了方便微服务工程的开发。也就是说,Spring Cloud Alibaba依赖于Spring Cloud。故而,想要使用Spring Cloud Alibaba,必须在Spring原创 2021-05-29 17:14:26 · 517 阅读 · 1 评论 -
接收参数适配:为参数增加自定义转换
接收参数错误web端请求时,会附带各种类型的参数。对应地服务端在接收这些参数时,会以指定的类型接收。然而,有些web端参数虽然实际可以转换为对应的服务端参数,但Spring本身并没有提供这样的转换,就会导致报错。最典型的例子就是时间戳和日期类型参数。例如,web端请求时附带参数为:{ time: 1609466400000}服务端使用JavaBean接收,class定义为:class TestT { private Timestamp time; ...}当服务端收到请求原创 2021-01-27 17:06:58 · 453 阅读 · 0 评论 -
Spring Boot发送邮件
概述要发送邮件,必须借助已有的SMTP服务。要么借助本地安装的邮箱客户端,要么借助网络邮箱的SMTP服务。从本地直接凭空将信息发送到某个指定邮箱是做不到的。这里使用网络邮箱的SMTP服务。开启SMTP服务网络邮箱的SMTP服务默认都是关闭的,需要进入设置后打开。所有网络邮箱开启SMTP服务的方式都基本相同。这里以QQ邮箱为例。打开邮箱后点击设置,选择其下的账户选项卡:向下找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,然后将其中的IMAP/SMTP服务打原创 2021-01-07 16:35:26 · 634 阅读 · 0 评论 -
Spring Security中使用token
单点登录与多点登录单点登录:同一个账号在同一时间只有一个token有效。一旦生成新的token,所有旧token失效。多点登录:同一个账号在同一时间可多次登录,每次登陆都会获得一个token。这些token的有效期是隔离的,不受新生成token的影响。对于token,若要实现单点登录,则必须将所有token保存在服务端。这实际上与token服务端不负责保存的本质相悖。若要实现单点登录,建议使用session。下面将实现多点登录。原理与思路Spring Security的认证与授权是分开的:原创 2020-09-12 09:14:34 · 16373 阅读 · 5 评论 -
Spring Security集成与使用
说明security会对服务端的接口添加权限过滤,不具备权限的请求将被拒绝。引入security要引入security,只需添加依赖即可:在pom.xml中引入security:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency&g原创 2020-09-12 09:09:27 · 662 阅读 · 0 评论 -
SpringBoot中MyBatis传参的方式
版本SpringBoot调用MyBatis访问数据库,依赖为org.mybatis.spring.boot,版本为2.1.2。两种调用方式两种调用方式为:注解方式和SqlProvider方式。两种方式所遵循的规则相同:无论是否使用@Param,都可以支持多参数,令传入与引用的参数名相同即可。因此建议:不使用@Param直接传参,且保持传入与引用的参数名一致。注解方式@Select({"select id, name, age, class from student"})List<原创 2020-07-18 09:21:42 · 1413 阅读 · 0 评论 -
RestTemplate转发请求
需求服务端A接收到来自于前端的请求后,要使用RestTemplate将请求转发给服务端B,然后将服务端B的返回转发给前端。根据请求类型的不同,分为:常规请求转发文件上传转发文件下载转发常规请求转发@RequestMapping("/transmit")public String transmit(HttpServletRequest request, HttpMethod method, @RequestBody(required = false) String body) {原创 2020-07-16 16:00:46 · 4151 阅读 · 3 评论 -
MySql字段内容加密与解密
AES和DES对于存储在数据库中的敏感信息,往往需要对其进行加密。MySql提供了多种加密方式,其中两种为AES和DES。这两种方式用法类似。性能上,AES各方面都略强于DES。因此推荐使用AES。AES加密MySql提供了2个AES加密与解密的函数:AES_ENCRYPT('明文', 'key') // 加密AES_DECRYPT('明文', 'key') // 解密其中:...原创 2020-03-11 15:16:23 · 15238 阅读 · 0 评论 -
SpringBoot集成Nacos
文章目录介绍安装Nacos独立服务配置管理集成到Spring Boot配置集设置http请求设置使用直接引用导入配置服务管理集成到Spring Boot服务注册保护阈值服务使用其他命名空间集群管理其他配置介绍Naocs官方文档:https://nacos.io/zh-cn/docs/what-is-nacos.html安装Nacos独立服务Nacos需要独立的运行服务。到官方的gi...原创 2020-01-20 11:31:42 · 10974 阅读 · 1 评论 -
Spring Boot中使用Druid替换MyBatis数据库连接池
介绍Druid是阿里使用的数据库连接池,被阿里推崇为Java最好的数据库连接池。不仅可以承担数据库的连接访问工作,还可以提供强大的监控和扩展功能。集成到Spring Bootpom.xml添加依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artif...原创 2020-01-14 14:15:20 · 878 阅读 · 0 评论 -
Spring-Boot的classpath:iml设置与Resources Plugin
在Spring-Boot中,特别是.properties文件中,常常可以看到某些路径会以classpath开头:mybatis.config-location = classpath:mybatis/mybatis-config.xml这个classpath到底是什么?对于一个编译过的Spring-Boot工程,会生成一个target文件夹,该文件夹下有多个子文件夹:其中的cl...原创 2018-11-01 15:46:15 · 5624 阅读 · 0 评论 -
在Spring-Boot中引入service
在XXXApplication的同级目录下,添加service文件夹,并在其下添加impl子文件夹。设该service用于与DAO层交互来操作student表。 一. 在service下添加一个interface,其名称为IStudentService。前面的I代表interface。添加的其他interface同理。为其定义一个get函数,用于获取Student对象:p...原创 2018-11-01 15:46:55 · 9677 阅读 · 0 评论 -
IDEA为spring-boot添加热部署
在IDEA中,可以为spring-boot添加热部署,一旦修改了java文件,spring-boot会重新编译修改的文件,而不用重启。一. 打开pom.xml,添加依赖:<dependencies> ... <dependency> <groupId>org.springframework.boot</groupId...原创 2018-11-01 15:48:11 · 155 阅读 · 0 评论 -
Spring-Boot添加MyBatis:手动添加代码方式
创建了一个MySQL数据库,并添加了一张表:添加MyBatis后,有两种使用方式:注解方式。简单快速,适合规模较小的数据库。 xml配置方式。支持动态生成SQL,调整SQL更方便,适合大型数据库。无论哪种方式,都需要共同执行的前期工作:在pom.xml中添加依赖库。 <!-- 添加mybatis --><dependency> <...原创 2018-11-01 15:49:00 · 5883 阅读 · 0 评论 -
Spring-Boot添加MyBatis:自动生成代码方式
Spring-Boot中使用MyBatis,通常要针对数据库的表来写对应的实体类,然后写dao层接口,并实现mapper的xml映射。也就是说,一个表,至少对应3个文件。实际上,这3个文件的代码都可以借助maven插件来自动生成。 创建了一个MySQL数据库,并添加了一张表: 在以下添加过程中,由于pom.xml是最后修改的,所以在全部添加完成之前,IDEA会有错误提示。当...原创 2018-11-01 15:51:42 · 1508 阅读 · 1 评论 -
Spring-Boot中properties的使用:@Component与@Autowired注解
首先打开src/main/resources/application.properties,添加配置:com.template.name=this is a test namecom.template.age=21 用配置类来操作application.properties 在pom.xml中添加一个依赖:<dependencies> ... &l...原创 2018-11-01 15:54:47 · 4463 阅读 · 0 评论 -
在Spring-Boot中进行单元测试
要进行单元测试,需要引入依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope>&原创 2018-11-01 15:55:11 · 14364 阅读 · 0 评论 -
将Spring-Boot工程打包为war
确保maven已安装,并正确设置了环境变量。IDEA的Terminal中可以正常识别mvn命令。可以输入:mvn –version来测试。 一. 修改入口类Application:public class TemplateApplication { public static void main(String[] args) { SpringAp...原创 2018-11-01 15:55:18 · 711 阅读 · 1 评论 -
Spring Boot中使用token:jwt
token由3部分组成:Header,Payload,Signature。其中Header记录了签名算法和token 的类型。Payload是以明文存储的一些信息,包括用户自定义信息。Signature是使用签名算法,对Payload结合服务端才知道的私钥进行签名后得出的结果。服务端对这3部分使用base64编码,然后以.号分隔,就得到了token字符串,格式为:xxxxxx....原创 2018-11-22 09:35:56 · 3831 阅读 · 4 评论 -
Spring Boot的文件上传
Spring Boot的文件上传并不需要单独进行。当前端进行请求时,所要上传的文件作为请求的一个参数即可,与其他类型参数相同。服务端接收时,只需要对这个文件参数使用MultipartFile类型接收即可。由于文件上传的参数无法直接拼接到URL中,所以只能是post请求。如图,用postman来测试,使用post请求,在body中共传入3个参数:photo:图片文件。类型为File,...原创 2019-11-04 15:40:16 · 485 阅读 · 0 评论 -
Spring Boot添加拦截器
Servlet本身提供了Filter,用于过滤web请求。Spring提供了拦截器HandlerInterceptor,功能与过滤器类似,但更精细。拦截器拦截request请求后,可以对内容进行判断,然后抛出异常或者返回false,从而直接打断request的后续执行。但拦截器是无法修改request的内容的。要使用拦截器,必须使用配置类WebMvcConfigurer。1. 定义拦截器,...原创 2018-11-22 10:57:29 · 400 阅读 · 0 评论 -
Spring Boot中引入定时任务
对于工程中需要定时执行的一些任务,例如每天0点向数据库插入数据,每隔五分钟同步一次缓存等,都可以通过Spring Boot的定时任务来解决。pom.xml添加依赖依赖只需要spring-boot-starter:<dependency> <groupId>org.springframework.boot</groupId> <artifactId...原创 2018-12-06 10:52:35 · 522 阅读 · 0 评论 -
Spring Boot启动时执行初始化操作
通常,有些操作需要在工程启动时执行,例如某些资源的加载。SpringBoot提供了几种方式来实现该功能:@PostConstruct对于注入到Spring容器中的类,在其成员函数前添加@PostConstruct注解,则在执行Spring beans初始化时,就会执行该函数。但由于该函数执行时,其他Spring beans可能并未初始化完成,因此在该函数中执行的初始化操作应当不依赖于其他Sp...原创 2019-01-16 11:52:55 · 14922 阅读 · 0 评论 -
获取MyBatis插入数据的自增长id
spring boot中集成MyBatis来向数据库中插入一个id自增长的数据时,默认返回的是受影响数据的行数。而现在的需求是要获取自增长的id。要解决该问题,需要使用注解:@Options(useGeneratedKeys = true, keyProperty = "属性名")useGeneratedKeys = true的作用是令MyBatis获取自动生成的主键,keyPropert...原创 2019-08-28 10:24:01 · 1401 阅读 · 0 评论 -
spring-boot环境搭建
前期准备:需要一个IDE,这里使用IntelliJ IDEA。一. 进入官网:https://start.spring.io/,会看到一个各种选项的页面Group指定了组名,为com.example,通常将example修改为公司名。 Artifact指定了包名,为demo,将其修改为自己的工程名。 点击左下角绿色的文字Switch to the full version.,会展...原创 2018-11-01 15:44:56 · 1237 阅读 · 0 评论