spring框架,以及和spring框架相关的Java面试题和spring ioc的注入方式

目录

一.spring来源,以及介绍

1.spring诞生的背景

2.spring框架 介绍

3.spring框架在使用中的优点以及不足

3.1优点

 3.2不足

3.3总结

4.为什么要使用spring 

二.将spring框架部署在IDEA中 

1.替换pom.xml

 2.构建spring所需要的xml文件

三.spring的三种注入方式

0.定义需要的类,方法

1.方法注入

1.1接口注入(同时查看两个打印语句)

  1.2属性注入,打印定义的属性

 1.3自动注入

1.3.1byname

 1.3.2btype

四.java spring 面试题

1.说说对于spring理解?

2.说说我对于ioc的理解 ?

 3.spring中ioc的注入方式?

4.spring中自动装配中的byname和bytype是什么?


一.spring来源,以及介绍

1.spring诞生的背景

"Spring"这个词在英文中是春天的意思,它也被用作一种季节的名称。而在计算机科学领域,"Spring"是一个重要的开发框架,用于构建Java应用程序。

Spring框架的由来可以追溯到2002年,当时由Rod Johnson所著的《Expert One-on-One J2EE Design and Development》一书的出版,这本书讲述了如何有效地构建Java企业级应用程序。作者强调了解决传统Java开发中的一些缺点和挑战的重要性。

在这本书中,Rod Johnson提出了一种轻量级、简化编码的方法,称之为"Spring"。他的目标是创建一个框架,使Java开发人员能够更轻松地构建可扩展、可维护的企业级应用程序。Spring框架的核心思想是通过依赖注入和面向切面编程来提高应用程序的松耦合性和可测试性。

由于Spring框架具有很多有用的特性和优点,它很快在Java开发社区中受到了广泛的认可和采用。随着时间的推移,Spring框架逐渐发展成一个强大而成熟的开发框架,并支持包括Web应用程序、RESTful服务、消息队列、数据访问等多种应用场景。

至今,Spring框架仍然是Java开发中最受欢迎和广泛使用的框架之一,它提供了丰富的功能和工具,帮助开发人员更高效地构建各种类型的应用程序。

2.spring框架 介绍

  Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。

   Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。

   然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

   目的:解决企业应用开发的复杂性

   功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能

   范围:任何Java应用

   简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

3.spring框架在使用中的优点以及不足

3.1优点

Java Spring框架在使用中有以下的优点:

  1. 松耦合:Spring框架采用依赖注入(DI)和控制反转(IOC)容器的概念,这使得各个模块之间的耦合度降低,提高了代码的可维护性和可测试性。

  2. 面向切面编程(AOP):Spring框架支持AOP,可以更容易地实现横切关注点的功能,例如日志记录、事务管理等。这样,开发人员可以将业务逻辑与非业务逻辑分离,提高了代码的可读性和模块化。

  3. 简化开发:Spring框架提供了丰富的开发工具和功能模块,如数据访问、Web开发、安全性管理等,可以极大地简化Java应用程序的开发过程。同时,Spring Boot框架进一步简化了Spring应用的配置和部署。

  4. 容器管理:Spring框架提供了一个容器,用于管理应用程序中的各种对象,包括管理对象的创建、销毁、依赖关系等。这样,开发人员可以更方便地管理和组织应用程序的组件。

  5. 数据访问支持:Spring框架提供了对各种数据访问技术(如JDBC、ORM等)的支持,可以简化数据访问层的开发。它还提供了事务管理的功能,确保数据的一致性和可靠性。

 3.2不足

  1. 学习曲线较 steep:对于新手或没有使用过Spring框架的开发人员来说,学习和理解Spring框架可能需要一些时间和精力。它的概念和技术较为庞杂,需要一定的经验和实践才能熟练地使用。

  2. 过度使用可能导致复杂性:Spring框架提供了很多功能和选项,但如果过度使用或配置不合理,可能会导致代码的复杂性增加。开发人员需要权衡和选择使用哪些功能,保持代码的简洁性和可维护性。

  3. XML配置冗长:在早期版本的Spring框架中,配置通常使用XML文件进行,这可能会导致配置文件冗长和复杂。然而,Spring框架已经提供了更现代化的配置方式,如基于注解的配置和Java配置类。

