一一哥Sun_社区达人页

个人头像照片
一一哥Sun
已加入开发者社区2016

勋章 更多

个人头像照片
专家博主
专家博主
个人头像照片
星级博主
星级博主
个人头像照片
技术博主
技术博主
个人头像照片
开发者认证勋章
开发者认证勋章
个人头像照片
初入江湖
初入江湖

成就

已发布63篇文章
1条评论
已回答0个问题
0条评论
已发布0个视频
github地址

技术能力

兴趣领域
  • Java
  • Android开发
  • 移动开发
  • 设计模式
  • JavaScript
  • 容器
  • Linux
擅长领域
  • Java
    高级

    能力说明:

    精通JVM运行机制,包括类生命、内存模型、垃圾回收及JVM常见参数;能够熟练使用Runnable接口创建线程和使用ExecutorService并发执行任务、识别潜在的死锁线程问题;能够使用Synchronized关键字和atomic包控制线程的执行顺序,使用并行Fork/Join框架;能过开发使用原始版本函数式接口的代码。

技术认证

十年软件开发及授课经验,专注毕业设计

暂无精选文章
暂无更多信息

2023年02月

  • 02.02 10:13:05
    发表了文章 2023-02-02 10:13:05

    浅谈未来10年IT行业的变局与抉择,带你认识元宇宙

    2021年7月,Facebook的老板扎克伯格提出了Metaverse战略,计划在五年内把Facebook转型为一家元宇宙公司,宣布投资100亿美元用于研发元宇宙技术,并在10月28日将Facebook更名为Meta。 Facebook更名Meta并转战元宇宙,可以说是2021年科技界轰动性的大新闻。资本的嗅觉往往是最灵敏的,欧美和国内股市的巨量资金纷纷涌向与“元宇宙”相关的公司。因此,“元宇宙”一度成为资本市场最火热的概念宠儿。但在此之前,很多人都还不知道什么是“元宇宙”,甚至到了现在,依然有很多人没听过“元宇宙”这个概念!

