- 1、本文档共66页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
图⽂详解 35 道 Spring ⾯试⾼频题,这次吊打⾯试官,我觉得稳了(⼿动 dog)。整理:楼仔,作者:三分
恶,戳原⽂链接。
基础
1.Spring 是什么?特性?有哪些模块?
⼀句话概括:Spring 是⼀个轻量级、⾮⼊侵式的控制反转 (IoC) 和⾯向切⾯ (AOP) 的框架。
2003 年,⼀个⾳乐家 Rod Johnson 决定发展⼀个轻量级的 Java 开发框架,Spring 作为 Java 战场的⻰骑兵渐渐
崛起,并淘汰了EJB 这个传统的重装骑兵。
到了现在,企业级开发的标配基本就是Spring5 + Spring Boot 2 + JDK 8
Spring 有哪些特性呢?
Spring 有很多优点:
1. IOC 和DI 的⽀持
Spring 的核⼼就是⼀个⼤的⼯⼚容器,可以维护所有对象的创建和依赖关系,Spring ⼯⼚⽤于⽣成 Bean ,并且管
理 Bean 的⽣命周期,实现⾼内聚低耦合的设计理念。
2. AOP 编程的⽀持
Spring 提供了⾯向切⾯编程,可以⽅便的实现对程序进⾏权限拦截、运⾏监控等切⾯功能。
3. 声明式事务的⽀持
⽀持通过配置就来完成对事务的管理,⽽不需要通过硬编码的⽅式,以前重复的⼀些事务提交、回滚的 JDBC 代
码,都可以不⽤⾃⼰写了。
4. 快捷测试的⽀持
Spring 对 Junit 提供⽀持,可以通过注解快捷地测试 Spring 程序。
5. 快速集成功能
⽅便集成各种优秀框架,Spring 不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、
Hibernate、MyBatis、Quartz 等)的直接⽀持。
6. 复杂 API 模板封装
Spring 对 JavaEE 开发中⾮常难⽤的⼀些 API (JDBC 、JavaMail 、远程调⽤等)都提供了模板化的封装,这些封装
API 的提供使得应⽤难度⼤⼤降低。
2.Spring 有哪些模块呢?
Spring 框架是分模块存在,除了最核⼼的Spring Core Container 是必要模块之外,其他模块都是可选,⼤约
有 20 多个模块。
最主要的七⼤模块:
1. Spring Core :Spring 核⼼,它是框架最基础的部分,提供 IOC 和依赖注⼊ DI 特性。
2. Spring Context :Spring 上下⽂容器,它是 BeanFactory 功能加强的⼀个⼦接⼝。
3. Spring Web :它提供 Web 应⽤开发的⽀持。
4. Spring MVC :它针对 Web 应⽤中 MVC 思想的实现。
5. Spring DAO :提供对 JDBC 抽象层,简化了 JDBC 编码,同时,编码更具有健壮性。
6. Spring ORM :它⽀持⽤于流⾏的 ORM 框架的整合,⽐如:Spring + Hibernate、Spring + iBatis、Spring +
JDO 的整合等。
7. Spring AOP :即⾯向切⾯编程,它提供了与 AOP 联盟兼容的编程实现。
3.Spring 有哪些常⽤注解呢?
Spring 有很多模块,甚⾄⼴义的 SpringBoot 、SpringCloud 也算是 Spring 的⼀部分,我们来分模块,按功能来
看⼀下⼀些常⽤的注解:
Web:
@Controller :组合注解(组合了@Component 注解),应⽤在 MVC 层(控制层)。
@RestController :该注解为⼀个组合注解,相当于@Controller 和@ResponseBody 的组合,注解在类上,
意味着,该 Controller 的所有⽅法都默认加上了@ResponseBody。
@RequestMapping :⽤于映射 Web 请求,包括访问路径和参数。如果是 Restful ⻛格接⼝,还可以根据请
求类型使⽤不同的注解:
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@ResponseBody :⽀持将返回值放在 response 内,⽽不是⼀个⻚⾯,通常⽤户返回 json 数据。
@RequestBody :允许 request 的参数在 request 体中,⽽不是在直接连接在地址后⾯。
@PathVariable :⽤于接收路径参数,⽐如 @RequestMapping(“/hello
文档评论(0)