3.3总结

总的来说,Java Spring框架是一个强大而成熟的开发框架,它在提高Java应用程序的开发效率和质量方面具有显著的优势。然而,开发人员在使用时应根据具体情况权衡利弊,并正确地使用和配置框架的功能。

4.为什么要使用spring 

程序员手动实例化对象弊端
 1.一旦依赖的接口需要大批量改动,迭代,维护的成本极高
 2.接口实现类不同,维护成本更高

通过使用spring可以实现自动实例化对象!


二.将spring框架部署在IDEA中 

1.替换pom.xml

 2.构建spring所需要的xml文件

 自此,spring就成功部署在在maven项目中了


三.spring的三种注入方式

0.定义需要的类,方法

 

 

1.方法注入

有两种第一种就是接口注入,其次就是属性注入!

1.1接口注入(同时查看两个打印语句)

实现思路就是定义bean设置id定义为了实例化的servet

 

  1.2属性注入,打印定义的属性

 1.3自动注入

1.3.1byname

 

 1.3.2btype


四.java spring 面试题

1.说说对于spring理解?

spring是一个轻量级控制反转(ioc)和面向切面(aop)的容器框架!

2.说说我对于ioc的理解 ?

控制反转:就是将实例化对象的权力由程序员控制交给spring容器来控制

 3.spring中ioc的注入方式?

set方法注入,构造注入,接口注入:自动装配

4.spring中自动装配中的byname和bytype是什么?

bname:Javabean会根据属性名在spring的上下文寻找寻找要求是根据spring的上下文中的
bean的id进行寻找,有的话就自动注入
btype:javabean会根据属性名对应的接口类型,在spring的上下文寻找,寻找要求是根据spring的上下文中的
是否又该接口的实现类进行寻找,有的话就自动注入(唯一性 )

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/84803.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java八股文面试[java基础]—— 重载 和 重写

Java中,有一个名叫方法签名的东西,它的定义是这样的 Definition: Two of the components of a method declaration comprise the method signature—the method’s name and the parameter types. 大概意思是,方法签名有两部分组成——方法…

信息与通信工程面试准备——信号与系统|10:23

8月16日 23:21 目录 ​编辑 1. 调制的作用 2. 放大器与振荡器的作用和区别 工作原理 输出信号 应用 反馈方式 设计复杂度 装置性质 3. 信号与系统:三大变换之间的关系? 4. 无码间串扰的条件 5. 冲激函数的作用? 研究的意义&…

ThreadLocal深度解析

简介 在并发编程中,导致并发bug的问题都会归结于对共享变量的操作不当。多个线程同时读写同一共享变量存在并发问题,我们可以利用写时复制、不变性来突破对原数据的写操作,没有写就没有并发问题,而本篇文章所介绍的技术是突破共享…

初始C语言(7)——详细讲解有关初阶指针的内容

系列文章目录 第一章 “C“浒传——初识C语言(1)(更适合初学者体质哦!) 第二章 初始C语言(2)——详细认识分支语句和循环语句以及他们的易错点 第三章 初阶C语言(3)——…

arm:day6

实现UART通信: 1.键盘输入一个字符a,串口工具显示b 2.键盘输入一个字符串"nihao",串口工具显示"nihao" uart.h #ifndef __UART4_H__ #define __UART4_H__#include "stm32mp1xx_uart.h" #include "stm32mp1xx_gpio.h" #in…

用于智能图像处理的计算机视觉和 NLP

莫斯科,神秘之城...(这张照片由伊戈尔沙巴林提供) 一、说明 如今,每个拥有智能手机的人都可能成为摄影师。因此,每天都有大量新照片出现在社交媒体、网站、博客和个人照片库中。尽管拍照的过程可能非常令人兴奋&#x…

Unity解决:3D开发模式第三人称视角 WASD控制角色移动旋转 使用InputSystem

