Skip to content

Commit 55bb3a8

Browse files
committed
路径修复
1 parent 6ecc931 commit 55bb3a8

File tree

2 files changed

+41
-35
lines changed

2 files changed

+41
-35
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<a href="#公众号"><img src="https://img.shields.io/badge/%E5%85%AC%E4%BC%97%E5%8F%B7-JavaGuide-lightgrey.svg" alt="公众号"></a>
1111
<a href="#公众号"><img src="https://img.shields.io/badge/PDF-Java面试突击-important.svg" alt="公众号"></a>
1212
</p>
13-
**在线阅读** https://snailclimb.gitee.io/springboot-guide (上面的地址访问速度缓慢的建议使用这个路径访问)
13+
**在线阅读** : https://snailclimb.gitee.io/springboot-guide (上面的地址访问速度缓慢的建议使用这个路径访问)
1414

1515
## 重要知识点
1616

@@ -47,7 +47,7 @@
4747

4848
## 面试题
4949

50-
- [几道简单的 SpringBoot面试题](./docs/interview/springboot-questions.md)
50+
- [几道简单的 SpringBoot面试题](./docs/interview/SpringBoot面试题.md)
5151
- [RestController VS Controller](./docs/basis/RestControllerVSController.md)
5252

5353
## 说明

docs/interview/springboot-questions.md renamed to docs/interview/SpringBoot面试题.md

+39-33
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,25 @@
33
> - https://www.javaguides.net/2018/11/spring-boot-interview-questions-and-answers.html
44
> - https://www.algrim.co/posts/101-spring-boot-interview-questions
55
6-
### 1. 什么是 Spring Boot?
6+
### 简单介绍一下 Spring?有啥缺点?
77

8-
首先,重要的是要理解 Spring Boot 并不是一个框架,它是一种创建独立应用程序的更简单方法,只需要很少或没有配置(相比于 Spring 来说)。Spring Boot最好的特性之一是它利用现有的 Spring 项目和第三方项目来开发适合生产的应用程序。
8+
Spring 是重量级企业开发框架 **Enterprise JavaBean(EJB)** 的替代品,Spring 为企业级 Java 开发提供了一种相对简单的方法,通过 **依赖注入****面向切面编程** ,用简单的 **Java 对象(Plain Old Java Object,POJO)** 实现了 EJB 的功能
99

10-
### 2. 说出使用Spring Boot的主要优点
10+
**虽然 Spring 的组件代码是轻量级的,但它的配置却是重量级的(需要大量 XML 配置)**
11+
12+
为此,Spring 2.5 引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式 XML 配置。Spring 3.0 引入了基于 Java 的配置,这是一种类型安全的可重构配置方式,可以代替 XML。
13+
14+
尽管如此,我们依旧没能逃脱配置的魔爪。开启某些 Spring 特性时,比如事务管理和 Spring MVC,还是需要用 XML 或 Java 进行显式配置。启用第三方库时也需要显式配置,比如基于 Thymeleaf 的 Web 视图。配置 Servlet 和过滤器(比如 Spring 的`DispatcherServlet`)同样需要在 web.xml 或 Servlet 初始化代码里进行显式配置。组件扫描减少了配置量,Java 配置让它看上去简洁不少,但 Spring 还是需要不少配置。
15+
16+
光配置这些 XML 文件都够我们头疼的了,占用了我们大部分时间和精力。除此之外,相关库的依赖非常让人头疼,不同库之间的版本冲突也非常常见。
17+
18+
### 为什么要有SpringBoot?
19+
20+
Spring 旨在简化J2EE企业应用程序开发。Spring Boot F旨在简化Spring开发(减少配置文件,开箱即用!)。
21+
22+
![why-we-need-springboot](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-7/why-we-need-springboot.png)
23+
24+
### 说出使用Spring Boot的主要优点
1125

1226
1. 开发基于 Spring 的应用程序很容易。
1327
2. Spring Boot 项目所需的开发或工程时间明显减少,通常会提高整体生产力。
@@ -18,15 +32,11 @@
1832
7. Spring Boot提供命令行接口(CLI)工具,用于开发和测试Spring Boot应用程序,如Java或Groovy。
1933
8. Spring Boot提供了多种插件,可以使用内置工具(如Maven和Gradle)开发和测试Spring Boot应用程序。
2034

21-
### 3. 为什么需要Spring Boot?
35+
### 什么是 Spring Boot Starters?
2236

23-
Spring Framework旨在简化J2EE企业应用程序开发。Spring Boot Framework旨在简化Spring开发
37+
Spring Boot Starters 是一系列依赖关系的集合,因为它的存在,项目的依赖之间的关系对我们来说变的更加简单了
2438

25-
![why-we-need-springboot](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-7/why-we-need-springboot.png)
26-
27-
### 4. 什么是 Spring Boot Starters?
28-
29-
Spring Boot Starters 是一系列依赖关系的集合,因为它的存在,项目的依赖之间的关系对我们来说变的更加简单了。举个例子:在没有Spring Boot Starters之前,我们开发REST服务或Web应用程序时; 我们需要使用像Spring MVC,Tomcat和Jackson这样的库,这些依赖我们需要手动一个一个添加。但是,有了 Spring Boot Starters 我们只需要一个只需添加一个**spring-boot-starter-web**一个依赖就可以了,这个依赖包含的字依赖中包含了我们开发REST 服务需要的所有依赖。
39+
举个例子:在没有Spring Boot Starters之前,我们开发REST服务或Web应用程序时; 我们需要使用像Spring MVC,Tomcat和Jackson这样的库,这些依赖我们需要手动一个一个添加。但是,有了 Spring Boot Starters 我们只需要一个只需添加一个**spring-boot-starter-web**一个依赖就可以了,这个依赖包含的字依赖中包含了我们开发REST 服务需要的所有依赖。
3040

