Spring 面试题(Ioc和bean)

目录

一、一般问题

1.1、不同版本的 Spring Framework 有哪些主要功能?

1.2、什么是 Spring Framework?

1.3、列举 Spring Framework 的优点。

1.4、Spring Framework 有哪些不同的功能?

1.5、Spring Framework 中有多少个模块,它们分别是什么?

1.6、什么是 Spring 配置文件?  

1.7、Spring 应用程序有哪些不同组件?

1.8、使用 Spring 有哪些方式?

二、依赖注入(Ioc) 

2.1、什么是 Spring IOC 容器?

2.2、什么是依赖注入? 

2.3、可以通过多少种方式完成依赖注入?

2.4、区分构造函数注入和 setter 注入。 

2.5、spring 中有多少种 IOC 容器? 

2.6、区分 BeanFactory 和 ApplicationContext。

2.7、列举 IoC 的一些好处。  

2.8、Spring IoC 的实现机制。

三、Beans

3.1、什么是 spring bean?

3.2、spring 提供了哪些配置方式?

3.3、spring 支持集中 bean scope?

3.4、spring bean 容器的生命周期是什么样的?

3.6、什么是 spring 装配

3.7、自动装配有哪些方式?

3.8、自动装配有什么局限?


一、一般问题

1.1、不同版本的 Spring Framework 有哪些主要功能?

Version           Feature
Spring 2.5     发布于 2007 年。这是第一个支持注解的版本。
Spring 3.0     发布于 2009 年。它完全利用了 Java5 中的改进,并为 JEE6 提供了支
持。
Spring 4.0     发布于 2013 年。这是第一个完全支持 JAVA8 的版本。

1.2、什么是 Spring Framework?

Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度。它是轻量级、松
散耦合的。它具有分层体系结构,允许用户选择组件,同时还为 J2EE 应用程序
开发提供了一个有凝聚力的框架。它可以集成其他框架,如 Structs、Hibernate、
EJB 等,所以又称为框架的框架。

1.3、列举 Spring Framework 的优点。

由于 Spring Frameworks 的分层架构,用户可以自由选择自己需要的组件。
Spring Framework 支持 POJO(Plain Old Java Object) 编程,从而具备持续集
成和可测试性。由于依赖注入和控制反转,JDBC 得以简化。它是开源免费的。

1.4、Spring Framework 有哪些不同的功能?

轻量级 - Spring 在代码量和透明度方面都很轻便。 IOC - 控制反转 AOP - 面向
切面编程可以将应用业务逻辑和系统服务分离,以实现高内聚。 容器 - Spring 负
责创建和管理对象(Bean)的生命周期和配置。 MVC - 对 web 应用提供了高
度可配置性,其他框架的集成也十分方便。 事务管理 - 提供了用于事务管理的通
用抽象层。Spring 的事务支持也可用于容器较少的环境。 JDBC 异常 - Spring
的 JDBC 抽象层提供了一个异常层次结构,简化了错误处理策略。

1.5、Spring Framework 中有多少个模块,它们分别是什么?

Spring 核心容器 – 该层基本上是 Spring Framework 的核心。它包含以下模
块:
  • Spring Core
  • Spring Bean
  • SpEL (Spring Expression Language)
  • Spring Context

 数据访问/集成 – 该层提供与数据库交互的支持。它包含以下模块:

  • JDBC (Java DataBase Connectivity)
  • ORM (Object Relational Mapping)
  • OXM (Object XML Mappers)
  • JMS (Java Messaging Service)
  • Transaction

Web – 该层提供了创建 Web 应用程序的支持。它包含以下模块:

  • Web
  • Web – Servlet
  • Web – Socket
  • Web – Portlet

AOP

该层支持面向切面编程

Instrumentation
该层为类检测和类加载器实现提供支持。
Test
该层为使用 JUnit 和 TestNG 进行测试提供支持。
几个杂项模块:
Messaging – 该模块为 STOMP 提供支持。它还支持注解编程模型,该模型用
于从 WebSocket 客户端路由和处理 STOMP 消息。
Aspects – 该模块为与 AspectJ 的集成提供支持。

1.6、什么是 Spring 配置文件?  

Spring 配置文件是 XML 文件。该文件主要包含类信息。它描述了这些类是如何
配置以及相互引入的。但
  • 27
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
回答: Spring IOC是什么?IOC是控制反转的意思,是一种设计原则,它将对象的创建和依赖关系的维护交给了Spring容器来管理。\[1\]IOC容器的初始化过程是指Spring容器在启动时,通过读取配置文件或者注解扫描,将所有的Bean对象创建并放入容器中,同时解析Bean之间的依赖关系,完成依赖注入。\[1\]基于注解的容器初始化是指使用注解来配置Bean对象,比如使用@Component、@Controller、@Service、@Repository等注解将类对象标记为Bean,并指定其在容器中的id。\[2\]依赖注入的相关注解包括@Autowired、@Resource、@Value等,它们可以用来自动注入依赖对象或者配置值。\[1\]通过注解创建Bean可以使用@Component注解将类对象标记为Bean,并指定其在容器中的id,也可以使用@Bean注解在配置类中定义一个方法,方法的返回值将作为Bean对象放入容器中。\[2\] AOP是什么?AOP是面向切面编程的意思,它是一种编程范式,可以方便地实现对程序的权限拦截、运行监控等功能。\[3\]实现AOP的方式有多种,比如使用动态代理、使用字节码增强等。\[1\]AOP的原理是通过在程序运行时动态地将切面代码织入到目标对象的方法中,从而实现对目标对象的增强。\[1\]AOP的相关注解包括@Aspect、@Pointcut、@Before、@After等,它们可以用来定义切面、切点和增强代码。\[2\] #### 引用[.reference_title] - *1* *2* [关于SpringIoC和AOP的面试,快看看你都能答上来哪些](https://blog.csdn.net/Gaowumao/article/details/124919483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [IOC和AOP以及spring框架的面试](https://blog.csdn.net/n12345_/article/details/129936248)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

u010142437

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值