Skip to content

Commit 34c2eb9

Browse files
committed
更新目录
1 parent 68f2ab0 commit 34c2eb9

File tree

11 files changed

+243
-30
lines changed

11 files changed

+243
-30
lines changed

2.x/README.md

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,20 @@
1414

1515
## 教程目录(2.x版本)
1616

17-
连载中...Star关注支持一下,随时获得更新信息!
17+
本教程内容持续更新连载中!**Star关注**支持一下,随时获得更新信息!
1818

19-
### 基础知识
19+
### 快速入门
2020

2121
- [Spring Boot 2.x基础教程:版本关系](http://blog.didispace.com/spring-cloud-alibaba-version/)
2222
- [Spring Boot 2.x基础教程:快速入门](http://blog.didispace.com/spring-boot-learning-21-1-1/)
2323
- [Spring Boot 2.x基础教程:工程结构推荐](http://blog.didispace.com/spring-boot-learning-21-1-2/)
2424

25-
### 配置文件
25+
### 配置详解
2626

2727
- [Spring Boot 2.x基础教程:配置文件详解](http://blog.didispace.com/spring-boot-learning-21-1-3/)
28-
- [Spring Boot 2.x基础教程:配置元数据的应用 ](http://blog.didispace.com/spring-boot-learning-24-1-6/)
2928
- [Spring Boot 2.x基础教程:2.4版本前后的多环境配置变化](http://blog.didispace.com/spring-boot-learning-24-1-4/)
3029
- [Spring Boot 2.x基础教程:2.4版本前后的分组配置变化](http://blog.didispace.com/spring-boot-learning-24-1-5/)
30+
- [Spring Boot 2.x基础教程:配置元数据的应用 ](http://blog.didispace.com/spring-boot-learning-24-1-6/)
3131
- [Spring Boot 2.x基础教程:加密配置中的敏感信息](http://blog.didispace.com/spring-boot-learning-2-1-5/)
3232

3333
### API开发
@@ -56,7 +56,7 @@
5656
- [Spring Boot 2.x基础教程:MyBatis的多数据源配置](http://blog.didispace.com/spring-boot-learning-21-3-9/)
5757
- [Spring Boot 2.x基础教程:事务管理入门](http://blog.didispace.com/spring-boot-learning-21-3-10/)
5858
- [Spring Boot 2.x基础教程:使用Flyway管理数据库版本](http://blog.didispace.com/spring-boot-learning-24-3-11/)
59-
- [Spring Boot 2.x基础教程:使用JTA实现分布式事务](http://blog.didispace.com/spring-boot-learning-24-3-12/)
59+
- [Spring Boot 2.x基础教程:使用JTA实现多数据源的事务管理](http://blog.didispace.com/spring-boot-learning-24-3-12/)
6060
- [Spring Boot 2.x基础教程:2.5版本后数据脚本初始化的变动](http://blog.didispace.com/spring-boot-learning-25-3-13/)
6161

6262
**加速利器:各种缓存的使用**
@@ -79,34 +79,40 @@
7979
- [Spring Boot 2.x基础教程:使用 Thymeleaf开发Web页面](http://blog.didispace.com/spring-boot-learning-21-4-1/)
8080
- [Spring Boot 2.x基础教程:使用 ECharts 绘制各种华丽的数据图表](http://blog.didispace.com/spring-boot-learning-21-4-2/)
8181
- [Spring Boot 2.x基础教程:实现文件上传](http://blog.didispace.com/spring-boot-learning-21-4-3/)
82-
- [Spring Boot 2.x基础教程:实现多文件上传](http://blog.didispace.com/spring-boot-learning-21-4-4/)
83-
- [Spring Boot 2.x基础教程:文件上传的单元测试怎么写](https://blog.didispace.com/spring-boot-learning-21-4-5/)
82+
- [Spring Boot 2.x基础教程:多个文件的上传](http://blog.didispace.com/spring-boot-learning-21-4-4/)
83+
- [Spring Boot 2.x基础教程:文件上传的单元测试怎么写](http://blog.didispace.com/spring-boot-learning-21-4-5/)
8484

8585
### 任务管理
8686

87-
**定时任务`@Scheduled`实现**
87+
**定时任务**
8888

8989
- [Spring Boot 2.x基础教程:使用@Scheduled实现定时任务](https://blog.didispace.com/spring-boot-learning-2-7-1)
90-
91-
**定时任务:Elastic Job实现**
92-
9390
- [Spring Boot 2.x基础教程:使用Elastic Job实现定时任务](https://blog.didispace.com/spring-boot-learning-2-7-2)
9491
- [Spring Boot 2.x基础教程:使用Elastic Job的分片配置提高执行效率](https://blog.didispace.com/spring-boot-learning-2-7-3)
9592
- [Spring Boot 2.x基础教程:使用Elastic Job的namespace防止任务名冲突](https://blog.didispace.com/spring-boot-learning-2-7-4)
9693

97-
**异步任务`@Async`实现**
94+
**异步任务**
9895

9996
- [Spring Boot 2.x基础教程:使用@Async实现异步任务](https://blog.didispace.com/spring-boot-learning-2-7-5)
10097
- [Spring Boot 2.x基础教程:配置@Async异步任务的线程池](https://blog.didispace.com/spring-boot-learning-2-7-6)
10198
- [Spring Boot 2.x基础教程:如何隔离@Async异步任务的线程池](https://blog.didispace.com/spring-boot-learning-2-7-7)
10299
- [Spring Boot 2.x基础教程:配置线程池的拒绝策略](https://blog.didispace.com/spring-boot-learning-2-7-8)
103100

104-
### 常见问题
101+
### 其他内容
102+
103+
- [Spring Boot自定义启动Banner](http://blog.didispace.com/spring-boot-banner/)
104+
- [实现邮件发送:简单邮件、附件邮件、嵌入资源的邮件、模板邮件](http://blog.didispace.com/springbootmailsender/)
105+
- [使用Spring StateMachine框架实现状态机](http://blog.didispace.com/spring-statemachine/)
106+
- [Spring Boot应用的后台运行配置](http://blog.didispace.com/spring-boot-run-backend/)
107+
108+
109+
## 问题与思考
105110

106111
- [为什么加了@Transactional注解,事务没有回滚?](http://blog.didispace.com/transactional-not-rollback/)
107112
- [为什么启动时候API路径都没了?](http://blog.didispace.com/spring-boot-learning-21-2-6/)
108113
- [使用Java 8中LocalDate等时间日期类的问题解决](http://blog.didispace.com/Spring-Boot-And-Feign-Use-localdate/)
109114
- [Request header is too large 如何解决?](https://blog.didispace.com/request-header-is-too-large/)
115+
- [Spring Boot自动化配置的利弊及解决之道](http://blog.didispace.com/spring-boot-disable-autoconfig/)
110116

111117
## 版本资讯
112118

2.x/README_zh.md

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,20 @@
1616
1717
## 教程目录(2.x版本)
1818

19-
连载中...Star关注支持一下,随时获得更新信息!
19+
本教程内容持续更新连载中!**Star关注**支持一下,随时获得更新信息!
2020

21-
### 基础知识
21+
### 快速入门
2222

2323
- [Spring Boot 2.x基础教程:版本关系](http://blog.didispace.com/spring-cloud-alibaba-version/)
2424
- [Spring Boot 2.x基础教程:快速入门](http://blog.didispace.com/spring-boot-learning-21-1-1/)
2525
- [Spring Boot 2.x基础教程:工程结构推荐](http://blog.didispace.com/spring-boot-learning-21-1-2/)
2626

27-
### 配置文件
27+
### 配置详解
2828

2929
- [Spring Boot 2.x基础教程:配置文件详解](http://blog.didispace.com/spring-boot-learning-21-1-3/)
30-
- [Spring Boot 2.x基础教程:配置元数据的应用 ](http://blog.didispace.com/spring-boot-learning-24-1-6/)
3130
- [Spring Boot 2.x基础教程:2.4版本前后的多环境配置变化](http://blog.didispace.com/spring-boot-learning-24-1-4/)
3231
- [Spring Boot 2.x基础教程:2.4版本前后的分组配置变化](http://blog.didispace.com/spring-boot-learning-24-1-5/)
32+
- [Spring Boot 2.x基础教程:配置元数据的应用 ](http://blog.didispace.com/spring-boot-learning-24-1-6/)
3333
- [Spring Boot 2.x基础教程:加密配置中的敏感信息](http://blog.didispace.com/spring-boot-learning-2-1-5/)
3434

3535
### API开发
@@ -58,7 +58,7 @@
5858
- [Spring Boot 2.x基础教程:MyBatis的多数据源配置](http://blog.didispace.com/spring-boot-learning-21-3-9/)
5959
- [Spring Boot 2.x基础教程:事务管理入门](http://blog.didispace.com/spring-boot-learning-21-3-10/)
6060
- [Spring Boot 2.x基础教程:使用Flyway管理数据库版本](http://blog.didispace.com/spring-boot-learning-24-3-11/)
61-
- [Spring Boot 2.x基础教程:使用JTA实现分布式事务](http://blog.didispace.com/spring-boot-learning-24-3-12/)
61+
- [Spring Boot 2.x基础教程:使用JTA实现多数据源的事务管理](http://blog.didispace.com/spring-boot-learning-24-3-12/)
6262
- [Spring Boot 2.x基础教程:2.5版本后数据脚本初始化的变动](http://blog.didispace.com/spring-boot-learning-25-3-13/)
6363

6464
**加速利器:各种缓存的使用**
@@ -81,34 +81,40 @@
8181
- [Spring Boot 2.x基础教程:使用 Thymeleaf开发Web页面](http://blog.didispace.com/spring-boot-learning-21-4-1/)
8282
- [Spring Boot 2.x基础教程:使用 ECharts 绘制各种华丽的数据图表](http://blog.didispace.com/spring-boot-learning-21-4-2/)
8383
- [Spring Boot 2.x基础教程:实现文件上传](http://blog.didispace.com/spring-boot-learning-21-4-3/)
84-
- [Spring Boot 2.x基础教程:实现多文件上传](http://blog.didispace.com/spring-boot-learning-21-4-4/)
85-
- [Spring Boot 2.x基础教程:文件上传的单元测试怎么写](https://blog.didispace.com/spring-boot-learning-21-4-5/)
84+
- [Spring Boot 2.x基础教程:多个文件的上传](http://blog.didispace.com/spring-boot-learning-21-4-4/)
85+
- [Spring Boot 2.x基础教程:文件上传的单元测试怎么写](http://blog.didispace.com/spring-boot-learning-21-4-5/)
8686

8787
### 任务管理
8888

89-
**定时任务`@Scheduled`实现**
89+
**定时任务**
9090

9191
- [Spring Boot 2.x基础教程:使用@Scheduled实现定时任务](https://blog.didispace.com/spring-boot-learning-2-7-1)
92-
93-
**定时任务:Elastic Job实现**
94-
9592
- [Spring Boot 2.x基础教程:使用Elastic Job实现定时任务](https://blog.didispace.com/spring-boot-learning-2-7-2)
9693
- [Spring Boot 2.x基础教程:使用Elastic Job的分片配置提高执行效率](https://blog.didispace.com/spring-boot-learning-2-7-3)
9794
- [Spring Boot 2.x基础教程:使用Elastic Job的namespace防止任务名冲突](https://blog.didispace.com/spring-boot-learning-2-7-4)
9895

99-
**异步任务`@Async`实现**
96+
**异步任务**
10097

10198
- [Spring Boot 2.x基础教程:使用@Async实现异步任务](https://blog.didispace.com/spring-boot-learning-2-7-5)
10299
- [Spring Boot 2.x基础教程:配置@Async异步任务的线程池](https://blog.didispace.com/spring-boot-learning-2-7-6)
103100
- [Spring Boot 2.x基础教程:如何隔离@Async异步任务的线程池](https://blog.didispace.com/spring-boot-learning-2-7-7)
104101
- [Spring Boot 2.x基础教程:配置线程池的拒绝策略](https://blog.didispace.com/spring-boot-learning-2-7-8)
105102

106-
### 常见问题
103+
### 其他内容
104+
105+
- [Spring Boot自定义启动Banner](http://blog.didispace.com/spring-boot-banner/)
106+
- [实现邮件发送:简单邮件、附件邮件、嵌入资源的邮件、模板邮件](http://blog.didispace.com/springbootmailsender/)
107+
- [使用Spring StateMachine框架实现状态机](http://blog.didispace.com/spring-statemachine/)
108+
- [Spring Boot应用的后台运行配置](http://blog.didispace.com/spring-boot-run-backend/)
109+
110+
111+
## 问题与思考
107112

108113
- [为什么加了@Transactional注解,事务没有回滚?](http://blog.didispace.com/transactional-not-rollback/)
109114
- [为什么启动时候API路径都没了?](http://blog.didispace.com/spring-boot-learning-21-2-6/)
110115
- [使用Java 8中LocalDate等时间日期类的问题解决](http://blog.didispace.com/Spring-Boot-And-Feign-Use-localdate/)
111116
- [Request header is too large 如何解决?](https://blog.didispace.com/request-header-is-too-large/)
117+
- [Spring Boot自动化配置的利弊及解决之道](http://blog.didispace.com/spring-boot-disable-autoconfig/)
112118

113119
## 版本资讯
114120

2.x/chapter4-5/pom.xml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
6+
<parent>
7+
<groupId>org.springframework.boot</groupId>
8+
<artifactId>spring-boot-starter-parent</artifactId>
9+
<version>2.5.1</version>
10+
<relativePath/> <!-- lookup parent from repository -->
11+
</parent>
12+
13+
<groupId>com.didispace</groupId>
14+
<artifactId>chapter4-5</artifactId>
15+
<version>0.0.1-SNAPSHOT</version>
16+
<description>Spring Security快速入门</description>
17+
18+
<properties>
19+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
20+
<java.version>1.8</java.version>
21+
</properties>
22+
23+
<dependencies>
24+
<dependency>
25+
<groupId>org.springframework.boot</groupId>
26+
<artifactId>spring-boot-starter</artifactId>
27+
</dependency>
28+
29+
<dependency>
30+
<groupId>org.springframework.boot</groupId>
31+
<artifactId>spring-boot-starter-test</artifactId>
32+
<scope>test</scope>
33+
</dependency>
34+
35+
<dependency>
36+
<groupId>org.springframework.boot</groupId>
37+
<artifactId>spring-boot-starter-web</artifactId>
38+
</dependency>
39+
40+
<dependency>
41+
<groupId>org.springframework.boot</groupId>
42+
<artifactId>spring-boot-starter-thymeleaf</artifactId>
43+
</dependency>
44+
<dependency>
45+
<groupId>org.springframework.boot</groupId>
46+
<artifactId>spring-boot-starter-security</artifactId>
47+
</dependency>
48+
49+
</dependencies>
50+
51+
<build>
52+
<plugins>
53+
<plugin>
54+
<groupId>org.springframework.boot</groupId>
55+
<artifactId>spring-boot-maven-plugin</artifactId>
56+
<configuration>
57+
<fork>true</fork>
58+
</configuration>
59+
</plugin>
60+
</plugins>
61+
</build>
62+
63+
</project>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.didispace.chapter45;
2+
3+
import org.springframework.boot.SpringApplication;
4+
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
6+
/**
7+
*
8+
* @author 程序猿DD
9+
* @version 1.0.0
10+
* @blog http://blog.didispace.com
11+
*
12+
*/
13+
@SpringBootApplication
14+
public class Application {
15+
16+
public static void main(String[] args) {
17+
18+
SpringApplication.run(Application.class, args);
19+
20+
}
21+
22+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.didispace.chapter45;
2+
3+
import org.springframework.stereotype.Controller;
4+
import org.springframework.ui.ModelMap;
5+
import org.springframework.web.bind.annotation.RequestMapping;
6+
import org.springframework.web.bind.annotation.RequestMethod;
7+
8+
/**
9+
*
10+
* @author 程序猿DD
11+
* @version 1.0.0
12+
* @blog http://blog.didispace.com
13+
*
14+
*/
15+
@Controller
16+
public class HelloController {
17+
18+
@RequestMapping("/")
19+
public String index() {
20+
return "index";
21+
}
22+
23+
@RequestMapping("/hello")
24+
public String hello() {
25+
return "hello";
26+
}
27+
28+
@RequestMapping(value = "/login", method = RequestMethod.GET)
29+
public String login() {
30+
return "login";
31+
}
32+
33+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.didispace.chapter45;
2+
3+
import org.springframework.beans.factory.annotation.Autowired;
4+
import org.springframework.context.annotation.Configuration;
5+
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
6+
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
7+
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
8+
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
9+
10+
@Configuration
11+
@EnableWebSecurity
12+
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
13+
14+
@Override
15+
protected void configure(HttpSecurity http) throws Exception {
16+
http
17+
.authorizeRequests()
18+
.antMatchers("/", "/home").permitAll()
19+
.anyRequest().authenticated()
20+
.and()
21+
.formLogin()
22+
.loginPage("/login")
23+
.permitAll()
24+
.and()
25+
.logout()
26+
.permitAll();
27+
}
28+
29+
@Autowired
30+
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
31+
auth
32+
.inMemoryAuthentication()
33+
.withUser("user").password("password").roles("USER");
34+
}
35+
36+
}

2.x/chapter4-5/src/main/resources/application.properties

Whitespace-only changes.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!DOCTYPE html>
2+
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
3+
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
4+
<head>
5+
<title>Hello World!</title>
6+
</head>
7+
<body>
8+
<h1 th:inline="text">Hello [[${#httpServletRequest.remoteUser}]]!</h1>
9+
<form th:action="@{/logout}" method="post">
10+
<input type="submit" value="注销"/>
11+
</form>
12+
</body>
13+
</html>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<!DOCTYPE html>
2+
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
3+
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
4+
<head>
5+
<title>Spring Security入门</title>
6+
</head>
7+
<body>
8+
<h1>欢迎使用Spring Security!</h1>
9+
10+
<p>点击 <a th:href="@{/hello}">这里</a> 打个招呼吧</p>
11+
</body>
12+
</html>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<!DOCTYPE html>
2+
<html xmlns="http://www.w3.org/1999/xhtml"
3+
xmlns:th="http://www.thymeleaf.org"
4+
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
5+
<head>
6+
<title>Spring Security Example </title>
7+
</head>
8+
<body>
9+
<div th:if="${param.error}">
10+
用户名或密码错
11+
</div>
12+
<div th:if="${param.logout}">
13+
您已注销成功
14+
</div>
15+
<form th:action="@{/login}" method="post">
16+
<div><label> 用户名 : <input type="text" name="username"/> </label></div>
17+
<div><label> 密 码 : <input type="password" name="password"/> </label></div>
18+
<div><input type="submit" value="登录"/></div>
19+
</form>
20+
</body>
21+
</html>

0 commit comments

Comments
 (0)