当前位置: 首页 > news >正文

基于 Spring Security 的最小项目模板

 一、简介

        本文应该是目前为止最新、最简洁的实现 Spring Security 认证授权功能的最小项目(附源代码)。言归正传,一个实际项目的后台至少包含以下两个基本功能:

1、连接数据库

2、用户注册、登陆、认证和授权功能

        特别是用户的认证和授权,因为使用了 Spring Boot 框架,所以建议使用 Spring Security 来实现,但是网络上关于 Spring Security 的教程水平参差不齐,很多教程把一个简单的问题复杂化,我刚开始看也是一头雾水,越看越怀疑自己,越看越想放弃,当我花了不少时间从各个渠道学习、对比和研究后发现:其实 Spring Security 并不复杂,而且还很简单。

        下面我们就来看看搭建包含以上两个基本功能的最小项目的流程。

        源码位置:  https://github.com/hujhcv/Spring-Security-Template-Project 

二、项目技术栈

        本文使用到了以下的技术栈:

Spring Boot、Spring Security、PostgreSQL、MyBatis-Plus、jjwt、Lombok、IntelliJ IDEA、Apifox。

        如果你是新手请无脑使用以上技术,因为以上技术我都是花了不少时间和其竞品对比后才选定的。下面简要说一下选这些技术的原因:

        数据库,我对比了 PostgreSQL 和 MySQL,PostgreSQL 是完全开源的,而且这几年发展势头迅猛,很多大厂都切换到了 PostgreSQL;

        数据库操作框架,MyBatis-Plus 与 Spring Data JPA 的对比,虽然 Spring Data JPA 开发效率很高,但是 MyBatis-Plus 的性能更好,而且可以很方便实现自定义的数据库操作,同时他还是国产框架,国内使用的人非常多;

        JWT操作库,我对比了 jjwt 和 hutool-jwt,jjwt 可以按需引入,包会更小,而且操作jwt的方式更加符合jwt的原理;

        IDE 的比较,新手请无脑选择 IntelliJ IDEA,它对Spring Boot 项目的创建非常友好。

        接口测试软件,我们比较了 postman 和 Apifox,postman在我电脑上一直启动不了,直接放弃,支持国产 Apifox.

三、项目环境

        请先安装好以下软件和环境

Java 17:目前我们使用的 Spring Boot 稳定版是 3.5.6, 支持的最小Java 版本是17,请不要使用更旧的版本;

IntelliJ IDEA 软件;

PostgreSQL 数据库;

Apifox 接口测试软件

四、创建数据库

        打开 pgAdmin 4 软件(安装 PostgreSQL 数据库时会一起安装),右键 Databases 新建一个数据库,比如名字叫做 “health_manager” ,如下图所示:

五、创建项目

5.1、新建项目        

        打开 IntelliJ IDEA 软件,新建 Spring Boot 项目,假设我们的项目名称为 HealthManager,其它参考红框位置的设置,如下图所示:

5.2、添加依赖项

        打开项目的 pom.xml 文件,添加 MyBatis-Plus 和 jjwt 依赖,如下图所示:

        添加完成后 pom.xml 文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.5.6</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.liimou</groupId><artifactId>HealthManager</artifactId><version>0.0.1-SNAPSHOT</version><name>HealthManager</name><description>HealthManager</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version><jjwt.version>0.13.0</jjwt.version><mybatis-plus.version>3.5.14</mybatis-plus.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><scope>runtime</scope></dependen
http://www.dtcms.com/a/420734.html

相关文章:

  • SpringBoot 自定义字典翻译组件
  • Interview-SpringCloud/SpringBoot
  • 爱站网ip反查域名京东官方网上商城
  • 做网站要不要营业执照网站大全网址大全
  • 济南网站建设yigeseo南充市网站建设
  • wordpress 经典博客主题济南seo怎么优化
  • 网站改版引导站内营销推广途径
  • 贵州建设学校网站乌海seo
  • 如何优化网站目录结构广州各区风险区域最新动态
  • 广西和城乡建设厅网站作品集怎么做网页
  • wordpress动漫网站做电影网站怎样赚钱吗
  • 南山做网站推广乐云seo娄底优秀网站建设
  • flask做网站工具网站建设罗贤伟
  • 永川网站建设公司网站该如何做
  • 网站建设的视频教程导视设计方法
  • CKAD-CN 考试知识点分享(18) Secret - 2
  • 一般做网站多少钱无极游戏网
  • Python快速入门专业版(四十九):Python异常基础:什么是异常?常见异常类型与触发场景
  • 如何找到网站管理员广东粤建设计院网站
  • 网站建设竞价托管外包注册域名多长时间
  • 网站建设 腾邢台发布网
  • 北仑网站网页建设公司自己做网站吗
  • OpenMP并行化编程指南
  • 网站建设公司工资设置时间线 wordpress
  • 免费网站管理软件广告策划案ppt优秀案例
  • 制作网站报价单h5易企秀官网
  • 建设机械网站案例分析福建seo外包
  • AI任务相关解决方案19-一种基于多技术融合的智能医学外科决策与执行系统,外科Agent在胆囊切除术
  • 淘宝做seo要建网站吗dede网站搬家更换空间重新安装
  • SpringAop的快速入门