09月07日学习杂记(CollectionFactory小例子)
来源:互联网 发布:midas软件 编辑:程序博客网 时间:2024/06/05 16:36
CollectionFactory整理杂记
为了给BeanFactory学习作铺垫,张老师用一个CollectionFactory的一个实例来引导我们,并介绍在通过FACTORY来调用BEAN的时候的工作原理,现在把思路及其部分代码展示如下:
首先是CollectionFactory文件,通过它来解析一个PROPERTIES文件中的内容,并且返回一个BEAN的实例
=========================================================================================
package cn.itcast;
import java.util.*;
import java.io.*;
public class CollectionFactory{
public static Collection getCollection() throws Exception{
//定义一个输入流对象IPS,是COLLECTION.PROPERTIES文件地址的一个实例
InputStream ips = CollectionFactory.class.getResourceAsStream("/cn/itcast/collection.properties" );
//定义一个PROPERTIES用来存放输入流对象(一个PROPERTIES相当于一个HASHMAP,里面既有键,又有键所对应的值)
Properties props = new Properties();
//载入输入流对象
props.load(ips);
ips.close();
//定义一个字符型变量,用来存储键(CLASS)所对应的值
String strClassName = props.getProperty("class");
//得到STRCLASSNAME所对应的类
Class classCollection = Class.forName(strClassName);
//用类CLASSCOLLECTION创建一个实例,这个实例必然是一个COLLECTION类型的对象
Collection objCollection = (Collection) classCollection.newInstance();
//定义一个长字符串,用来存储ELEMENTS所对应的值(一个长字符串)
String strElements = props.getProperty("elements");
//用逗号将长字符串拆分为字符型数组
String [] elements = strElements.split(",");
//遍历字符数组,并把各元素加入OBJCOLLECTION对象中,返回这个对象
for(String element : elements){
objCollection.add(element);
}
return objCollection;
}
}
其次,是定义一个PROPERTIES文件,它来存储一些类及元素的信息
============================================================
class=java.util.ArrayList
elements=abc,def,ghi
最后,写一个主类文件(MainClass)用来加载并测试
================================================
package cn.itcast;
import java.util.Collection;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.BasicConfigurator;
public class MainClass{
public static void main(String [] args) throws Exception{
//初始LOG4J的一句话,使用非标准LOG4J所必须的一句话
BasicConfigurator.configure();
//从LOGFACTORY中实例化一个LOG对象,(注意传入的参数是MainClass.class)
Log log = LogFactory.getLog(MainClass.class);
Collection objCollection = CollectionFactory.getCollection();
//遍历OBJCOLLECTION对象,打印出这里的信息
for(Object obj : objCollection)
{
log.info(obj.toString());
}
}
}
- 09月07日学习杂记(CollectionFactory小例子)
- 09月02日学习杂记(工作流)
- 09月04日学习杂记(LOG4J)
- 09月01日学习杂记(复习代理的知识)
- 09月08日学习杂记(Spring第一天)
- 09月11日学习杂记(MYSQL初步)
- 09月12日学习杂记(MYSQL初步2)
- 09月15日学习杂记(SPRING散记)
- 8月22日学习杂记
- 8月24日学习杂记
- 8月25日学习杂记
- 08月26日学习杂记(工作流)
- 09月14日学习杂记(用两种模式操作数据库[模板模式与策略模式])
- 08月29日学习杂记(反射及代理)
- 08月31日学习杂记(JUNIT的使用)
- 11月5日杂记
- 2013年9月30日~杂记
- 2017年7月1日杂记
- 用递归的方法进行二叉树的搜索和插入
- 09月04日学习杂记(LOG4J)
- jdk,j2ee,j2se,j2me的概念区别
- 中华近代十大名将----聂士成
- 中华近代十大名将----张自忠
- 09月07日学习杂记(CollectionFactory小例子)
- 消除尾部递归
- 09月08日学习杂记(Spring第一天)
- 抓住一只“肥”灰鸽子Backdoor.Win32.Hupigon.cpf(第2版)
- 我要学java,一起努力
- 防火墙技术(一)
- 回应
- 09月11日学习杂记(MYSQL初步)
- 09月12日学习杂记(MYSQL初步2)