3141
```xml
3242
<dependency>
@@ -35,9 +45,23 @@ Spring Boot Starters 是一系列依赖关系的集合,因为它的存在,
3545
</dependency>
3646
```
3747

38-
### 5. 如何在Spring Boot应用程序中使用Jetty而不是Tomcat?
48+
### Spring Boot 支持哪些内嵌 Servlet 容器?
3949

40-
Spring Boot Web starter使用Tomcat作为默认的嵌入式servlet容器, 如果你想使用 Jetty 的话只需要修改pom.xml(Maven)或者build.gradle(Gradle)就可以了。
50+
Spring Boot 支持以下嵌入式 Servlet 容器:
51+
52+
| **Name** | **Servlet Version** |
53+
| ------------ | ------------------- |
54+
| Tomcat 9.0 | 4.0 |
55+
| Jetty 9.4 | 3.1 |
56+
| Undertow 2.0 | 4.0 |
57+
58+
您还可以将 Spring 引导应用程序部署到任何 Servlet 3.1+兼容的 Web 容器中。
59+
60+
这就是你为什么可以通过直接像运行 普通 Java 项目一样运行 SpringBoot 项目。这样的确省事了很多,方便了我们进行开发,降低了学习难度。
61+
62+
### 如何在Spring Boot应用程序中使用Jetty而不是Tomcat?
63+
64+
Spring Boot (`spring-boot-starter-web`)使用Tomcat作为默认的嵌入式servlet容器, 如果你想使用 Jetty 的话只需要修改`pom.xml`(Maven)或者`build.gradle`(Gradle)就可以了。
4165

4266
**Maven:**
4367

@@ -71,7 +95,7 @@ compile("org.springframework.boot:spring-boot-starter-jetty")
7195

7296
说个题外话,从上面可以看出使用 Gradle 更加简洁明了,但是国内目前还是 Maven 使用的多一点,我个人觉得 Gradle 在很多方面都要好很多。
7397

74-
### 6. 介绍一下@SpringBootApplication注解
98+
### 介绍一下@SpringBootApplication注解
7599

76100
```java
77101
package org.springframework.boot.autoconfigure;
@@ -106,7 +130,7 @@ public @interface SpringBootConfiguration {
106130
- `@ComponentScan`: 扫描被`@Component` (`@Service`,`@Controller`)注解的bean,注解默认会扫描该类所在的包下所有的类。
107131
- `@Configuration`:允许在上下文中注册额外的bean或导入其他配置类
108132

109-
### 7. (重要)Spring Boot 的自动配置是如何实现的?
133+
### Spring Boot 的自动配置是如何实现的?
110134

111135
这个是因为`@SpringBootApplication `注解的原因,在上一个问题中已经提到了这个注解。我们知道 `@SpringBootApplication `看作是 `@Configuration``@EnableAutoConfiguration``@ComponentScan ` 注解的集合。
112136

@@ -173,25 +197,7 @@ public class WebSecurityEnablerConfiguration {
173197

174198
`WebSecurityEnablerConfiguration`类中使用`@ConditionalOnBean`指定了容器中必须还有`WebSecurityConfigurerAdapter` 类或其实现类。所以,一般情况下 Spring Security 配置类都会去实现 `WebSecurityConfigurerAdapter`,这样自动将配置就完成了。
175199

176-
更多内容可以参考这篇文章:https://sylvanassun.github.io/2018/01/08/2018-01-08-spring_boot_auto_configure/
177-
178-
### 8. Spring Boot支持哪些嵌入式web容器?
179-
180-
Spring Boot支持以下嵌入式servlet容器:
181-
182-
| **Name** | **Servlet Version** |
183-
| ------------ | ------------------- |
184-
| Tomcat 9.0 | 4.0 |
185-
| Jetty 9.4 | 3.1 |
186-
| Undertow 2.0 | 4.0 |
187-
188-
您还可以将Spring引导应用程序部署到任何Servlet 3.1+兼容的 Web 容器中。
189-
190-
这就是你为什么可以通过直接像运行 普通 Java 项目一样运行 SpringBoot 项目。这样的确省事了很多,方便了我们进行开发,降低了学习难度。
200+
### 开发 RESTful Web 服务常用的注解有哪些?
191201

192-
### 9. 什么是Spring Security ?
193202

194-
Spring Security 应该属于 Spring 全家桶中学习曲线比较陡峭的几个模块之一,下面我将从起源和定义这两个方面来简单介绍一下它。
195203

196-
- **起源:** Spring Security 实际上起源于 Acegi Security,这个框架能为基于 Spring 的企业应用提供强大而灵活安全访问控制解决方案,并且框架这个充分利用 Spring 的 IoC 和 AOP 功能,提供声明式安全访问控制的功能。后面,随着这个项目发展, Acegi Security 成为了Spring官方子项目,后来被命名为 “Spring Security”。
197-
- **定义:**Spring Security 是一个功能强大且高度可以定制的框架,侧重于为Java 应用程序提供身份验证和授权。——[官方介绍](https://spring.io/projects/spring-security)

0 commit comments

Comments
 (0)