面试那些事儿——spring

1、什么是spring

简单介绍

  • 是什么?
    • spring框架是一个开源的J2EE应用程序框架,是针对bean的生命周期进行管理的轻量级容器。它的创始人是Rod Johnson,他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。(所以一切的跨专业学习都不是弱势,而是优势,正是这样才体现出了自学能力)
  • 解决了什么问题?
    • Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。
    • 解决了对象初始化的问题。不需要每调用一个类都需要自己去初始化,spring会去自动初始化,需要的时候去拿即可。(ioc工厂模式)
    • 避免了关键字new造成耦合的问题
  • 使用
    • Spring可以单独应用于构筑应用程序,
    • 也可以和Struts、Webwork等众多Web框架组合使用,
    • 并且可以与 Swing等桌面应用程序组合
    • 。因此, Spring不仅仅能应用于J2EE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中

特征:

  • 核心技术 :依赖注入(DI),AOP,事件(events),资源,i18n,验证,数据绑定,类型转换,SpEL。
  • 测试 :模拟对象,TestContext框架,Spring MVC 测试,WebTestClient。
  • 数据访问 :事务,DAO支持,JDBC,ORM,编组XML。
  • Web支持 : Spring MVC和Spring WebFlux Web框架。
  • 集成 :远程处理,JMS,JCA,JMX,电子邮件,任务,调度,缓存。
  • 语言 :Kotlin,Groovy,动态语言。

2、spring核心模块

Spring4.x 版本:
在这里插入图片描述

  • Test : 提供了对 JUnit 和 TestNG 测试的支持。

  • Beans :表示的是spring对所有Bean对象的管理,主要是包含了对象间的关系配置以及一些对象的实例化操作。
  • Core: 包含了最底层的开发支持,例如:依赖的注入关系、资源文件的访问,数据类型的转换,可以说 Spring 其他所有的功能都需要依赖于该类库。主要提供 IoC 依赖注入功能。
  • Context:提供的是一个完整的容器上下文,在这个上下文可以处理对象生命周期或者是事务
  • SPEL:利用SPEL实现表达式语言的操作

  • AOP :提供了面向切面的编程实现。例如:数据库关闭、事务处理
  • Aspects :切面编程的语法支持
  • Instrumetation: 是在JDK1.5之后增加的一个组件,主要用于检测JVM在运行中代码的动态处理过程
  • Messaging:信息体系结构和协议支持;

  • JDBC : Java数据库连接。
  • ORM : 用于支持Hibernate等ORM工具。
  • OXM:提供了一个对象与XML 文件之间的互相转换;
  • JMS :Java消息服务。
  • Transactions : 表示在数据访问模块支持了事务的操作处理;

  • Web : 为创建Web应用程序提供支持。

3、注解

1、@RestController vs @Controller

@Controller:

  • 单独使用 @Controller 不加 @ResponseBody的话一般使用在 要返回一个视图的情况,这种情况属于比较传统的Spring MVC 的应用,对应于前后端不分离的情况。

@RestController :

  • @RestController = @C
  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值