`

Spring学习-创建Bean的三种方式

阅读更多
MyTestInstance类
package com.app.impl;

public class MyTestInstance {
	
	private String testMessage;
	
	public MyTestInstance(){
		System.out.println("初始化我的MyTestInstance类.");
	}
	public void info(){
		System.out.println(this.getTestMessage());
	}

	public String getTestMessage() {
		return testMessage;
	}

	public void setTestMessage(String testMessage) {
		this.testMessage = testMessage;
	}

	
}




TestCreateInstance 类
package com.app.impl;

import com.app.ICreateInstance;

public class TestCreateInstance implements ICreateInstance {
	
	private String message;
	
	public TestCreateInstance(){
		System.out.println("使用构造器创建Bean实例");
	}
	public static MyTestInstance staticCreateInstance(){
		MyTestInstance instance = new MyTestInstance();
		System.out.println("使用静态工厂方法创建Bean");
		return instance;
	}
	public MyTestInstance createInstance(){
		MyTestInstance instance = new MyTestInstance();
		System.out.println("调用实例工厂方法创建Bean");
		return instance;
	}

	public void testService() {
		System.out.println("testService--------------");
	}

	public void setMessage(String message) {
		this.message = message;
	}
	public String getMessage() {
		return message;
	}
	
	
	

}




Hibernate.cfg.xml配置
<bean id="testCreateInstance1" class="com.app.impl.TestCreateInstance" p:message="我的哈哈">
	</bean>	
	<bean id="testCreateInstance2" class="com.app.impl.TestCreateInstance" 
		p:testMessage="不是哈哈1"
		factory-method="staticCreateInstance">
	</bean>
	<bean id="testCreateInstance3" factory-bean="testCreateInstance1"
		p:testMessage="不是哈哈2"
		factory-method="createInstance">
	</bean>


测试
public void testCreate(){
		ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		
		TestCreateInstance instance1 = ctx.getBean("testCreateInstance1",TestCreateInstance.class);
		instance1.testService();
		
		MyTestInstance instance2 = ctx.getBean("testCreateInstance2",MyTestInstance.class);
		instance2.info();
		
		MyTestInstance instance3 = ctx.getBean("testCreateInstance3",MyTestInstance.class);
		instance3.info();
	}


输出:
---------------------------------------------------
使用构造器创建Bean实例
初始化我的MyTestInstance类.
使用静态工厂方法创建Bean
初始化我的MyTestInstance类.
调用实例工厂方法创建Bean
testService--------------
不是哈哈1
不是哈哈2
分享到:
评论

相关推荐

    Spring-Bean创建对象的步骤方式详解

    在本篇文章里小编给大家分享的是关于Spring-Bean创建对象的步骤方式详解内容,有兴趣的朋友们跟着学习下。

    Spring创建bean对象三种方式代码实例

    主要介绍了Spring创建bean对象三种方式代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Spring框架花式创建Bean的n种方法(小结)

    主要介绍了Spring框架花式创建Bean的n种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Spring框架通过工厂创建Bean的三种方式实现

    主要介绍了Spring框架通过工厂创建Bean的三种方式实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Spring如何使用注解的方式创建bean

    主要介绍了Spring如何使用注解的方式创建bean,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Spring 源码分析(Bean的初始化)

    Spring 源码分析(Bean的初始化) 前言 本篇文章是个人第一次看spring源码并总结,同时也参考了下面这篇博客。基本也是按照他的思路来理解的。这也算是第一版个人简易理解。也算是窥见spring的冰山一角,之后也会...

    Spring学习

    Spring学习,简单理解,帮助大家学习。 Spring由Rod Johnson创建的,开源的轻量级Java开发框架。 于2003年兴起,2016年最高版本是4.3. 有两个目标:让现有的技术更易于使用 促进良好的编程习惯 由7个模块...

    Spring Boot如何动态创建Bean示例代码

    主要给大家介绍了关于Spring Boot如何动态创建Bean的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

    JAVA spring 系列案例50个和学习资料

    Spring系列第4篇:xml中bean定义详解(-)Spring系列第5篇:创建bean实例这些方式你们都知道?Spring系列第6篇:玩转bean scope,避免跳坑里!Spring系列第7篇:依赖注入之手动注入Spring系列第8篇:自动注入...

    spring-learn:Spring轻松学习demo

    Spring学习 介绍 Spring轻松学习demo 1.弹簧IOC容器 1.弹簧注入方式 set方法注入 构造方法注入 2.Bean的装配 1.豆的作用域 单例单例获取 原型每次请求都创建实例 2.豆的生命周期 定义,初始化,使用,销毁 待补充......

    spring+springmvc+mybatis的整合

    前段时间,分开学习了这三个框架,都是看某黄埔军校的视频,整合的部分没看视频,想自己做。 但是有一些部分自己没有能完成,主要是如何从spring容器里取出ApplicationContext,这个我的实现比较low,看了看讲义,...

    spring学习笔记(有代码有注解解释)

    内容概要:学习Spring的一些学习笔记,主要学习Spring 框架两大核心机制(IoC、AOP) 笔记大纲:阅读笔记可以学习了解一下内容 如何使用 IoC ;配置文件;IoC 底层原理;通过运行时类获取 bean;通过有参构造创建 ...

    Spring如何使用xml创建bean对象

    主要介绍了Spring如何使用xml创建bean对象,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    spring1.2学习心得分享

    Spring容器的特点 (1)容器对对象的管理 a.创建时机:默认和容器一起创建。 可以使用&lt;bean lazy-init=""/&gt;延缓实例化 可以使用&lt;beans default-lazy-init=""/&gt;延缓所有组件实例化 b.销毁时机:单例对象容器close...

    spring学习心得

    Spring容器的特点 (1)容器对对象的管理 a.创建时机:默认和容器一起创建。 可以使用&lt;bean lazy-init=""/&gt;延缓实例化 可以使用&lt;beans default-lazy-init=""/&gt;延缓所有组件实例化 b.销毁时机:单例对象容器close...

    SSM框架的学习与应用-Java EE企业级应用开发学习记录-(第六天)初识Spring框架

    本资源是一篇关于学习和应用SSM框架(Spring、SpringMVC、MyBatis)的学习记录系列文章中的第六天内容,主题为初识Spring框架。 在这一部分中,你将了解到Spring框架的基本概念和使用方法,并通过实例探讨了Spring ...

    Spring bean为什么默认是单例

    主要介绍了Spring bean为什么默认是单例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    SpringIoc三种方案

    本项目学习的框架是Spring框架主要讲解的内容是mvc中的创建对象的IOC和Aop的内容案例...在spring框架中你可以使用IOc三种方案 1 配置文件的注入 2 注解的方式注入 3 不需要配置文件注入 建立一个工具类使用注解的方式**

    Spring_IoC入门笔记.md

    注入方式:有三种 第一种:使用构造函数提供(创建对象时,必须提供数据,否则无法创建成功) 使用的标签:constructor-arg 标签出现的位置:bean标签的内部 标签中的属性: type:用于指定要注入的数据的数据...

    新版本SpringCloud2学习手册

    创建springcloud-2.0-parent 42 Ribbon配置 45 配置Feign客户端超时时间 45 Api网关服务SrpingCloud Zuul 45 网关分类 46 网关设计 46 网关框架 48 网关作用 49 网关与过滤器区别 49 Nginx与Zuul的区别 49 ...

Global site tag (gtag.js) - Google Analytics