Spring实例化bean的三种方法
1.用构造器来实例化
- <bean id="hello2" class="com.hsit.hello.impl.ENhello" />
2.使用静态工厂方法实例化
要写一个bean,bean中定义一个静态方法,生成bean,配置factory-method指定静态方法,运行时容器就会自动调用静态方法生成实例
bean
- package com.hsit.hello.impl;
- import com.hsit.hello.IHello;
- public class CHhello implements IHello {
- private String msg;
- public void sayHello() {
- System.out.println("中文" + msg);
- }
- public String getMsg() {
- return msg;
- }
- public void setMsg(String msg) {
- this.msg = msg;
- }
- @Override
- public String toString() {
- // TODO Auto-generated method stub
- return "Chinese";
- }
- public static CHhello createInstance() {
- System.out.println("jingtai");
- return new CHhello();
- }
- }
配置文件
- <bean id="hello1" class="com.hsit.hello.impl.CHhello" factory-method="createInstance" lazy-init="true">
- <!-- setter注入 -->
- <property name="msg" value="哈哈">
- </property>
- </bean>
3.使用实例工厂方法实例化
要写两个bean,一个是要实例化的bean,另一个是工厂bean。容器先实例化工厂bean,然后调用工厂bean配置项factory-method中指定的静态方法,在方法中实例化bean
- package com.hsit.hello.impl;
- public class ENhelloFactory {
- public ENhello createInstance() {
- System.out.println("ENhello工厂");
- return new ENhello();
- }
- public ENhelloFactory() {
- System.out.println("chuanjian");
- }
- }
- package com.hsit.hello.impl;
- import com.hsit.hello.IHello;
- public class ENhello implements IHello {
- @Override
- public void sayHello() {
- // TODO Auto-generated method stub
- System.out.println("hello");
- }
- @Override
- public String toString() {
- // TODO Auto-generated method stub
- return "我是ENhello";
- }
- }
配置文件
- <bean id="eHelloFactory" class="com.hsit.hello.impl.ENhelloFactory" />
- <!-- factory-bean填上工厂bean的id,指定工厂bean的工厂方法生成实例,class属性不填 -->
- <bean id="example" factory-bean="eHelloFactory" factory-method="createInstance"/>
测试代码
- BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
- ENhello eNhello = (ENhello) factory.getBean("example");
- System.out.println(eNhello.toString());
- factory.getBean("hello1");
http://blog.csdn.net/q3498233/article/details/6695580
Spring实例化bean的三种方法相关推荐
- Spring 实例化bean的三种方式
第一种方法:直接配置Bean Xml代码 <bena id="所需要实例化的一个实例名称" class="包名.类名"/> 例如: 配置文件中的 ...
- Spring装配bean的三种方法:自动化装配,java代码装配,XML装配及它们的混合使用
一.自动化装配 首先,把可能被装配的类声明为组件类,告知spring要为这个类创建bean如: import org.springframework.stereotype.Component;@ Co ...
- spring 实例化bean的几种方法
1.普通的通过构造函数初始化,没有指定构造函数参数的就是用默认的无参的构造方法 <bean id="exampleBean" class="examples.Exa ...
- Spring创建Bean的三种方式的使用和区别
在学习Spring的时候,发现Spring的IOC(控制反转)为我们提供的三种创建Bean的方式. 1.Spring创建Bean的三种方式 这里采用XML配置,分别演示三种创建Bean的方式和代码. ...
- Spring 创建Bean的三种方式
创建Bean的三种方式 第一种方式:使用默认构造函数创建. 在spring的配置文件中使用bean标签,配以id和class属性之后,且没有其他属性和标签时.采用的就是默认构造函数创建bean对象,此 ...
- 记下来 Spring 装配 Bean 的三种方式
ps:拿笔记一下,面试可能会考.依赖注入DI和面向切面编程AOP是Spring框架最核心的部分.这次主要是总结依赖注入的bean的装配方式. 前言 什么是依赖注入呢?也可以称为控制反转,简单的来说,一 ...
- Java普通类获取Spring框架Bean 的五种方法
方法一:在初始化时保存ApplicationContext对象 代码: ApplicationContext ac = new FileSystemXmlApplicationContex(" ...
- Spring2.5.6学习笔记-实例化bean的几种方法
1. 用构造器来实例化 <bean id="exampleBean" class="examples.ExampleBean"/> <bean ...
- java bean销毁,销毁Spring Bean的三种方法
@PreDestroy Java标准注解 实现DisposableBean的Destroy()方法 自定义销毁方法 XML 配置: Java注解 @Bean(destroy="destroy ...
- java的销毁方法_销毁Spring Bean的三种方法
@PreDestroy Java标准注解 实现DisposableBean的Destroy()方法 自定义销毁方法 XML 配置: Java注解 @Bean(destroy="destroy ...
最新文章
- Node.js前置知识点(二):同步/异步
- Log4j 2使用教程转
- Egret note
- 如何选择和计算滤波电容?--电容使用详述
- ubuntu18.04新安装时Unable to locate package问题
- JAVA(-Xms,Xmx,Xmn-XX:newSize,-XX:MaxnewSize,-XX:PermSize,-XX:MaxPermSize)区别
- DenseNet论文
- linux运行natapp,Centos使用natapp教程
- 螺钉 螺母 硬币三种物体的识别
- HyperLynx(七)微带线串扰的仿真
- LAMP 技术简介(1)
- SCARA——OpenGL入门学习五六(三维变换、动画)
- 数学基础知识总结 —— 9. 什么是拉格朗日乘数法(Lagrange Multiplier,有约束条件的多元函数求极值)
- 一对同居男女同一天的日记
- 《黑马》——C++基础入门
- 1955年至2020年的国家GDP数据可视化-基于Pandas,Seaborn
- 运行深度学习出现Fail to create pixmap with Tk_GetPixmap in TkImgPhotoInstanceSetSize
- 常见的比较二进制工具有哪些
- (时间篇)关于时间的思考
- java溢出问题_JAVA 正则表达式的溢出问题 及不完全解决方案。 (感谢Lancelot 在评论中给出的方法)...
热门文章
- android 开源病毒库,ClamAV+ClamTK,开源杀毒软件
- 怎么画人像_画动画+耍杂技怎么玩?日本小哥串烧后居然爆火网络
- 对目录下所有库文件进行rpath更改操作的SHELL脚本
- JAVA中RGB字串转换为颜色
- 管理:权力是用来完成责任的
- 纽微特记事:发火说产品差,业务开展不了,怎么不找自已的问题
- Python中Image缩放、旋转、翻转等操作
- 为什么编译个开源就觉得自己功劳巨大(对前研发总监李某功劳的分析)
- deepstream-app源码没有公开,预计3.0可能公开
- redis php web管理,redis web界面管理工具 phpredisadmin