2022年08月

  • 08.21 17:51:38
    发表了文章 2022-08-21 17:51:38

    SpringBoot2.x系列教程40--SpringBoot中默认的缓存实现方案

    前言 在上一节中,壹哥 带大家学习了Spring Boot中提供的缓存实现方案,尤其是Spring Cache这种实现方案,接下来在本章节中,我将带大家通过代码来具体实现缓存功能。 一. Spring Boot实现默认缓存 1. 创建Web项目 我们按照之前的经验,创建一个SpringBoot的Web程序,具体过程略。 2. 添加依赖包 在pom.xml文件中添加如下核心依赖包。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</
  • 08.21 17:48:26
    发表了文章 2022-08-21 17:48:26

    SpringBoot2.x系列教程31--SpringBoot整合H2内存数据库实现CRUD操作

    前言 在上一章节中,我给大家详细讲解了H2数据库的安装配置,接下来我就带大家在Spring Boot中整合H2数据库,实现代码操作。 一. 以内嵌模式整合H2数据库 1. 创建Web项目 我们按照之前的经验,创建一个SpringBoot的Web程序,具体过程略,请参考下图创建。 2. 添加依赖包 然后在pom.xml文件中添加如下依赖包。 <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> <de
  • 08.21 17:44:35
    发表了文章 2022-08-21 17:44:35

    SpringBoot2.x系列教程30--H2内存数据库使用教程详解

    前言 我们在开发或学习时,有时候我们想编写一个数据库操作的小demo,但又不想利用MySQL、Oracle等数据库进行建库建表操作,因为我只想写个小案例,感觉没必要弄个很大很麻烦的数据库。而且这个案例中的数据用完之后就不再需要了,所以也不需要进行数据的持久化。那有没有什么办法可以满足我们的这个需求呢? 既然你提了需求,那么 壹哥 就想办法满足你的需求,今天壹哥给大家介绍一个可以不进行持久化操作,用起来也没有那么麻烦的数据库,就是H2内存数据库! H2是一款内存数据库,适合我们在开发阶段、学习阶段调试代码使用,并不适用于生产阶段,可以满足我们学习与调试代码的需求。接下来就跟着我来学习一下这个
  • 08.21 17:41:44
    发表了文章 2022-08-21 17:41:44

    SpringBoot2.x系列教程29--SpringBoot整合JPA框架实现数据库CRUD操作

    前言 在上一章节中,壹哥 带大家在Spring Boot中整合了Mybatis框架,虽然Mybatis进行数据库操作已经很简单了,但是作为一个程序员,我们就得有追求极致的精神,就要想一下,还有没有第3种方式可以进行数据库操作呢? 其实是有的! 所以在这一章节中,我会继续带领大家学习在Spring Boot中整合JPA框架,利用JPA来实现数据库的操作。 一. JPA简介 1. JPA概念 JPA是Sun官方提出的Java持久化规范,是Java Persistence API的简称,中文名‘Java持久层API’,它本质上是一种ORM规范。 JPA通过 JDK 5.0 的 注解或XML 两
  • 08.21 17:38:49
    发表了文章 2022-08-21 17:38:49

    SpringBoot2.x系列教程28--SpringBoot中整合Mybatis框架实现数据库CRUD操作

    前言 在上一章节中,我带大家在Spring Boot中整合了JdbcTemplate,利用JdbcTemplate感觉会比较麻烦,所以我让各位思考有没有更简单易用的实现方式。那么接下来在这一章节中,我会继续带领大家学习在Spring Boot中整合Mybatis框架,利用Mybatis来实现数据库的操作。 一. Mybatis简介 1. MyBatis概述 MyBatis是一款优秀的持久层框架,它本来是Apache的一个开源项目iBatis。在2010年的时候,这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,在2013年
  • 08.21 17:35:35
    发表了文章 2022-08-21 17:35:35

    SpringBoot2.x系列教程27--使用SQL数据库

    前言 在前面的章节中,壹哥 给大家讲解了SpringBoot对Web模块的支持,但是我们开发时还有另一个重头戏,那就是进行数据库的操作。所以从本章开始,我会带大家学习在Spring Boot中实现数据库的操作。 我这里说的数据库,不仅仅有关系型数据库,比如MySQL,还包括非关系型数据库,比如Redis等。 我们现在进行关系型数据库操作时,可以选择的技术框架其实有很多,比如原生的Jdbc,还有Mybatis、JPA等开源框架,接下来我会分别针对这几个技术进行讲解,今天我先讲解在SpringBoot中利用JdbcTemplate实现数据库的CRUD操作。 一. JdbcTemplate 在开
  • 08.21 17:29:41
    发表了文章 2022-08-21 17:29:41

    SpringBoot2.x系列教程26--SpringBoot对CORS跨域访问的处理实现

    前言 我们在前后端分离的开发模式中,H5前端调用后端的URL接口,一般都是采用Ajax来实现调用,但是浏览器对Ajax的调用会有跨域的限制,这会导致调用后端接口失败。 What?你都不知道什么是跨域?那..... 你就看看本文吧!本篇文章中,我会给大家讲解同源策略、跨域访问,以及CORS跨域访问的解决方案,以及在SpringBoot中如何实现跨域访问。 一. 跨域问题简介 1. 什么是跨域访问? JavaScript出于安全方面的考虑,做了一个同源策略的限制,也就是说不允许跨域访问其他资源,更通俗的说就是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScri
  • 08.21 17:27:18
    发表了文章 2022-08-21 17:27:18

    SpringBoot2.x系列教程25--SpringBoot中整合Servlet、Filter和listener

    前言 在学习Servlet、Filter、Listener的时候,我们知道可以有2种注册方式,即可以在web.xml文件中注册,也可以利用对应的注解实现注册。那么在SpringBoot中,如果我们还要创建使用Servlet、Filter、Listener这3个类,那么该如何使用呢? 今天 壹哥 就带大家学习在SpringBoot中如何注册使用Servlet、Filter、Listener这3个类。 一. Spring Boot中注册配置Servlet,Filter和Listener 1. 概述 我们在Spring Boot中使用内嵌的Servlet容器时,可以通过使用Spring Bean的
  • 08.21 17:25:05
    发表了文章 2022-08-21 17:25:05

    SpringBoot2.x系列教程24--SpringBoot实现文件上传到OSS阿里云存储

    前言 在上一章节中,壹哥 给大家讲解了如何在SpringBoot实现单个文件和多个文件上传,但是那种方式现在挺多项目中都不再采用了,而是会把文件上传到云存储服务器中,比如阿里云、腾讯云、华为云等。所以今天 壹哥 利用阿里云的OSS存储,讲解如何把本地文件存储到云存储服务器中,本文会教给你如何购买配置阿里云OSS,并且教你如何实现文件上传到云空间,干货满满哦。 一. 阿里云OSS简介 1. 存储服务简介 我们进行项目开发,很多时候都需要进行文件、图片等的上传,对于很多项目来说,虽然有FastDFS等文件存储服务器技术,但其实我们完全没有必要搭建自己的图片等文件服务器。对一个小型非专业的应用来说,
  • 08.21 17:21:57
    发表了文章 2022-08-21 17:21:57

    SpringBoot2.x系列教程23--SpringBoot中实现文件上传

    前言 文件上传是开发时比较常见的功能之一,但是SpringBoot并没有提供额外的文件上传技术,还是依赖于SpringMVC的文件上传技术。因为在SpringBoot中集成了SpringMVC的很多常用功能,所以SpringBoot的Web模块中也包含了文件上传部分,其实实现起来没有太多的难度。 本章节 壹哥 就给大家讲一下在Spring Boot中如何实现单个文件和多个文件的上传功能。 一. 概述 1. MultipartFile简介 在SpringMVC时代,就提供了MultipartFile这个封装类,它包含了文件的二进制流和文件相关属性(文件名、大小等),而在Spring Boot中
  • 08.21 17:17:53
    发表了文章 2022-08-21 17:17:53

    SpringBoot2.x系列教程22--整合SpringMVC之处理请求参数的绑定(四)ConfigurableWebBindingInitializer

    前言 在上一章节中,壹哥 给大家讲解了WebBindingInitializer的作用,并实现了全局的参数类型转换。接下来在本章节中,我会继续带领大家学习一个新的API,那就是ConfigurableWebBindingInitializer,这个的用法要比之前的WebDataBinder更简化一下。所以我们可以利用ConfigurableWebBindingInitializer来替换WebDataBinder实现相同的功能,毕竟有简单的谁也不想用太复杂的。 一. ConfigurableWebBindingInitializer简介 1. 概述 在Spring MVC中可以使用WebBin
  • 08.21 17:16:02
    发表了文章 2022-08-21 17:16:02

    SpringBoot2.x系列教程21--WebBindingInitializer对请求参数实现全局校验

    前言 在上一章节中,我给大家讲解了WebDataBinder的含义及其用法,并实现了对请求参数的合法性校验和数据绑定。接下来我会为大家讲解另一个进行参数校验的类WebBindingInitializer,进而实现一个全局的数据绑定和参数校验。 在SpringMVC中使用WebBindingInitializer,会为每个特殊的请求初始化一个相应的WebDataBinder,WebBindingInitializer是可以实现全局级别的实现方案,区别于@InitBinder只对单个Controller有效。 一. WebBindingInitializer简介 在使用SpringMVC的时候,
  • 08.21 11:56:25
    发表了文章 2022-08-21 11:56:25

    SpringBoot2.x系列教程20--WebDataBinder对请求参数进行合法性校验和数据绑定

    前言 在上一章节的内容中,壹哥 给大家讲解了@InitBinder的原理及使用教程,我们利用InitBinder实现了对日期类型参数的格式转换。 本章节我会利用另一种技术WebDataBinder,继续处理SpringBoot中的参数传递及数据绑定,并在本文中带大家实现自定义的属性编辑器,以及自定义参数校验器。 一. WebDataBinder简介 在进行代码实现之前,我们先来看看WebDataBinder是个什么东东! 1. WebDataBinder的由来 在Servlet中,有一个方法:request.getParameter("paramName"),它会根据key返回一个Strin
  • 08.21 11:54:03
    发表了文章 2022-08-21 11:54:03

    SpringBoot2.x系列教程19--利用InitBinder处理请求参数的绑定(一)

    前言 我们在开发项目时,前后端之间需要密切配合,才能确保项目的稳定高效。前端通过URL接口给后端传递请求参数,后端根据这些不同的请求参数返回对应的响应信息。那么在这个传参和返回响应信息的过程中,会发生什么事情呢?我们能不能在这个过程中做一些干预操作呢?比如我们要添加一个学生的年龄信息,前端传递过来一个负数作为年龄参数,这个明显不合法,那么后端能不能对这个非法的参数做出一些处理呢? 所以今天 壹哥 就带大家在SpringBoot中,学习一些可以处理请求参数的技巧,确保我们的后端接口更加的安全健壮。 一. SpringMVC请求参数绑定流程 1. 请求参数绑定流程 我们在开发的时候,经常会从ht
  • 08.21 11:52:20
    发表了文章 2022-08-21 11:52:20

    SpringBoot2.x系列教程18--ContentNegotiatingViewResolver实现同一接口输出不同的View内容

    前言 在上一章节中,壹哥 给大家讲解了ContentNegotiating内容协商的简单使用及原理分析,让我们明白了内容协商在HttpMessage上的作用。 我们知道,利用ContentNegotiating可以实现访问同一个URL接口,可以访问不同格式的数据,比如返回JSON、XML格式;那么如果我想使用同样的数据内容来呈现出不同的View该怎么办呢?这就要用到我今天要讲的内容了。 内容协商不仅可以作用在HttpMessage上面,还可以作用在我们输出的View视图内容上,本章节我会继续讲解这一块的内容。 一. 内容协商视图解析器 1. 概述 我们利用ContentNegotiatin
  • 08.21 11:50:04
    发表了文章 2022-08-21 11:50:04

    SpringBoot2.x系列教程17--SpringBoot中对URL路径规则的特殊匹配实现方案

    前言 在前面的章节中,壹哥 带大家对JSON进行了序列化和反序列化的特殊处理,但是我们开发时,不仅仅JSON需要特殊处理,有时候就连我们的URL接口地址中也有需要特殊处理的地方。 比如,在一个URL中,“.” 字符一般是作为分隔符来定义格式的,例如/projects/spring-boot.json中的 “点” ,那么如果在URL带有这个 ”.“,我们要不要做特殊的处理呢? 另外有的人在访问URL时,可能会在尾部带有一个”/“,如果我们想识别URL路径尾部的斜杠,如“/home/”中的第2个 “/”,该怎么办? 这些都是一些比较特殊的需求,那么我们要不要处理呢?接下来 壹哥 就教各位把U
  • 08.21 11:47:34
    发表了文章 2022-08-21 11:47:34

    SpringBoot2.x系列教程16--SpringBoot中自定义JSON序列化器和反序列化器

    前言 在上一章节中,壹哥 给大家介绍了在SpringMVC框架中,我们可以使用HttpMessageConverter转换器类来转换HTTP请求和响应信息,并且可以实现对JSON信息的格式转换。我们知道,JSON是前后端信息传输的主要载体,我们大多数传递的参数都是利用JSON完成的,所以JSON是非常重要和常用的。而JSON信息本身也比较复杂,其中有些细节需要我们注意,比如JSON的序列化和反序列化。 一. 序列化与反序列化简介 1. 概述 HttpMessageConverter在转换http请求和响应的过程中,可以将对象转为JSON,这个过程我们可以称之为序列化;反过来也可以将JSON转为
  • 08.21 11:44:55
    发表了文章 2022-08-21 11:44:55

    SpringBoot2.x系列教程15--SpringBoot中整合HttpMessageConverters实现JSON格式化

    前言 在之前的章节中,壹哥 带着各位学习了如何在Spring Boot中进行SSM整合。那么接下来,我们会继续深入研究SpringBoot对SpringMVC框架的支持,学习SpringBoot如何进行更深度的定制化Web开发。 前面我讲过,SpringBoot严格的来说,应该是一种负责把其他已有框架整合在一起的工具,SpringBoot主要是把各种框架都整合集中在一起,简化我们的Web开发。所以很多的功能,其实都不是SpringBoot完成的,而是由SpringBoot中整合的其他框架来完成的。比如Web开发,更多的是由SpringMVC来完成,只是SpringBoot很好的把Spring
  • 08.21 11:41:26
    发表了文章 2022-08-21 11:41:26

    SpringBoot2.x系列教程14--SpringBoot整合Log日志功能记录异常信息

    前言 在前面的章节中,壹哥 带大家设计了RESTful风格的接口,还生成了在线文档。大家想一下,无论是设计RESTful风格的接口,还是生成Swagger在线接口文档,这些功能其实都可以算作是我们项目开发时搭建的”基础设施“,它们并不是项目的核心业务。这些”基础设施“可以方便我们的项目开发,为项目开发带来不同程度的便利,就好比我们想开个饭店,就得需要有水管、煤气、电等基础设施。 那么在项目开发时,我们还需要什么”基础设施“呢?今天 壹哥 再给大家介绍一个新的”基础设施“---Log日志!想一下,开发时我们需不需要进行项目调试?你的输出结果到底对不对?项目上线后要不要记录生产环境中的异常信息,
  • 08.21 11:37:14
    发表了文章 2022-08-21 11:37:14

    SpringBoot2.x系列教程13--SpringBoot中整合Swagger生成接口的在线文档

    前言 在前一章节中,壹哥 带大家学习了如何基于RESTful来设计我们的Web接口,后端团队把接口设计出来了,前端团队就可以直接调用了吗?这里我们想一下,前端团队怎么知道后端团队设计的接口长啥样呢?前端调用接口时,该传递什么样的参数?返回值什么含义?接口地址在哪?......这些信息前端团队统统不知道啊,因为接口是后端写的! 所以前后端之间在进行接口调用时,是不是还需要有个可以展示暴露接口的东西呢?这就是接口文档了! 今天 壹哥 就带大家学习一个比较牛逼的在线接口文档工具--Swagger! 一. Swagger2简介 我们可以在Spring Boot中构建RESTful风格的API接口,
  • 08.21 11:34:21
    发表了文章 2022-08-21 11:34:21

    SpringBoot2.x系列教程12--SpringBoot中构建RESTful风格的API接口

    前言 在前面的章节中,壹哥 给大家介绍了在前后端不分离的开发模式中,SpringBoot是如何处理静态资源的。但是现在真正的企业开发中,前后端分离才是比较流行的开发模式。而在这种开发模式中,前端团队负责UI界面,后端团队负责实现Web接口和核心业务逻辑,两个团队之间密切配合,共同完成项目开发。 前端需要调用后端的Web接口,而后端团队也需要把数据以合适的格式传递给前端,现在主流的数据载体是用JSON格式。另外因为Web接口是后端团队开发的,前端团队并不知道这个Web接口的定义和使用规则,所以现在比较流行基于RESTful风格的Web接口设计,这样设计出来的Web接口就都遵循着一定的规范,前端
  • 08.21 11:31:22
    发表了文章 2022-08-21 11:31:22

    SpringBoot2.x系列教程11--设置项目欢迎页面与自定义Favicon图标

    前言 在上一章节中,壹哥 给大家讲解了在SpringBoot项目中如何处理静态资源,明白了静态资源的存储位置,今天我会对静态资源做进一步的处理。 既然我们的项目中存在多个页面,那在项目启动时,首先应该展示哪个页面呢?我们不可能一次性把所有的页面都展现出来,总有一个默认展示的页面,这里我们把这个默认展示的页面成为欢迎页。那么在SpringBoot中,该如何设置欢迎页面呢?请仔细阅读今天的内容,壹哥 带你实现欢迎页面的设置。 一. Spring Boot中配置欢迎页面 接下来我们就开始学习,在SpringBoot中如何配置欢迎页面。 1. 默认欢迎页的源码 在Spring Boot中,默认的欢迎
  • 08.21 11:27:32
    发表了文章 2022-08-21 11:27:32

    SpringBoot2.x系列教程10--SpringBoot中对静态资源文件的配置处理

    前言 在前面的章节中,壹哥 跟大家说过,现在Java中的项目,有的是前后端分离的,页面和静态资源都是分离出去的,与后端的Java代码都不在一起。当然也有一些前后端不分离的项目,页面和静态资源是与Java代码存放在一个jar或war包中的,那如果是SpringBoot开发的前后端不分离项目,对这些静态资源该如何处理呢? 啥?你别告诉我,你连静态资源是什么都不知道哦! 如果你对静态资源没有清晰的认识,那我就说一下吧。一般我们说的静态资源,指的是项目中用到的图片、js、css、纯html等资源。其实在SpringBoot中,对静态资源的访问有着比较好的支持,基本使用默认配置就能满足我们的开发需求
  • 08.21 11:21:23
    发表了文章 2022-08-21 11:21:23

    SpringBoot2.x系列教程09--SpringBoot中支持jsp页面

    前言 在上一章节中,壹哥 跟大家讲过现在项目比较流行的开发模式,稍微大点的项目一般都是采用前后端分离的开发模式。如果我们的项目采用的是前后端不分离的模式,在SpringBoot中推荐我们使用Themeleaf模板来作为页面。 但是咱们都知道,Spring MVC中是支持JSP的,但是在Spring Boot中,其实不建议我们使用JSP。因为SpringBoot自带的嵌入式servlet容器对jsp的解析有使用限制,而且jsp的本质是Servlet,每个页面的加载都需要先进行编译,所以jsp的效率相对于html或Themeleaf都比较低。 但是如果你非要在Spring Boot中使用jsp
  • 08.21 11:19:03
    发表了文章 2022-08-21 11:19:03

    SpringBoot2.x系列教程08--SpringBoot中整合Thymeleaf动态模板

    前言 在前面的章节中,壹哥 带各位利用SpringBoot实现了SSM整合,发现现在SSM整合变得的非常简单,通过几个配置就能搭建出一个项目开发环境。但是在之前的案例中,我们并没有提供UI界面,那么在SpringBoot中如何整合UI界面呢?使用JSP展示页面,还是用HTML展示页面,或者还有其他方案? 在今天的内容里,壹哥 会带大家学习如何在SpringBoot中展示UI界面,这样大家以后就可以把数据信息在页面上渲染展示了。 一. Web开发方式简介 SpringBoot作为一个简化项目开发的利器,其实它为我们提供了一套完整的Web开发方案,从前端到后端,再到数据库、定时任务、消息队列等都
  • 08.21 11:15:37
    发表了文章 2022-08-21 11:15:37

    SpringBoot2.x系列教程07--SpringBoot中以注解方式实现SSM整合

    前言 在上一章节中,壹哥 跟大家讲过,在SpringBoot项目中,我们有两种SSM整合的方式: ● 1️⃣. XML方式; ● 2️⃣. 注解两种方式。 不知道现在你有没有掌握以XML文件方式进行的SSM整合呢?如果你有跟着我之前的文章编写了对应的代码,会发现以XML的实现方式实现SSM整合,虽然比传统的SSM整合过程简单,但是总感觉还是比较麻烦。所以接下来 壹哥 带大家再学习一种更简单的SSM整合方式,本节课咱们来学习以注解方式来实现SSM整合的过程。 一. 以注解方式实现SSM整合 1. 创建新的项目模块 首先请参考我之前的文章,在之前的项目基础之上,创建一个新的module模块。在新的
  • 08.21 11:09:08
    发表了文章 2022-08-21 11:09:08

    SpringBoot2.x系列教程06--SpringBoot中结合XML文件实现SSM整合

    前言 前面几篇文章中,壹哥 主要是带各位简单的认识一下SpringBoot,算是做了个开场白,接下来才是咱们学习SpringBoot的重点。所以从本篇文章开始,咱们逐步进入到更实用的学习上来,前面的配置只是为了让我们使用SpringBoot的时候更简单舒服一点。 接下来我们就看看在SpringBoot到底该怎么实现SSM整合吧。 一. 添加核心配置 1. SSM整合简介 在学习SpringBoot之前,相信各位都有SSM整合的经验,我们知道之前的SSM配置,真的是很痛苦,需要编写大量的xml文件,稍不注意就会出错。但是自从有了SpringBoot,这一切都变得轻松而简单了。 Spring
  • 08.21 11:05:25
    发表了文章 2022-08-21 11:05:25

    SpringBoot2.x系列教程05--SpringBoot花样配置之实现热部署配置及原理

    前言 上一章节中,壹哥 带各位学会了配置自定义的Web端口与项目根目录,今天我们再来看看其他的一些小花样。 在开发阶段,我们编写完代码后,就得需要点击启动按钮,重启项目后才能看到更新后的内容,每次都这么操作,就会就得有点麻烦,那能不能让项目随着代码的更新而自动重启呢? 既然有了这样的需求,SpringBoot就很暖心的给我们提供了这样的功能。今天我们就来看看SpringBoot中的另一个小花样配置---实现SpringBoot项目的热加载。 注意 网上也有不少教程把该功能称为热部署,我觉得叫做热加载更准确点! 一. SpringBoot热加载简介 在SpringBoot中实现热加载相对来说
  • 08.21 11:03:10
    发表了文章 2022-08-21 11:03:10

    SpringBoot2.x系列教程04--SpringBoot花样配置之自定义Web端口及开启日志功能

    前言 上一章节中,壹哥 带各位玩了个花样配置,设置了一个自定义的Banner图,而且 壹哥 还给各位留了个作业,让大家设计一个苍老师的图片给我看看,是不是都设计好了呢?别忘了发给我共享哦。 今天 壹哥 带各位再学习其他的一些花样技巧,比如设置自定义的Web端口号,启动Log日志功能等,这些可不是花架子了哦,这些都是很有用的实战技巧,这些都是我们项目开发时必须配置的设置。 一. 修改端口号和访问路径 我们知道,在任何一个Web项目中,都需要设置一个Web端口号,比如80、8080、8081等端口号。有的小伙伴说,我就没设置过端口号也没问题啊!你没配置过,那是因为使用的是默认的80或者8080端
  • 08.21 11:01:31
    发表了文章 2022-08-21 11:01:31

    SpringBoot2.x系列教程03--SpringBoot花样配置之自定义Banner

    前言 在前面的几个章节中,壹哥 带大家认识了SpringBoot的由来、优缺点,以及在SpringBoot中创建Web项目的3种方式。 既然我们现在已经把SpringBoot项目创建出来了,那么SpringBoot中都隐藏着哪些宝藏呢?接下来 壹哥 会带你一点点揭开她的神秘面纱,让你一点点看清SpringBoot的美!今天我们先来学习SpringBoot中的一个小花样--配置一个自定义的Banner图,咱们的学习也可以很有趣哦。 一. Spring Boot 常用配置 本章节主要给大家介绍 Spring Boot 中的一些常用配置,比如 自定义 Banner、配置日志、关闭特定的自动配置等。
  • 08.21 10:59:15
    发表了文章 2022-08-21 10:59:15

    SpringBoot2.x系列教程02--新纪元之SpringBoot创建Web项目的常用方式

    前言 在上一章节中,壹哥 给大家介绍了SpringBoot的优缺点,并重点介绍了其”约定大于配置“的思想,你现在还能记得吗? 而且上文中,壹哥 说我们创建SpringBoot项目有3种方式,我们已经学习了第一种创建项目的方式了,接下来还有另外两种创建项目的方式,这两种方式该怎么创建项目呢?今天 壹哥 就把剩余的两种方式也一股脑都抖搂给大家吧。 一. 以官网模板方式创建Web项目(了解) 首先 壹哥 给大家介绍第2种创建Web项目的方式,对于这种方式大家仅做了解即可,其原理与第一种以Spring Initializr创建项目的方式一样。 1. 在spring.io官网下载模板构建项目 首先我们
  • 08.21 10:57:01
    发表了文章 2022-08-21 10:57:01

    SpringBoot2.x系列教程01--新纪元之SpringBoot初相见

    前言 在上一篇文章中,壹哥 给大家介绍了SpringBoot诞生之前的世界,那时候的世界由Spring主导,负责提供一个供万物生长的土壤,并负责创建万物。但是Spring的世界里,各种生命的创造都很麻烦,需要经历各种流程,大家在这片土地上工作的特别疲累。所以大家都期待着能够出现一个可以让这个世界变得轻松的整合者,所以SpringBoot就来了,为简化而生,向幸福迈进! 接下来,壹哥 就带各位正式认识SpringBoot,看看SpringBoot到底是什么,有什么作用,我们该怎么用他! 一. 概述 当这个世界上大家都在推着独轮车运货的时候,主要就是看谁人多力气大,谁就能多运点东西。但是当汽车产
  • 08.21 09:47:35
    发表了文章 2022-08-21 09:47:35

    Spring Security系列教程30--系列文章总结

    一. 内容回顾 截止到本篇文章,一一哥 就带各位详细地学完了SpringSecurity中的各个核心内容,并结合源码带大家研读了SpringSecurity的底层设计。如果你认真地看完了我这个系列的每一篇文章,并跟着每篇教程中的代码编写了对应的案例,现在应该就可以达到从一开始对SpringSecurity的懵懂无知,到今天的熟练使用了。 最后 壹哥 再把整个系列的内容给各位梳理一下,方便各位复习掌握,我在这里做了一个SpringSecurity核心内容的思维导图,咱们一起看看吧。 1. SpringSecurity简介 通过本小节,我们了解到了SpringSecurity的基本概念、作用,
  • 08.21 09:46:50
    发表了文章 2022-08-21 09:46:50

    Spring Security系列教程29--OAuth2.0协议详解

    前言 截止到现在,一一哥 已经带各位把Spring Security中的主要功能学完了,并且剖析了这些内容的底层实现原理,希望你可以有所收获。 但是在安全认证领域,还有另一种很重要的授权机制---OAuth2.0开放授权。而且OAuth2.0开放授权与Spring Security经常配合使用,这两者之间可以说是“焦不离孟,孟不离焦”的搭配关系,所以为了进一步掌握Spring Security,在这里 壹哥 给大家再介绍另一个OAuth2.0开放授权协议。 OAuth2.0开放授权并不是Spring Security框架里的一部分,只是两者经常配合使用而已,所以我得先给大家普及一下OAut
  • 08.21 09:43:16
    发表了文章 2022-08-21 09:43:16

    Spring Security系列教程28--Spring Security实现CAS单点登录下篇--搭建CAS客户端

    前言 在上一章节中,一一哥 带各位搭建了CAS Server端项目,也就是我们构建了一个统一的单点登录认证中心,接下来就可以搭建CAS客户端项目,然后实现客户端与服务端之间的交互认证,从而完成单点登录。 接下来各位就跟着 壹哥 搭建CAS客户端,最终把单点登录实现出来吧! 一. 搭建CAS客户端 1. 创建新项目 我们在之前的Spring Security项目中,创建一个新的module模块,作为CAS Client项目,如下图。 2. 引入依赖 然后在这个模块的pom.xml文件中,引入相关依赖。 <dependencies> <dependency>
  • 08.21 09:40:19
    发表了文章 2022-08-21 09:40:19

    Spring Security系列教程27--Spring Security实现CAS单点登录--搭建CAS服务端

    前言 在上一章节中,一一哥 给各位介绍了单点登录的概念、执行流程原理,并且给大家介绍了CAS单点登录解决方案,在CAS解决方案中,我们需要搭建CAS服务端和CAS客户端,本文就开始给大家介绍如何实现CAS服务端。在这里,我给大家介绍一个开源的CAS服务端模板cas-overlay-template,接下来请跟我一起看看怎么实现吧。 一. 搭建CAS服务器 1. 概述 为了测试我前面讲解的CAS请求执行流程,我们需要搭建一个CAS测试环境,本篇内容主要是带领大家搭建一个CAS Server服务端环境。搭建CAS Server环境,需要依赖如下环境: ● JDK1.8+ ● Maven3.6+
  • 08.21 09:33:40
    发表了文章 2022-08-21 09:33:40

    Spring Security系列教程26--Spring Security实现CAS单点登录上篇--概述

    前言 从本章节开始,一一哥 会给各位讲解一个很常见也很重要的知识点,就是单点登录!现在的大型分布式项目,基本都会考虑实现单点登录,而且现在网上也有很多单点登录的实现方案、开源项目,但是针对单点登录的实现原理,讲解的并不是很细。你可以参考其他开源案例项目,再结合本系列文章,就可以对单点登录有较为深入的认识。 如果你对单点登录是什么也不知道,那就先看本文,了解单点登录的含义吧。 一. 单点登录 1. 产生背景 很早的时候,一家公司里可能只有一个Server,后来慢慢的Server开始变多了,而每个Server都要进行注册登录,退出的时候又要一个个退出,用户体验很不好!比如,我们想访问百度系列,要
  • 08.21 09:31:54
    发表了文章 2022-08-21 09:31:54

    Spring Security系列教程25--解决Spring Security环境中的跨域问题

    前言 上一章节中,一一哥 给各位讲解了同源策略和跨域问题,以及跨域问题的解决方案,在本篇文章中,我会带大家进行代码实现,看看在Spring Security环境中如何解决跨域问题。 一. 启用Spring Security 的CORS支持 1. 创建web接口 我先在SpringBoot环境中,创建一个端口号为8080的web项目,注意这个web项目没有引入Spring Security的依赖包。然后在其中创建一个IndexController,定义两个测试接口以便被ajax进行跨域访问。 @RestController public class IndexController {
  • 08.21 09:29:09
    发表了文章 2022-08-21 09:29:09

    Spring Security系列教程24--Spring Security环境中存在的跨域问题

    前言 在前后端不分离时,我们利用前面讲过的Spring Security的各种知识点,就可以实现对项目的权限管控。但是在前后端分离时,尤其是在引入了Spring Security后的前后端分离时,我们从前端发来的请求,就会存在一些问题。这些问题就是跨域而导致的问题! 对于前后端分离时,跨域而产生的安全问题,我们该怎么解决呢?接下来请跟着 一一哥 来学习如何解决吧! 在解决跨域问题之前,我们先来了解一下何为跨域问题,怎么产生的跨域问题,怎么解决这个跨域问题。 一. 跨域问题的由来 1. 同源策略 跨域问题的产生,源自浏览器的一个同源策略。 1.1 同源策略的概念 同源策略是由 Netscap
  • 08.21 09:27:05
    发表了文章 2022-08-21 09:27:05

    Spring Security系列教程23--Spring Security的四种权限控制方式

    前言 在前面的章节中,一一哥 已经给大家介绍了Spring Security的很多功能,在这些众多功能中,我们知道其核心功能其实就是 认证+授权。在前面我们分别基于内存模型、基于默认的数据库模型、基于自定义数据库模型实现了认证和授权功能,但是不管哪种方式,我们对某个接口的拦截限制,都是通过编写一个SecurityConfig配置类,在该类的configure(HttpSecurity http)方法中,通过http.authorizeRequests().antMatchers("/admin/**")...这样的代码进行的权限控制。 这种权限控制方法虽然也可以实现对某些接口的拦截或放行,但
  • 08.21 09:24:32
    发表了文章 2022-08-21 09:24:32

    Spring Security系列教程22--Spring Security中的密码加密

    前言 截止到现在,一一哥 已经带各位学习了很多关于Spring Security的知识点,但是Spring Security作为一个安全框架,其中必然就应该带有安全加密方面的内容,所以本篇文章,一一哥 就带各位来学习Spring Security中的密码加密机制。 Lets go! 一. 密码加密简介 1. 散列加密概述 我们开发时进行密码加密,可用的加密手段有很多,比如对称加密、非对称加密、信息摘要等。在一般的项目里,常用的就是信息摘要算法,也可以被称为散列加密函数,或者称为散列算法、哈希函数。这是一种可以从任何数据中创建数字“指纹”的方法,常用的散列函数有 MD5 消息摘要算法、安全散列
  • 08.21 09:19:42
    发表了文章 2022-08-21 09:19:42

    Spring Security系列教程21--会话管理之实现集群会话

    前言 现在我们已经掌握了如何防御会话固定攻击,处理会话过期,对会话进行并发控制等,但是这些会话处理手段都是针对单机环境下的,在现在的大型项目中,很多时候都是采用分布式开发方案。一旦涉及到分布式方案,就意味着我们的服务器可能会有多台,而我们的项目也可能会根据业务被拆分成了若干个子服务,每个服务又可能被部署在不同的服务器上。这时候问题就来了,以前单台服务器的时候,我们的会话很好管理,现在有多台服务器,那会话岂不是有多个了?这时候我们把服务器集群环境下的会话和单个用户关联起来? 啊啊啊...是不是感觉很复杂! 别害怕!Spring Security其实给我们提供了对应的解决方案,就是 一一哥 今
  • 08.21 09:15:51
    发表了文章 2022-08-21 09:15:51

    Spring Security系列教程20--会话管理之会话并发控制

    前言 现在我们已经掌握了如何防御会话固定攻击,以及在会话过期时的处理策略,但是这些都是针对单个HttpSession来说的,对于会话来说,我们还有另一种情况需要考虑:会话并发控制! 那什么是会话并发控制呢?假如我想实现 “在我们的网站中,同一时刻只允许一个用户登录” 这样的效果,该怎么做? 请各位带着以上的这些问题,跟着 一一哥 继续往下学习吧。 一. 会话并发控制 1. 会话并发控制 首先我们来了解一下会话并发控制的概念。 有时候出于安全的目的,我们可能会有这样的需求,就是规定在同一个系统中,只允许一个用户在一个终端上登录,这其实就是对会话的并发控制。 2. 并发控制实现思路 如果我们
  • 08.21 09:13:07
    发表了文章 2022-08-21 09:13:07

    Spring Security系列教程19--会话管理之处理会话过期

    前言 在上一章节中,一一哥 给各位讲解了HTTP协议、会话、URL重新、会话固定攻击等概念,并且实现了对会话固定攻击的防御拦截。 在Spring Security中,其实除了可以对会话固定攻击进行拦截之外,还可以对会话过期进行处理,也就是会话可能会过期,过期了该怎么处理。接下来请各位跟着 壹哥 继续学习,看看会话过期时到底怎么处理的吧。 一. 会话过期 1. 会话过期概念 在处理会话过期之前,我们首先得知道啥是会话过期。 所谓的会话过期,是指当用户登录网站后,较长一段时间没有与服务器进行交互,将会导致服务器上的用户会话数据(即session)被销毁。此时,当用户再次操作网页时,如果服务器进
  • 08.21 09:10:02
    发表了文章 2022-08-21 09:10:02

    Spring Security系列教程18--会话管理之防御固定会话攻击

    前言 在前面几个章节中,一一哥 带各位学习了如何实现基于数据库进行认证授权,如何给登录界面添加图形验证码,如何进行自动登录和注销登录,那么Spring Security的功能难道只有这些吗?肯定不是的,它的宝藏还有很多,我们还需要继续往下学习研究。 今天 壹哥 就带各位学习另一个很重要的功能,就是会话管理! 你可能会问:会话管理?干嘛的?有哪些效果? 想一下: 我们的项目上线后,如果黑客对我们的项目进行会话固定攻击怎么办? 如果用户登录后,长时间不进行任何操作,要不要让用户重新登录? 如果你的登录账号,在多台设备上同时登录该怎么实现和处理? ...... 这些问题会话管理都可以替我们解决
  • 08.21 09:07:51
    发表了文章 2022-08-21 09:07:51

    Spring Security系列教程17--注销登录的实现及原理分析

    前言 经过前面几个章节的学习,一一哥 已经带各位实现了两种方式的自动登录。咱们现在已经学会了如何自动登录,那么又该如何退出登录呢?接下来请再跟着 壹哥 把注销登录功能也实现一下吧。 一. 注销登录 1. 代码实现 我们直接在之前案例的基础上进行代码实现,这里还是在SecurityConfig类中配置,其实退出登录功能的实现很简单。 @EnableWebSecurity(debug = true) public class SecurityConfig extends WebSecurityConfigurerAdapter { @Value("${spring.security.re
  • 08.21 09:06:14
    发表了文章 2022-08-21 09:06:14

    Spring Security系列教程16--基于持久化令牌方案实现自动登录

    前言 在上一章节中,一一哥 带各位基于散列加密方案实现了自动登录,并且给各位介绍了散列加密算法,其实还有另一种自动登录的实现方案,也就是基于持久化令牌方案来进行实现。接下来请跟 一一哥 学习这种方案该怎么实现吧。 一. 持久化令牌方案简介 1. 持久化令牌方案 有的小伙伴会问,既然我们要基于持久化令牌来实现自动登录,那啥是持久化令牌啊?所以 一一哥 先给大家做个概念解释。 所谓的持久化令牌的实现方案,其实在交互上与我们前面章节讲的散列加密方案一致,只不过是在用户勾选Remember-me之后,将生成的token令牌发送到用户浏览器,并在用户下次访问系统时读取该令牌进行认证。不同的是,持久化令
  • 08.21 09:02:47
    发表了文章 2022-08-21 09:02:47

    Spring Security系列教程15--基于散列加密方案实现自动登录

    前言 在前面的2个章节中,一一哥 带大家实现了在Spring Security中添加图形验证码校验功能,其实Spring Security的功能不仅仅是这些,还可以实现很多别的效果,比如实现自动登录,注销登录等。 有的小伙伴会问,我们为什么要实现自动登录啊?这个需求其实还是很常见的,因为对于用户来说,他可能经常需要进行登录以及退出登录,你想想,如果用户每次登录时都要输入自己的用户名和密码,是不是很烦,用户体验是不是很不好? 所以为了提高项目的用户体验,我们可以在项目中添加自动登录功能,当然也要给用户提供退出登录的功能。接下来就跟着 一一哥 来学习如何实现这些功能吧! 一. 自动登录简介 1
  • 08.21 08:59:09
    发表了文章 2022-08-21 08:59:09

    Spring Security系列教程14--基于自定义的认证提供器实现图形验证码

    前言 在上一个章节中,一一哥 带大家实现了如何在Spring Security中添加执行自定义的过滤器,进而实现验证码校验功能。这种实现方式,只是实现验证码功能的方式之一,接下来我们再学习另一种实现方式,就是利用AuthenticationProvider来实现验证码功能,通过这个案例,我们学习如何进行自定义AuthenticationProvider。 一. 认证提供器简介 在上一章节中,我带各位利用自定义的过滤器实现了图形验证码效果,接下来我们利用另一种方式,基于自定义的认证提供器来实现图形验证码。 1. 认证提供器AuthenticationProvider 在第11章节中,壹哥 给大家
  • 发表了文章 2023-02-02

    浅谈未来10年IT行业的变局与抉择,带你认识元宇宙

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程40--SpringBoot中默认的缓存实现方案

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程31--SpringBoot整合H2内存数据库实现CRUD操作

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程30--H2内存数据库使用教程详解

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程29--SpringBoot整合JPA框架实现数据库CRUD操作

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程28--SpringBoot中整合Mybatis框架实现数据库CRUD操作

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程27--使用SQL数据库

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程26--SpringBoot对CORS跨域访问的处理实现

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程25--SpringBoot中整合Servlet、Filter和listener

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程24--SpringBoot实现文件上传到OSS阿里云存储

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程23--SpringBoot中实现文件上传

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程22--整合SpringMVC之处理请求参数的绑定(四)ConfigurableWebBindingInitializer

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程21--WebBindingInitializer对请求参数实现全局校验

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程20--WebDataBinder对请求参数进行合法性校验和数据绑定

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程19--利用InitBinder处理请求参数的绑定(一)

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程18--ContentNegotiatingViewResolver实现同一接口输出不同的View内容

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程17--SpringBoot中对URL路径规则的特殊匹配实现方案

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程16--SpringBoot中自定义JSON序列化器和反序列化器

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程15--SpringBoot中整合HttpMessageConverters实现JSON格式化

  • 发表了文章 2022-08-21

    SpringBoot2.x系列教程14--SpringBoot整合Log日志功能记录异常信息

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息