Spring

本文详细介绍了Spring框架,包括其轻量级、控制反转、面向切面编程等特性,以及核心容器、AOP模块、JDBC抽象和DAO模块、ORM集成、Web模块等内容。Spring配置文件通常为XML,它通过IOC容器管理对象,实现依赖注入,降低了组件间的耦合。此外,文章讨论了构造器和setter方法的依赖注入方式,并解释了Spring beans的生命周期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring 概述
1.什么是Spring?
Spring是个java企业级应用的开源开发框架,Spring主要用来开发Java、应用,但是有些扩展是针对构建J2EE平台的web应用,Spring框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。
2. 使用Spring框架的好处是什么?
轻量:SPring是轻量的,基本的版本大约2MB
控制反转:Spring通过控制反转实现了松耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们
面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开
容器:Spring包含并管理应用中对象的生命周期和配置
MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品
事物管理:Spring提供一个持续的事物管理接口,可以扩展到上至本地事物下至全局事物(JTA)
异常处理:Spring提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO 抛出的)转化为一致的unchecked异常
3.Spring 由哪些模块组成?
以下是Spring框架的基本模块:
Core module
Bean module
Context module
Expression module
JDBC module
ORM module
OXM module
Java Messaging Service(JMS) module
Transaction module
Web module
Web-Servlet module
Web-Struts module
Web-Portlet module
4.核心容器(应用上下文)模块
这是基本的Spring模块,提供Spring框架的基础功能,BeanFactory是任何以spring为基础的应用核心。Spring框架监理在此模块之上,它使Spring成为一个容器。
5.BeanFactory - BeanFactory实现举例
Bean工程是工程模式的一个实现,提供了控制反转功能,用来把应用的配置和依赖从真正的应用代码中分离,最常用的BeanFactory实现是XMLBeanFactory类
6.XMLBeanFactory
最常用的就是org.springframework.beans.factory.xml.XmlBeanFactory,他根据XML文件中的定义加载beans。该容器从XML文件读取配置员数据并用它去创建一个完全配置的系统或应用。
7.解释AOP模块
AOP模块用于给我们的Spring应用做面向切面的开发,很多支持由AOP联盟提供,这样就确保了Spring和其他AOP框架的共同性。这个模块将元数据编程引入Spring。
8.解释JDBC抽象和DAO模块
通过使用JDBC抽象和DAO模块,保证数据库代码的简洁,并能避免数据库资源错误关闭的问题,它和各个不同的数据库的错误信息之上,提供了一个统一的异常访问层。它还利用Spring的AOP模块给Spring应用中的对象提供事物管理服务。
9.解释对象/关系映射集成模块
Spring通过提供ORM模块,支持我们直接JDBC之上使用一个对象/关系映射 映射(ORM)工具,Spring支持集成主流的ORM框架,例如Hibernate,JDO和IBATIS SQL Maps。Spring的事物管理同样支持以上所有ORM框架及JDBC。
10.解释WEB模块
Spring 的WEB模块是构建在application context 模块基础之上,提供一个合适web应用的上下文。这个模块也包括支持多种面向web的任务,如透明地处理多个文件上传请求和程序级请求参数的绑定到你的业务对象。它也有对Jakarta Struts 的支持
SPring 配置文件
Spring配置文件是个XML文件,这个文件包含了类信息,描述了如何配置它们,以及如何相互调用。
.什么是Spring IOC 容器
Spring IOC 扶着创建对象,管理对象(通过依赖注入(DI))装配对象,配置对象,并管理这些对象的整个生命周期
IOC的优点是什么?
IOC或依赖注入(DI)把应用的代码量降到最低。它使应用容易测试,单元测试不在需要单利和JNDI查找机制。最小的代价和最小的清儒性使松散耦合得以实现。IOC容器支持加载服务是的恶汉式初始化和懒加载。
ApplicationContext 通常实现是什么?
FIleSystemXMLApplicationContext:此容器从一个XML、文件中加载beans的定义,XML Bean配置文件的全路径名必须提供给它的构造函数。

ClassPathXMLApplicationContext:此容器也从一个XML文件中加载beans的定义,这里,你需要正确设置classpath因为这个容器将在classpath里找bean配置。

WebXmlApplicationContext:此容器加载一个XMl文件,此文件定义了一个WEB应用的所有bean。
Bean工程和Application contexts 有什么区别?
Applicationcontexts 提供一种方法处理文本消息,一个通常的做法是加载文件资源(比如镜像),它们可以向注册以监听器的bean发布事件。另外,在容器或容器内的对象上执行的那些不得不由bean工厂以程序化方式处理的操作,可以在Application contexts中以声明的方式处理。Application contexts 实现了MessageSource接口,该接口实现以可插拔的方式提供获取本地池消息的方法。
什么是Spring的依赖注入
依赖注入,是IOC的一个方面,是通常的概念,它以多种解释。这个概念是说你不用创建对象,而只需要描述它如何被创建。它不在代码里直接组织你的组件和服务,但是要在配置文件里描述哪些组件需要哪些服务,之后一个容器(IOC容器)复杂把 他们组装起来

spring IOC或DI原理:由容器负责把组件所“依赖”的具体对象“注入”(赋值)给组件,从而避免组件以硬编码的方式耦合在一起

有哪些不同类型的IOC(依赖注入)方式?
构造器依赖注入:构造器依赖注入通过容器触发一个类的构造器来实现的,该列有一系列参数,每个参数代表一个对其他类的依赖
Setter方法注入:setter方法注入是容器通过调用无参构造器或无参static工程方法实例化 bean 之后,调用该bean的setter方法,及实现了基于setter的依赖注入。
哪种依赖注入方式你建议使用,构造器注入还是Setter方法注入?
你两种依赖方式都可以使用,构造器注入和Setter方法注入。最好的解决方案是用构造器参数实现强制依赖,setter方法实现可选依赖。

Setter(设值注入)构造注入
通过setter访问器实现通过构造方法实现
灵活性好,但setter方法数量较多灵活性差,仅靠重载限制太多
时效性差时效性好
通过无参构造实例化通过匹配的构造方法实例化,但建议保留无参构造

Spring Beans
1、什么是Spring beans?
Spring beans是那些形成Spring应用的主干的java
对象。他们被Spring IOC容器初始化,装配,和管理。这些beans通过容器中配置的元数据创建。比如,以XML文件中的形式定义。

Spring框架定义的beans都是单件beans。在bean tag中有个属性“singleton”,如果它被赋为TRUE,bean就是单件,否则就是一个prototype bean。默认是TRUE,所以所有在Spring框架中的beans缺省都是单件。店家这里一图Spring Bean的生命周期。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值