环境准备

在具体的教程开始之前,我们需要有一个基础项目环境。之后的教程都在这个基础项目之上扩展。先大概介绍一下开发环境
OS:windows 10 1909
IDE:intellij idea 2019.3.4
JDK:oracle jdk 8u241
框架:spring boot 2.2.5.RELEASE

准备开发环境这种操作我就不演示了,这种是一年级的操作,毕竟我们是六年级。

pom

项目是用maven管理的,gradle和ant大同小异,转换一下。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>2.2.5.RELEASE</version>
  9. <relativePath/>
  10. </parent>
  11. <groupId>com.syhcgo</groupId>
  12. <artifactId>spring-security-demo</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>spring-security-demo</name>
  15. <description>Demo project for Spring Security</description>
  16. <properties>
  17. <java.version>1.8</java.version>
  18. </properties>
  19. <dependencies>
  20. <dependency>
  21. <groupId>org.springframework.boot</groupId>
  22. <artifactId>spring-boot-starter-thymeleaf</artifactId>
  23. </dependency>
  24. <dependency>
  25. <groupId>org.springframework.boot</groupId>
  26. <artifactId>spring-boot-starter-web</artifactId>
  27. </dependency>
  28. <dependency>
  29. <groupId>org.projectlombok</groupId>
  30. <artifactId>lombok</artifactId>
  31. <optional>true</optional>
  32. </dependency>
  33. <dependency>
  34. <groupId>org.springframework.boot</groupId>
  35. <artifactId>spring-boot-starter-test</artifactId>
  36. <scope>test</scope>
  37. <exclusions>
  38. <exclusion>
  39. <groupId>org.junit.vintage</groupId>
  40. <artifactId>junit-vintage-engine</artifactId>
  41. </exclusion>
  42. </exclusions>
  43. </dependency>
  44. </dependencies>
  45. <build>
  46. <plugins>
  47. <plugin>
  48. <groupId>org.springframework.boot</groupId>
  49. <artifactId>spring-boot-maven-plugin</artifactId>
  50. </plugin>
  51. </plugins>
  52. </build>
  53. </project>

上面是我项目pom的全部代码,大家可以参考一下。源码和文档最好也下载一下,方便我们后面一探究竟。上面这些依赖是基础依赖,之后的教程中用到的依赖到时候我会特别说明。

准备接口

本次系列教程是关于认证和授权的,所以我们需要准备一些接口以便之后我们来验证需求(需要保护的资源都没有那还玩啥)。

我们需要准备两种接口:第一种是rest接口,仅提供数据;第二种接口提供页面;相信这两种接口大家在平常工作中经常写,很熟悉。

rest接口

  1. @RestController
  2. @RequestMapping("/rest/hello")
  3. public class HelloRestController {
  4. @GetMapping
  5. public String hello() {
  6. return "hello, man";
  7. }
  8. }

提供页面

  1. @Controller
  2. @RequestMapping("/page/hello")
  3. public class HelloPageController {
  4. @GetMapping
  5. public String hello() {
  6. return "hello";
  7. }
  8. }

页面:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>欢迎页</title>
  6. </head>
  7. <body>
  8. <h1>hello,man</h1>
  9. </body>
  10. </html>

最后整个项目的目录结构如下:
搭建基础项目环境 - 图1

到此我们项目就准备好了。