博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring3.0 入门进阶(1):从配置文件装载Bean
阅读量:5264 次
发布时间:2019-06-14

本文共 3450 字,大约阅读时间需要 11 分钟。

Spring 已经盛行多年,目前已经处于3.0阶段,关于Spring的概念介绍性的东西网上已经很多,本系列博客主要是把一些知识点通过代码的方式总结起来,以便查阅.

作为入门,本篇主要介绍Bean的加载

工具类

 

package com.eric.introduce;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.eric.introduce.di.ConferenceRoom;import com.eric.introduce.di.DummyConfig;import com.eric.introduce.di.Knight;import com.eric.introduce.di.Performer;import com.eric.introduce.di.RescueDamselQuest;/** * @author Eric *  */public class IntroduceUtil {	private static final String CONFIG_FILE = "com/eric/introduce/introduce.xml";	private static ApplicationContext context = new ClassPathXmlApplicationContext(			CONFIG_FILE);	/**	 * 通过ClassPathXmlApplication获得Bean实例	 */	public static void demonstrateDIByClassContent() {		Knight knight = (Knight) context.getBean("knight");		knight.embarkOnQuest();	}	/**	 * 默认情况下Context总是返回同一个对象	 */	public static void demonstrateSingleStonClassContent() {		Knight knight1 = (Knight) context.getBean("knight");		Knight knight2 = (Knight) context.getBean("knight");		System.out.println(knight1);		System.out.println(knight2);	}	/**	 * Spring中的singleSton只是正对一个context而言,不同的上下文会有不同的实例	 */	public static void demonstrateSingleStonInContent() {		ApplicationContext anotherContext = new ClassPathXmlApplicationContext(				CONFIG_FILE);		Knight knight1 = (Knight) context.getBean("knight");		Knight knight2 = (Knight) anotherContext.getBean("knight");		System.out.println(knight1);		System.out.println(knight2);	}	/**	 * 通过factoryMethod 加载Bean	 * 	 **/	public static void demonstrateLoadBeanByFactory() {		DummyConfig dummyConfig = (DummyConfig) context.getBean("config");		System.out.println(dummyConfig.getConfigurationMap());	}	/**	 * 如果通过factoryMethod的方式加载Bean,即使是不同的Context,任然返回的是同一个Bean实例	 * 	 **/	public static void demonstrateLoadBeanByFactory2() {		ApplicationContext anotherContext = new ClassPathXmlApplicationContext(				CONFIG_FILE);		DummyConfig dummyConfig = (DummyConfig) context.getBean("config");		DummyConfig dummyConfig2 = (DummyConfig) anotherContext				.getBean("config");		System.out.println(dummyConfig);		System.out.println(dummyConfig2);	}	/**	 * 但Bean定义了Scope设置为Prototype后,每次会实例化不同的实例	 */	public static void demonstratePrototypeBean() {		RescueDamselQuest quest1 = (RescueDamselQuest) context				.getBean("prototypeQuest");		RescueDamselQuest quest2 = (RescueDamselQuest) context				.getBean("prototypeQuest");		System.out.println(quest1);		System.out.println(quest2);	}	/**	 * 验证init以及destory方法	 * 	 **/	public static void demonstrateInitAndDestory() {		ConferenceRoom conferenceRoom = (ConferenceRoom) context				.getBean("conferenceRoom");		conferenceRoom.use();	}	/**	 * 验证了注入集合的几种方法	 */	public static void demostrateInjectionPropertieWays() {		Performer performer = (Performer) context				.getBean("instrumentPerformer");		performer.performer();		performer.eatFruit();		performer.printProperties();	}}

 

 

配置文件

 

FOOTBALL
WUHAN

由于功能都比较简单,通过调用方法以及配置文件应该就可以看出用法,所以只列出了部分文件.

 

如果需要完整事例,请下载附件

 

转载于:https://www.cnblogs.com/riasky/p/3455572.html

你可能感兴趣的文章
提高PHP性能的10条建议
查看>>
Java大数——a^b + b^a
查看>>
简单的数据库操作
查看>>
帧的最小长度 CSMA/CD
查看>>
树状数组及其他特别简单的扩展
查看>>
普通求素数和线性筛素数
查看>>
PHP截取中英文混合字符
查看>>
【洛谷P1816 忠诚】线段树
查看>>
电子眼抓拍大解密
查看>>
tomcat7的数据库连接池tomcatjdbc的25个优势
查看>>
Html 小插件5 百度搜索代码2
查看>>
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
查看>>
java 常用命令
查看>>
卷积中的参数
查看>>
51nod1076 (边双连通)
查看>>
ViewPager的onPageChangeListener里面的一些方法参数:
查看>>
Linux pipe函数
查看>>
java equals 小记
查看>>
2019春 软件工程实践 助教总结
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>