Spring Boot 中的 Spring Security 自动配置初探
1.前言我们在前几篇对SpringSecurity的用户信息管理机制,密码机制进行了探讨。我们发现SpringSecurityStarter相关的Servlet自动配置都在spring-boot-autoconfigure-2.1.9.RELEASE(当前SpringBoot版本为2.1.9.REL
Spring Security 实战干货:自定义异常处理
1.前言最近实在比较忙,很难抽出时间来继续更SpringSecurity实战干货系列。今天正好项目中SpringSecurity需要对认证授权异常的处理,就分享出来吧。2.SpringSecurity中的异常SpringSecurity中的异常主要分为两大类:一类是认证异常,另一类是授权相关的异常。
一天入门 Python 的一些心得
1.前言好久没写文了。最近在搞一些好玩的技术用到了Python。我原以为要花些时日,谁知道第一天入门之后便没有再刻意地去学习它了。这里就写写其中的一些关键点吧。如果我去学一门语言不是因为它火了而是我用到它了。曾经闲着没事干的时候把Kotlin、Vue、React学了,但是从来没有实践中用到它们,以至
一步一步教你使用Spring框架中的事件订阅发布
1.前言Java开发中有些逻辑是这样的,完成了A操作,再继续B操作,在继续C操作。这么描述好像有点不清楚。打个比方把,你吃晚饭,通知你老婆(女友)来收碗筷,然后通知你的线上兄弟告诉他们你回来了准备开黑。至于你老婆(女友)来不来收拾无所谓,反正你告诉她了。至于你兄弟你也是通知他们,人家也不一定组你,万
Spring 注解 @Qualifier 详细解析
1.概述今天带你了解一下Spring框架中的@Qualifier注解,它解决了哪些问题,以及如何使用它。我们还将了解它与@Primary注解的不同之处。更多的技术解析请访问felord.cn2.痛点使用@Autowired注解是Spring依赖注入的绝好方法。但是有些场景下仅仅靠这个注解不足以让Sp
Java Collection 移除元素的几种方式
1.前言操作集合是一个Java编程人员几乎每天都在重复的事情。今天我们来研究一下从JavaCollection中删除元素的方法。我构建了一个简单的集合,我们以此为例子来展开探索。List<String>servers=newArrayList<>();servers.add(
Spring Security 实战干货: 简单的认识 OAuth2.0 协议
1.前言欢迎阅读SpringSecurity实战干货系列文章。OAuth2.0是近几年比较流行的授权机制,对于普通用户来说可能每天你都在用它,我们经常使用的第三方登录大都基于OAuth2.0。随着应用的互联互通,个性化服务之间的相互调用,开放性的认证授权成为客观的需要。2.OAuth2.0的简单认识
图文解释 读写分离、垂直拆分、水平拆分、分库分表
1.前言相信你经常被读写分离、垂直拆分、水平拆分、分库分表这几个名词搞得很懵逼。我有时候也很懵逼,那么今天就来把这几个数据库常用术语搞清楚,同时也记录一下。2.读写分离这个相对比较好理解一些,就是将数据库分为主从库,一个主库(Master)用于写数据,多个从库(Slaver)进行轮询读取数据的过程,
投票:OAuth2.0 技术选型你会怎么选
1.前言在使用OAuth2.0中AuthorizationServer(授权服务器)是一个回避不了的设施,在大多数情况下我们调用的是一些知名的、可靠的、可信任的第三方平台,比如QQ、微信、微博、github等。我们的应用只作为Client进行注册接入即可。也就是说我们只需要实现OAuth2.0客户端
详解定时任务中的 cron 表达式
1.前言我们经常使用cron表达式来定义定时任务的执行策略,今天我们就总结一下cron表达式的一些相关知识。2.cron表达式的定义cron表达式是一个字符串,该字符串由6个空格分为7个域,每一个域代表一个时间含义。格式如下:[秒][分][时][日][月][周][年]通常定义“年”的部分可以省略,实
Spring Boot 发送邮件全解析
1.前言欢迎阅读SpringBoot2实战系列电子邮件虽然近几年有点“退火”,但是在开发中依然有举足轻重的地位。在比较正式的场合我们依然通过电子邮件来传递信息和回执。今天我们就来学一下如何在SpringBoot下发送电子邮件。2.依赖Java发送邮件依赖jakarta项目(原javaEE)提供的ja
python 函数中的参数类型
1.前言Python中函数的参数类型比较丰富,比如我们经常见到*args和**kwargs作为参数。初学者遇到这个多少都有点懵逼,今天我们来把Python中的函数参数进行分析和总结。2.Python中的函数参数在Python中定义函数参数有5种类型,我们来一一演示它们。2.1必选参数必须参数是最基本
利用 Conda 安装深度学习框架 Pytorch
1.前言Pytorch目前是炙手可热的深度学习框架。和TensorFlow比较起来学习曲线更加平滑,不用写大量的样板代码就可以对网络进行训练和使用。在最新版本的Pytorch中开始支持Java。但是安装Pytorch并不是很容易的事。今天就来说一下如何利用Conda安装Pytorch。2.Conda
深度学习目标检测框架 detectron2 安装流程
1.detectron2FAIR开源的目标检测框架Detectron2,基于Pytorch。它训练比从前更快,功能比从前更全,支持的模型也比从前更丰盛。比如对初代的模型FasterR-CNN,MaskR-CNN,RetinaNet,DensePose等的支持外,还支持一些新的模型,如CascadeR
java获取文件路径
1.前言Java开发中我们经常要获取文件的路径,比如读取配置文件等等。今天我们就关于文件的路径和如何读取文件简单地探讨一下。2.文件的路径文件的路径通常有相对路径与绝对路径。2.1相对路径以当前文件为基准进行一级级目录指向被引用的资源文件。在Java代码中以当前运行的代码所在的位置为参照位置,只要被
Java 泛型在什么情况下不能使用
1.前言Java1.5引入了泛型来保证类型安全,防止在运行时发生类型转换异常,让类型参数化,提高了代码的可读性和重用率。但是有些情况下泛型也是不允许使用的,今天就总结一下编码中不能使用泛型的一些场景。2.基本类型无法直接使用泛型以下写法是错误的://errorMap<int,char>w
Java Stream 流如何进行合并操作
1.前言JavaStreamApi提供了很多有用的Api让我们很方便将集合或者多个同类型的元素转换为流进行操作。今天我们来看看如何合并Stream流。2.Stream流的合并Stream流合并的前提是元素的类型能够一致。2.1concat最简单合并流的方法是通过Stream.concat()静态方法
换一种方式编写 Spring MVC 接口
1.前言通常我们编写SpringMVC接口的范式是这样的:@RestController@RequestMapping("/v1/userinfo")publicclassUserInfoController{@GetMapping("/foo")publicStringfoo(){return"f
Java 集合排序策略接口 Comparator
1.前言最近用到了集合排序(基于Java8)。现在我能用Stream的就用Stream,真香!排序可以这么写:List<People>peoples=newArrayList<>();//中间省略//按照年龄从小到大排序peoples.sort(Comparator.comp
Java 中的 Comparator 和 Comparable
1.前言上一文简单对java.util.Comparator进行了说明,今天我们来看看另一个和它非常类似的接口java.lang.Comparable。2.ComparableComparable接口同样只有一个抽象方法intcompareTo(To),其规则和Comparator的intcompa