Spring框架Bean实例化方式详解
需积分: 3 170 浏览量
更新于2024-07-13
收藏 882KB PPT 举报
三种实例化Bean的方式-Spring-从入门到精通
在 Spring 框架中,实例化 Bean 是一个非常重要的步骤。Bean 是 Spring 框架的核心组件,它可以提供业务逻辑、数据访问、事务处理等功能。实例化 Bean 的方式有多种,本文将介绍三种常见的实例化 Bean 的方式。
**使用类构造器实例化**
第一种方式是使用类构造器实例化,也就是没有参数的构造函数来建立 Bean 的实例。这种方式非常简单,通过在 XML 配置文件中指定 Bean 的类名和 ID,就可以实例化 Bean。
例如:<bean id="sample" class="com.fendou.service.impl.SampleImpl"/>
**使用静态工厂方法实例化**
第二种方式是使用静态工厂方法实例化。这种方式需要在工厂类中提供一个静态方法,用于创建 Bean 实例。然后,在 XML 配置文件中指定工厂类和方法名,就可以实例化 Bean。
例如:
```java
public class PersonFactory {
public static Person getPerson(){
return new Person();
}
}
```
然后,在 XML 配置文件中指定工厂类和方法名:<bean id="person2" class="com.spring.bean.PersonFactory" factory-method="getPerson"></bean>
**使用实例工厂方法实例化**
第三种方式是使用实例工厂方法实例化。这种方式需要在工厂类中提供一个非静态方法,用于创建 Bean 实例。然后,在 XML 配置文件中指定工厂类和方法名,就可以实例化 Bean。
例如:
```java
public class PersonFactory {
public Person getPerson2(){
return new Person();
}
}
```
然后,在 XML 配置文件中指定工厂类和方法名:<bean id="personFactory" class="com.spring.bean.PersonFactory"></bean><bean id="person3" factory-bean="personFactory" factory-method="getPerson2"></bean>
**Spring 框架的基本思想**
Spring 框架的基本思想是控制反转(Inversion of Control,IoC)和依赖注入(Dependency Injection,DI)。控制反转是指应用程序本身不负责依赖对象的创建和维护,而是由外部容器来负责。依赖注入是指容器来管理对象之间的依赖关系,而不是对象本身来管理。
**Spring 框架的特性**
Spring 框架最常用的特性包括:
* 利用 Spring 来创建对象(JavaBean 工厂)
* 利用 Spring 构建业务逻辑层
* 管理依赖关系
* 适应需求变更
* 利用 Spring 创建数据访问对象(DAO)
* 利用 Spring 进行事务处理
**Spring 框架的架构**
Spring 框架的架构主要包括三个部分:应用程序、IoC 容器和依赖项。应用程序是业务逻辑的实现部分,IoC 容器是负责管理对象之间的依赖关系的部分,依赖项是指对象之间的依赖关系。
**依赖注入的类型**
依赖注入有两种类型:构造器注入和设值方法注入。构造器注入是指通过类的构造方法注入依赖关系,而设值方法注入是指通过类的 setter 方法注入依赖关系。
本文介绍了三种实例化 Bean 的方式,并对 Spring 框架的基本思想、特性和架构进行了概述。
496 浏览量
116 浏览量
2007-07-10 上传
点击了解资源详情
2012-05-22 上传
2007-12-13 上传
2007-12-13 上传
2009-02-27 上传
2012-09-04 上传
三里屯一级杠精
- 粉丝: 36
- 资源: 2万+
最新资源
- Python中快速友好的MessagePack序列化库msgspec
- 大学生社团管理系统设计与实现
- 基于Netbeans和JavaFX的宿舍管理系统开发与实践
- NodeJS打造Discord机器人:kazzcord功能全解析
- 小学教学与管理一体化:校务管理系统v***
- AppDeploy neXtGen:无需代理的Windows AD集成软件自动分发
- 基于SSM和JSP技术的网上商城系统开发
- 探索ANOIRA16的GitHub托管测试网站之路
- 语音性别识别:机器学习模型的精确度提升策略
- 利用MATLAB代码让古董486电脑焕发新生
- Erlang VM上的分布式生命游戏实现与Elixir设计
- 一键下载管理 - Go to Downloads-crx插件
- Java SSM框架开发的客户关系管理系统
- 使用SQL数据库和Django开发应用程序指南
- Spring Security实战指南:详细示例与应用
- Quarkus项目测试展示柜:Cucumber与FitNesse实践