<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    題目: IOC 后臺(tái)機(jī)制學(xué)習(xí)

    ?
    題目: IOC 后臺(tái)機(jī)制學(xué)習(xí)
    給定:
    配置文件 config.txt, 文件內(nèi)容
    className = test.JavaBean1
    field = username
    value = ABC

    該文件中的三個(gè)值會(huì)隨時(shí)可能變化, 唯一不變的是 className 指定的都是一個(gè) JavaBean(為了簡(jiǎn)化, 我們假定里面已經(jīng)有一個(gè) username 屬性, 例如:

    class JavaBeanxxxx {
    ?? ?private String username;

    ?? ?public String getUsername() {
    ?? ??? ?return username;
    ?? ?}

    ?? ?public void setUsername(String uname) {
    ?? ??? ?this.username = uname;
    ?? ?}
    }

    要求: 寫一段代碼, 讀取配置文件 config.txt, 然后實(shí)現(xiàn)把 className 指定的 JavaBean 類加載(注意這個(gè)類名是可以修改的, 可配置的), 然后生成一個(gè)實(shí)例,
    并把配置文件中field字段指定的值作為這個(gè)實(shí)例的屬性名(這里是username)所對(duì)應(yīng)的值設(shè)置為 ABC(字符串), 并且要讀出最后設(shè)置的值.

    此題已經(jīng)被 TigerTian 解答出來, 歡迎學(xué)習(xí), 也感謝 TigerTian:
    package?com.gcoresoft.ioc;

    import?java.io.*;
    import?java.lang.reflect.*;
    import?java.util.*;
    import?java.beans.*;

    public?class?IOCStudy?{
    ????
    ????
    //Load?the?properties?file
    ????private?Properties?prop=new?Properties();
    ????
    ????
    public?void?loadPropFile(String?filename)
    ????{
    ????????
    try
    ????????{
    ????????????FileInputStream?fin
    =new?FileInputStream(filename);
    ????????????prop.load(fin);
    ????????????fin.close();
    ????????}
    catch(Exception?e){
    ????????????System.out.println(e.toString());
    ????????}
    ????}
    ????
    ????
    private?String?getValueByName(String?Name)
    ????{
    ????????
    return?prop.getProperty(Name);
    ????}
    ????
    ????
    public?static?void?main(String[]?args)
    ????{
    ????????IOCStudy?ioc
    =new?IOCStudy();
    ????????ioc.loadPropFile(
    "E:\\Work\\GetInIOC\\src\\com\\gcoresoft\\ioc\\Config.txt");
    ????????
    try
    ????????{
    ????????????Class?bean
    =Class.forName(ioc.getValueByName("className"));
    ????????????
    try?{
    ????????????????java.beans.BeanInfo?info
    =java.beans.Introspector.getBeanInfo(bean);
    ????????????????java.beans.PropertyDescriptor?pd[]
    =info.getPropertyDescriptors();
    ????????????????
    try?{
    ????????????????????Method?mSet
    =null,mRead=null;
    ????????????????????Object?obj
    =bean.newInstance();
    ????????????????????
    for(int?i=0;i<pd.length;i++)
    ????????????????????????
    if(pd[i].getName().equalsIgnoreCase(ioc.getValueByName("field")))
    ????????????????????????{
    ????????????????????????????mSet
    =pd[i].getWriteMethod();
    ????????????????????????????mRead
    =pd[i].getReadMethod();????????????????????????????
    ????????????????????????}
    ????????????????????
    try?{
    ????????????????????????mSet.invoke(obj,?ioc.getValueByName(
    "value"));
    ????????????????????????String?str
    =(String)mRead.invoke(obj,?null);
    ????????????????????????System.out.println(str);
    ????????????????????}?
    catch?(IllegalArgumentException?e)?{
    ????????????????????????
    //?TODO?Auto-generated?catch?block
    ????????????????????????e.printStackTrace();
    ????????????????????}?
    catch?(InvocationTargetException?e)?{
    ????????????????????????
    //?TODO?Auto-generated?catch?block
    ????????????????????????e.printStackTrace();
    ????????????????????}
    ????????????????}?
    catch?(InstantiationException?e)?{
    ????????????????????
    //?TODO?Auto-generated?catch?block
    ????????????????????e.printStackTrace();
    ????????????????}?
    catch?(IllegalAccessException?e)?{
    ????????????????????
    //?TODO?Auto-generated?catch?block
    ????????????????????e.printStackTrace();
    ????????????????}

    ????????????????
    ????????????}?
    catch?(IntrospectionException?e)?{
    ????????????????
    //?TODO?Auto-generated?catch?block
    ????????????????e.printStackTrace();
    ????????????}
    ????????????
    ????????????
    ????????}
    catch(ClassNotFoundException?e){
    ????????????System.out.println(e.toString());
    ????????}
    ????????
    ????}
    ????
    }

    posted on 2008-08-27 20:41 金家寶 閱讀(301) 評(píng)論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 国产女高清在线看免费观看| 久久国产乱子免费精品| 手机在线毛片免费播放| 久久精品a亚洲国产v高清不卡| 久久久久免费看黄a级试看| 久久精品国产亚洲AV网站 | 亚洲精品中文字幕乱码影院| 免费国产成人18在线观看| 亚洲∧v久久久无码精品| 99久久国产免费中文无字幕| 亚洲精品国产第1页| 国产美女在线精品免费观看| 亚洲AV色欲色欲WWW| 免费一级毛片正在播放| 国产黄色免费观看| 亚洲欧洲在线观看| AA免费观看的1000部电影| 亚洲熟妇无码AV| 免费中文字幕在线| 成人无码a级毛片免费| 亚洲国产综合专区在线电影| 午夜国产精品免费观看 | 亚洲一级大黄大色毛片| 成人免费男女视频网站慢动作| 亚洲av无码日韩av无码网站冲 | 免费看国产一级片| 最近免费字幕中文大全| 亚洲导航深夜福利| 精品少妇人妻AV免费久久洗澡| 特级毛片aaaa免费观看| 91亚洲国产成人精品下载| 午夜成人免费视频| 中文字幕在线视频免费观看| 久久久久亚洲精品日久生情 | 免费人成毛片动漫在线播放| 亚洲综合欧美色五月俺也去| 亚洲区日韩区无码区| 曰批视频免费40分钟试看天天| 在线观看亚洲专区| 亚洲天堂久久精品| 免费国产真实迷j在线观看|