Unity版本:2019.2.3f1 目录 安装InputSystem 1:创建InputHander.cs脚本 挂载到Player物体上 获取键盘输入WADS 2.创建PlayerLocomotion.cs挂载到Player物体上,控制物体移动转向 安装InputSystem 菜单栏/Window/Package Manager/Input Syst…

CentOS中Oracle11g进程有哪些

最近遇到Oracle数据库运行过程实例进程由于某种原因导致中止的问题,专门看了下正常Oracle数据库启动后的进程有哪些,查阅资料了解了下各进程的作用,记录如下。 oracle 3032 1 0 07:36 ? 00:00:00 ora_pmon_orcl oracle …

Linux:安全技术与防火墙

目录 一、安全技术 1.安全技术 2.防火墙的分类 3.防水墙 4.netfilter/iptables关系 二、防火墙 1、iptables四表五链 2、黑白名单 3.iptables命令 3.1查看filter表所有链 iptables -L ​编辑3.2用数字形式(fliter)表所有链 查看输出结果 iptables -nL 3.3 清空所有链…

计算机竞赛 垃圾邮件(短信)分类算法实现 机器学习 深度学习

文章目录 0 前言2 垃圾短信/邮件 分类算法 原理2.1 常用的分类器 - 贝叶斯分类器 3 数据集介绍4 数据预处理5 特征提取6 训练分类器7 综合测试结果8 其他模型方法9 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 垃圾邮件(短信)分类算…

UE4/UE5 “无法双击打开.uproject 点击无反应“解决

一、方法一:运行UnrealVersionSelector.exe 1.找到Epic Game Lancher的安装目录, 在lancher->Engine->Binaries->Win64->UnrealVersionSelector.exe 2.把UnrealVersionSelector.exe 分别拷贝到UE4 不同版本引擎的 Engine->Binaries->…

「UG/NX」Block UI 体收集器BodyCollector

✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#

创建型(二) - 单例模式

一、概念 单例设计模式(Singleton Design Pattern):一个类只允许创建一个对象(或者实例),那这个类就是一个单例类。 优点:在内存里只有一个实例,减少了内存的开销,避免…

.NET应用UI组件DevExpress XAF v23.1 - 全新的日程模块

DevExpress XAF是一款强大的现代应用程序框架,允许同时开发ASP.NET和WinForms。DevExpress XAF采用模块化设计,开发人员可以选择内建模块,也可以自行创建,从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。 在新版中…

chatGPT-对话柏拉图

引言: 古希腊哲学家柏拉图,在他的众多著作中,尤以《理想国》为人所熟知。在这部杰作中,他勾勒了一个理想的政治制度,提出了各种政体,并阐述了他对于公正、智慧以及政治稳定的哲学观点。然而,其…

使用Jetpack Compose的镜像效果

使用Jetpack Compose的镜像效果 您是否曾想过在列表或一般情况下为图像创建镜像效果?有了强大的Jetpack Compose UI工具包,这变得简单而容易。 正如您所看到的,此效果包括以下内容 反转图像反转图像的50%可见性模糊的反转图像与…

5、css学习5(链接、列表)

1、css可以设置链接的四种状态样式。 a:link - 正常,未访问过的链接a:visited - 用户已访问过的链接a:hover - 当用户鼠标放在链接上时a:active - 链接被点击的那一刻 2、 a:hover 必须在 a:link 和 a:visited 之后, a:active 必须在 a:hover 之后&…

ElasticSearch7.x + kibana7.x使用记录

目录 查询所有索引 查询索引的mapping信息 添加索引的同时添加mapping 在原有基础上新增字段 旧的索引迁移到新的索引(使用场景:数据迁移、索引优化、数据转换) 查询索引下的文档总数 场景1:某一个字段的值是数组&#xff0…

回归预测 | MATLAB实现WOA-SVM鲸鱼算法优化支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现WOA-SVM鲸鱼算法优化支持向量机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现WOA-SVM鲸鱼算法优化支持向量机多输入单输出回归预测(多指标,多图)效果一览基本介绍程…

【操作系统】寄存器

概念 寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器…