首页 > 编程语言 >Java基础面试笔记(三) _Spring

Java基础面试笔记(三) _Spring

时间:2023-06-15 19:31:53浏览次数:37  
标签:Java 实例 Spring Bean 面试 bean session 注入

1.Spring 框架有哪些主要模块?

截止到目前Spring 框架已集成了 20 多个模块 。 这些模块主要被分如下图所示的核心容器 、数据访问 / 集成 、Web、AOP (面向切面编程) 、工具 、消息和测试模块 。

Java基础面试笔记(三) _Spring_依赖注入

2.什么是依赖注入?什么是控制反转(IOC)? 在 Spring 中,有几种依赖注入方式?

依赖注入是在编译阶段尚未知所需的功能是来自哪个的类的情况下,将其他对象所依赖的功能对象实例化的模式。

在传统的编程方式中,业务逻辑的流程是由应用程序中的早已被设定好关联关系的对象来决定的。在使用控制反转的情况下,业务逻辑的流程是由对象关系图来决定的,该对象关系图由装配器负责实例化,这种实现方式还可以将对象之间的关联关系的定义抽象化。而绑定的过程是通过“依赖注入”实现的。

注入方式:

* 构造器注入 

* Setter方法注入 

* 接口注入

3.在 Spring 中,有几种配置 Bean 的方式?

基于XML的配置

基于注解的配置

基于Java的配置

4.请解释一下 Spring Bean 的生命周期?

在一个Spring bean factory 负责管理在 spring 容器中被创建的 bean 的生命周期 。Bean 的生命周期由两组回调(call back)方法组成 。 

初始化之后调用的回调方法。

销毁之前调用的回调方法。

Spring 框架提供了以下四种方式来管理 bean 的生命周期事件: 

* InitializingBean 和 DisposableBean 回调接口 

* 针对特殊行为的其他 Aware 接口 

* Bean 配置文件中的 Custom init() 方法和 destroy() 方法 

* @PostConstruct 和 @PreDestroy 注解方式

5.Spring Bean 有哪些作用域,它们之间有什么区别?

singleton :这种 bean 范围是默认的,这种范围确保不管接受到多少个请求,每个容器中只有一个 bean 的实例,单例的模式由 bean factory 自身来维护 。

prototype :原形范围与单例范围相反,为每一个 bean 请求提供一个实例 。

request :在请求 bean 范围内会每一个来自客户端的网络请求创建一个实例,在请求完成以后, bean 会失效并被垃圾回收器回收 。

Session :与请求范围类似,确保每个 session 中有一个 bean 的实例,在 session 过期后, bean 会随之失效 。

global-session : global-session 和 Portlet 应用相关 。 当你的应用部署在 Portlet 容器中工作时,它包含很多 portlet。 如果你想要声明让所有的 portlet 共用全局的存储变量的话,那么这全局变量需要存储在 global-session 中 。

6.Spring 框架中的单例 Beans 是线程安全的么?

实际上,大部分的 Spring bean 并没有可变的状态 ( 比如 Service 类和 DAO 类 ) ,所以在某种程度上说 Spring 的单例 bean 是线程安全的 。 如果你的 bean 有多种状态的话(比如 View Model 对象),就需要自行保证线程安全 。

标签:Java,实例,Spring,Bean,面试,bean,session,注入
From: https://blog.51cto.com/u_15558311/6494150

相关文章

  • Spring Boot实现高质量的CRUD-4
    (续前文)8、Service实现类 ​​ Service实现类提供Service接口类的代码实现,Service实现类的命名为XXXManServiceImpl。​ Service实现类完成CRUD的核心处理代码,CRUD的不同方法,有各自常规的处理流程。8.1、新增单个对象​ 新增单个对象的方法名为addItem,处理流程如下: //新增......
  • Java 入门学习笔记
    Java特性和优势简单性面向对象可移植性高性能分布性动态性(反射)多线程安全性健壮性Java三大版本WriteOnce、RunAnywhere通过JVMJavaSE:标准版(桌面程序,控制台开发...)基础JavaME:嵌入式开发(手机,小家电...)JavaEE:E企业级开发(web端,服务器开发)JDK、JRE、JV......
  • Java 字符串转日期 str 转为 Date 类型 Date date = new SimpleDateFormat("yyyy-MM-
    Java字符串转日期str转为Date类型Datedate=newSimpleDateFormat("yyyy-MM-dd").parse("2022-12-28");https://blog.csdn.net/weixin_35756690/article/details/129059668在Java中,可以使用SimpleDateFormat类将字符串转换为日期。首先,需要创建一个SimpleDateFor......
  • 使用 Spring 2.5 注释驱动的 IoC 功能
    http://www.ibm.com/developerworks/cn/java/j-lo-spring25-ioc/概述注释配置相对于XML配置具有很多的优势:它可以充分利用Java的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用JPA注释配置ORM映射时,我们就不需要指定PO的属性名、类型等信息,如果关系表字......
  • 学习Spring必学的Java基础知识----反射
    引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓“登高必自卑,涉远必自迩”。以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系列分别介绍这些Java基础知识,希望对大家有所帮助。):[1]Java反射知识-->SpringIoC[2]属性编辑器,即PropertyEditor......
  • SpringBoot整合Redis
    第一步:导入坐标 第二步:在application.yml中进行相关配置第三步:使用对应的API对操作接口进行操作 操作 key-value格式的 操作 hash格式的  ......
  • idea 配置 javaweb项目
    对于老的web项目,不是springboot,需要的配置一、git clone 项目 二、配置 projectstructure 这几个都要配置,当然有的项目点开默认有的话修改一下就行,没有就 的手动添加 project 这几个都填好填对 没有classes 就创建一个 modules libbraries 把WEB-INF......
  • Java 多线程同步问题的探究(三、Lock来了,大家都让开【1. 认识重入锁】)
    在上一节中,我们已经了解了Java多线程编程中常用的关键字synchronized,以及与之相关的对象锁机制。这一节中,让我们一起来认识JDK5中新引入的并发框架中的锁机制。我想很多购买了《Java程序员面试宝典》之类图书的朋友一定对下面这个面试题感到非常熟悉:问:请对比synchronized......
  • java中相对路径,绝对路径问题总结
    java中相对路径,绝对路径问题总结2007-12-2000:191.基本概念的理解绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:\xyz\test.txt代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。......
  • Java中使用Base64编码URL作为URL的参数
    Java中使用Base64编码URL作为URL的参数本文由arthinking发表于3年前|Java基础|暂无评论| 被围观8,004views+有时候我们需要使用一个URL作为URL地址的参数来传递,假如我们需要传递的URL含有参数,例如:/shopping/confirm.action?id=1&name=itzhai那么按......