Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit d8d16a7

Browse files
Update SpringInterviewQuestions.md
1 parent 2d57ac9 commit d8d16a7

File tree

1 file changed

+36
-1
lines changed

1 file changed

+36
-1
lines changed

‎docs/system-design/framework/spring/SpringInterviewQuestions.md‎

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@
22

33
- [什么是 Spring 框架?](#什么是-spring-框架)
44
- [列举一些重要的Spring模块?](#列举一些重要的spring模块)
5+
- [@RestController vs @Controller](#restcontroller-vs-controller)
6+
- [Controller 返回一个页面](#controller-返回一个页面)
7+
- [@RestController 返回JSON 或 XML 形式数据](#restcontroller-返回json-或-xml-形式数据)
8+
- [@Controller +@ResponseBody 返回JSON 或 XML 形式数据](#controller-responsebody-返回json-或-xml-形式数据)
59
- [谈谈自己对于 Spring IoC 和 AOP 的理解](#谈谈自己对于-spring-ioc-和-aop-的理解)
10+
- [IoC](#ioc)
11+
- [AOP](#aop)
612
- [Spring AOP 和 AspectJ AOP 有什么区别?](#spring-aop-和-aspectj-aop-有什么区别)
713
- [Spring 中的 bean 的作用域有哪些?](#spring-中的-bean-的作用域有哪些)
814
- [Spring 中的单例 bean 的线程安全问题了解吗?](#spring-中的单例-bean-的线程安全问题了解吗)
@@ -15,7 +21,10 @@
1521
- [Spring 管理事务的方式有几种?](#spring-管理事务的方式有几种)
1622
- [Spring 事务中的隔离级别有哪几种?](#spring-事务中的隔离级别有哪几种)
1723
- [Spring 事务中哪几种事务传播行为?](#spring-事务中哪几种事务传播行为)
24+
- [@Transactional(rollbackFor = Exception.class)注解了解吗?](#transactionalrollbackfor--exceptionclass注解了解吗)
25+
- [如何使用JPA在数据库中非持久化一个字段?](#如何使用jpa在数据库中非持久化一个字段)
1826
- [参考](#参考)
27+
- [公众号](#公众号)
1928

2029
<!-- /TOC -->
2130

@@ -51,7 +60,32 @@ Spring 官网列出的 Spring 的 6 个特征:
5160
- **Spring Web** : 为创建Web应用程序提供支持。
5261
- **Spring Test** : 提供了对 JUnit 和 TestNG 测试的支持。
5362

63+
## @RestController vs @Controller
5464

65+
### Controller 返回一个页面
66+
67+
单独使用 `@Controller` 不加 `@ResponseBody`的话一般使用在要返回一个视图的情况,这种情况属于比较传统的Spring MVC 的应用,对应于前后端不分离的情况。
68+
69+
![SpringMVC 传统工作流程](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-7/SpringMVC传统工作流程.png)
70+
71+
### @RestController 返回JSON 或 XML 形式数据
72+
73+
`@RestController`只返回对象,对象数据直接以 JSON 或 XML 形式写入 HTTP 响应(Response)中,这种情况属于 RESTful Web服务,这也是目前日常开发所接触的最常用的情况(前后端分离)。
74+
75+
![SpringMVC+RestController](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-7/SpringMVCRestController.png)
76+
77+
### @Controller +@ResponseBody 返回JSON 或 XML 形式数据
78+
79+
如果你需要在Spring4之前开发 RESTful Web服务的话,你需要使用`@Controller` 并结合`@ResponseBody`注解,也就是说`@Controller` +`@ResponseBody`= `@RestController`(Spring 4 之后新加的注解)。
80+
81+
> `@ResponseBody` 注解的作用是将 `Controller` 的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到HTTP 响应(Response)对象的 body 中,通常用来返回 JSON 或者 XML 数据,返回 JSON 数据的情况比较多。
82+
83+
![Spring3.xMVC RESTfulWeb服务工作流程](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-7/Spring3.xMVCRESTfulWeb服务工作流程.png)
84+
85+
Reference:
86+
87+
- https://dzone.com/articles/spring-framework-restcontroller-vs-controller(图片来源)
88+
- https://javarevisited.blogspot.com/2017/08/difference-between-restcontroller-and-controller-annotations-spring-mvc-rest.html?m=1
5589

5690
## 谈谈自己对于 Spring IoC 和 AOP 的理解
5791

@@ -327,7 +361,7 @@ String transient4; // not persistent because of @Transient
327361
- <http://www.tomaszezula.com/2014/02/09/spring-series-part-5-component-vs-bean/>
328362
- <https://stackoverflow.com/questions/34172888/difference-between-bean-and-autowired>
329363

330-
### 公众号
364+
## 公众号
331365

332366
如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号。
333367

@@ -336,3 +370,4 @@ String transient4; // not persistent because of @Transient
336370
**Java工程师必备学习资源:** 一些Java工程师常用学习资源公众号后台回复关键字 **"1"** 即可免费无套路获取。
337371

338372
![我的公众号](https://user-gold-cdn.xitu.io/2018/11/28/167598cd2e17b8ec?w=258&h=258&f=jpeg&s=27334)
373+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /