环境准备
在具体的教程开始之前,我们需要有一个基础项目环境。之后的教程都在这个基础项目之上扩展。先大概介绍一下开发环境
OS:windows 10 1909
IDE:intellij idea 2019.3.4
JDK:oracle jdk 8u241
框架:spring boot 2.2.5.RELEASE
准备开发环境这种操作我就不演示了,这种是一年级的操作,毕竟我们是六年级。
pom
项目是用maven管理的,gradle和ant大同小异,转换一下。
<?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>2.2.5.RELEASE</version><relativePath/></parent><groupId>com.syhcgo</groupId><artifactId>spring-security-demo</artifactId><version>0.0.1-SNAPSHOT</version><name>spring-security-demo</name><description>Demo project for Spring Security</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
上面是我项目pom的全部代码,大家可以参考一下。源码和文档最好也下载一下,方便我们后面一探究竟。上面这些依赖是基础依赖,之后的教程中用到的依赖到时候我会特别说明。
准备接口
本次系列教程是关于认证和授权的,所以我们需要准备一些接口以便之后我们来验证需求(需要保护的资源都没有那还玩啥)。
我们需要准备两种接口:第一种是rest接口,仅提供数据;第二种接口提供页面;相信这两种接口大家在平常工作中经常写,很熟悉。
rest接口
@RestController@RequestMapping("/rest/hello")public class HelloRestController {@GetMappingpublic String hello() {return "hello, man";}}
提供页面
@Controller@RequestMapping("/page/hello")public class HelloPageController {@GetMappingpublic String hello() {return "hello";}}
页面:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>欢迎页</title></head><body><h1>hello,man</h1></body></html>
最后整个项目的目录结构如下:
到此我们项目就准备好了。
