Spring IOC中bean标签和管理对象细节
1、bean 标签
作用:
用于配置对象让 spring 来创建的。
默认情况下它调用的是类中的无参构造函数。如果没有无参构造函数则不能创建成功。
属性:
id:给对象在容器中提供一个唯一标识。用于获取对象。
class:指定类的全限定类名。用于反射创建对象。默认情况下调用无参构造函数。
scope:指定对象的作用范围。
* singleton :默认值,单例的.
* prototype :多例的.
* request :WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 request 域中.
* session :WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 session 域中.
* global session :WEB 项目中,应用在 Portlet 环境.如果没有 Portlet 环境那么globalSession 相当于 session.
init-method:指定类中的初始化方法名称。
destroy-method:指定类中销毁方法名称。
2、 bean 的作用范围和生命周期
3、实例化 Bean 的三种方式
- 第一种方式:使用默认无参构造函数
<!--在默认情况下:
它会根据默认无参构造函数来创建类对象。如果 bean 中没有默认无参构造函数,将会创建失败。-->
<bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl"/>
- 第二种方式:spring 管理静态工厂-使用静态工厂的方法创建对象
/**
* 模拟一个静态工厂,创建业务层实现类
*/
public class StaticFactory {public static IAccountService createAccountService(){return new AccountServiceImpl();}
}
<!-- 此种方式是:
使用 StaticFactory 类中的静态方法 createAccountService 创建对象,并存入 spring 容器
id 属性:指定 bean 的 id,用于从容器中获取
class 属性:指定静态工厂的全限定类名
factory-method 属性:指定生产对象的静态方法
--> <bean id="accountService"class="com.itheima.factory.StaticFactory"factory-method="createAccountService"></bean>
- 第三种方式:spring 管理实例工厂-使用实例工厂的方法创建对象
/**
* 模拟一个实例工厂,创建业务层实现类
* 此工厂创建对象,必须现有工厂实例对象,再调用方法
*/
public class InstanceFactory {public IAccountService createAccountService(){return new AccountServiceImpl();}
}
<!-- 此种方式是:
先把工厂的创建交给 spring 来管理。
然后在使用工厂的 bean 来调用里面的方法
factory-bean 属性:用于指定实例工厂 bean 的 id。
factory-method 属性:用于指定实例工厂中创建对象的方法。
--><bean id="instancFactory" class="com.itheima.factory.InstanceFactory"></bean> <bean id="accountService"factory-bean="instancFactory"factory-method="createAccountService"></bean>
Spring IOC中bean标签和管理对象细节相关推荐
- Spring IOC原理 Bean标签解析和Definition封装
以下源码版本是 Spring 5.2.x IOC Inversion of Control 控制反转,关键实现是DI Dependency Injection,就必然涉及到有一个容器保存系统中所有托管 ...
- Spring配置文件中bean标签的scope属性
转自:https://fj-sh-chz.iteye.com/blog/1775149 singleton (默认属性) Spring将Bean放入Spring IOC容器的缓存池中,并将Bean引 ...
- Spring IOC中 Bean 作用域
Spring Bean 作用域 Spring 3 中为Bean定义了5种作用域,它们是:singleton(单例).prototype(原型).request.session 和 global se ...
- Spring中bean标签的属性和值:
Spring中bean标签的属性和值: <bean name="user" class="com.pojo.User" init-method=" ...
- Spring IOC中的Bean对象
Spring IOC中的Bean对象 (一)Bean是什么 突然发现提到了好多次Bean,居然忘记了讲Bean是什么.没事,现在讲也不晚.Java中的Bean是一种规范,是一种特殊的java类.所以我 ...
- IoC基础篇(一)--- Spring容器中Bean的生命周期
IoC基础篇(一)--- Spring容器中Bean的生命周期 日出日落,春去秋来,花随流水,北雁南飞,世间万物皆有生死轮回.从调用XML中的Bean配置信息,到应用到具体实例中,再到销毁,Bean也 ...
- Spring IOC容器-Bean管理——基于XML方式
Spring IOC容器-Bean管理--基于XML(续集) 1.IOC 操作 Bean 管理(FactoryBean) 1).Spring 有两种类型 bean,一种普通 bean,另外一种工厂 ...
- Spring IOC之Bean初始化篇
Spring Bean初始化简介 Spring IOC 是Spirng反向控制应用程序需要的资源,说白了就是类的实例化(new)操作交由Spring来进行管理.在Spring中创建的实例化对象我们称之 ...
- 【面试题】Spring框架中Bean的生命周期
生命周期 1.实例化一个Bean--也就是我们常说的new一个对象: 2.按照Spring上下文对实例化的Bean进行配置--也就是IOC注入: 3.如果这个Bean已经实现了BeanNameAwar ...
- 再见面试官:你能说说 Spring 框架中 Bean 的生命周期吗?
首先简单说一下(以下为一个回答的参考模板) 1.实例化一个Bean--也就是我们常说的new: 2.按照Spring上下文对实例化的Bean进行配置--也就是IOC注入: 3.如果这个Bean已经实现 ...
最新文章
- linux刷新指定URL脚本,【图片】linux下crontab定时执行本地脚本和定时访问指定url【不要牧师吧】_百度贴吧...
- java线程和操作系统线程的区别,赶紧收藏备战金三银四!
- luogu 3806
- mac下载安装本地mongodb
- matlab实现单纯型法解线性规划_【运筹学教程】求解线性规划问题的单纯形法
- Go语言与数据库开发:01-09
- 控制`Actor`朝向,运动 Learn Unreal Engine (with C++)
- java adminlte 使用_AdminLTE2管理后台自定义
- 利用ssh-copy-id无需密码登录远程服务器
- matlab实现参数方程求导(paradiff函数)
- 阴阳师服务器维护2月20,《阴阳师》手游2月20日维护更新公告
- DuckDuckGo 的盈利模式
- 发烧级蓝牙耳机哪款音质最好?200元内性价比高的蓝牙耳机
- 【vscode】常用快捷键
- unity调用windows画图打印图片
- linux文件目录基本操作实验结论,实验 Linux文件和目录操作
- Chris Guillebeau: 做什么由自己决定 - 人物志第17篇
- [机缘参悟-29]:鬼谷子-内揵篇-与上司交往的五种层次
- 2021年中国私营工业企业数量及经营情况分析[图]
- 【无线通信】无线通信系统结构演进(1)