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

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

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

    posts - 0, comments - 77, trackbacks - 0, articles - 356
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
    1.測(cè)試的實(shí)體Bean  Person類

    Person.java

    package com.semovy.bean;

    public class Person {
     
     private String id;

     private String name;

     private String note;

     public String getId() {
      return id;
     }

     public void setId(String id) {
      this.id = id;
     }

     public String getName() {
      return name;
     }

     public void setName(String name) {
      this.name = name;
     }

     public String getNote() {
      return note;
     }

     public void setNote(String note) {
      this.note = note;
     }

     public Person(String id, String name, String note) {
      super();
      this.id = id;
      this.name = name;
      this.note = note;
     }

     @Override
     public String toString() {
      // TODO Auto-generated method stub
      return "id: " + id + " name: " +  name + " note: " + note;
     }

    }
    2.操作Person實(shí)體類的接口PersonService

    PersonService.java

    package com.semovy.service;

    import java.util.ArrayList;
    import java.util.List;

    import com.semovy.bean.Person;

    public interface PersonService {

     public List<Person> persons = new ArrayList<Person>();

     public abstract void addPerson(Person person);

     public abstract Person getPersonById(String id);

     public abstract void deletePersonById(String id);

     //public abstract void updatePerson(Person person);

     public abstract void displayPersonById(String id);

     public abstract void displayAllPersons();
    }
    3.實(shí)現(xiàn)PersonService接口的PersonServiceImpl

    PersonServiceImpl.java

    package com.semovy.service.impl;

    import java.util.Iterator;

    import com.semovy.bean.Person;
    import com.semovy.service.PersonService;

    public class PersonServiceImpl implements PersonService {

     public void addPerson(Person person) {
      persons.add(person);
     }

     public void deletePersonById(String id) {
      Iterator it = persons.iterator();
      while(it.hasNext())
      {
       Person person = (Person)it.next();
       if(person.getId().equals(id))
       {
        it.remove();
        break;
       }
      }
     }

     public void displayAllPersons() {
      
      Iterator it = persons.iterator();
      while(it.hasNext())
      {
       Person person = (Person)it.next();
       System.out.println(person.toString());
      }
     }

     public void displayPersonById(String id) {
      
      Iterator it = persons.iterator();
      while(it.hasNext())
      {
       Person person = (Person)it.next();
       if(person.getId().equals(id))
       {
        System.out.println(person.toString());
        break;
       }
      }
      
     }

     public Person getPersonById(String id) {
      Iterator it = persons.iterator();
      while(it.hasNext())
      {
       Person person = (Person)it.next();
       if(person.getId().equals(id))
       {
        return person;
       }
      }
      return null;
     }

     /*public void updatePerson(Strin) {
      Iterator it = persons.iterator();
      while(it.hasNext())
      {
       Person person = (Person)it.next();
       if(person == aperson)
       {
        persons.set(arg0, arg1)
       }
      }
     }*/

    }

    4.寫日志的代理類LogProxy   它實(shí)現(xiàn)了InvocationHandler接口

    LogProxy.java

    package com.semovy.bean;

    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Proxy;

    import org.apache.log4j.Level;
    import org.apache.log4j.Logger;


    public class LogProxy implements InvocationHandler {
     
     Logger logger = Logger.getLogger(this.getClass().getName());
     private Object delegate = null;
     
     public Object getDelegate() {
      return delegate;
     }

     public void setDelegate(Object delegate) {
      this.delegate = delegate;
     }

     public Object bind(Object delegate) {
      this.delegate = delegate;
      return Proxy.newProxyInstance(delegate.getClass().getClassLoader(),
        delegate.getClass().getInterfaces(),this);
     }

     public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
      Object result = null;
      try
      {
       logger.log(Level.INFO,method.getName() +  " 開始處理...");
       result = method.invoke(this.delegate, args);
       logger.log(Level.INFO,method.getName() +  " 結(jié)束處理...");
      }catch(Exception e)
      {
       logger.log(Level.ERROR,e.getLocalizedMessage());
      }
      
      return result;
     }
    }

    5.在eclipse中添加log4j.properties

    log4j.properties

    log4j.rootLogger=DEBUG,stdout
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d %5p (%F:%L) - %m%n

    5.寫測(cè)試類Test.java

    Test.java

    package com.semovy.test;

    import java.io.File;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Iterator;
    import java.util.List;

    import com.semovy.bean.LogProxy;
    import com.semovy.bean.Person;
    import com.semovy.service.PersonService;
    import com.semovy.service.impl.PersonServiceImpl;

    public class Test {

     /**
      * @param args
      */
     public static void main(String[] args) {

      LogProxy logProxy = new LogProxy();
      PersonService personService = (PersonService)logProxy.bind(new PersonServiceImpl());
      personService.addPerson(new Person("1","name1","note1"));
      personService.addPerson(new Person("2","name2","note2"));
      personService.addPerson(new Person("3","name3","note3"));
      personService.addPerson(new Person("4","name4","note4"));
      personService.displayPersonById("3");
      personService.displayAllPersons();
      Person person = personService.getPersonById("2");
      person.setName("名稱2");
      person.setNote("注腳2");
      personService.displayAllPersons();
      personService.deletePersonById("2");
      personService.displayAllPersons();
      //saveToFile(persons,"c:/persons.txt");
     }
     
     public static void saveToFile(List list,String path)
     {
      System.out.println("開始寫入文件...");
      try
      {
       PrintWriter out = new PrintWriter(new File(path));
       Iterator it = list.iterator();
       while(it.hasNext())
       {
        Person person = (Person)it.next();
        out.println(person.toString());
       }
       out.flush();
       out.close();
       System.out.println("結(jié)束寫入文件...");
      }catch(IOException e)
      {
       System.out.println(e.getLocalizedMessage());
      }
      
     }
    }


    6.運(yùn)行測(cè)試結(jié)果:

    2008-02-05 02:55:28,926  INFO (LogProxy.java:34) - addPerson 開始處理...
    2008-02-05 02:55:28,926  INFO (LogProxy.java:36) - addPerson 結(jié)束處理...
    2008-02-05 02:55:28,926  INFO (LogProxy.java:34) - addPerson 開始處理...
    2008-02-05 02:55:28,926  INFO (LogProxy.java:36) - addPerson 結(jié)束處理...
    2008-02-05 02:55:28,926  INFO (LogProxy.java:34) - addPerson 開始處理...
    2008-02-05 02:55:28,936  INFO (LogProxy.java:36) - addPerson 結(jié)束處理...
    2008-02-05 02:55:28,936  INFO (LogProxy.java:34) - addPerson 開始處理...
    2008-02-05 02:55:29,036  INFO (LogProxy.java:36) - addPerson 結(jié)束處理...
    2008-02-05 02:55:29,036  INFO (LogProxy.java:34) - displayPersonById 開始處理...
    id: 3 name: name3 note: note3
    2008-02-05 02:55:29,036  INFO (LogProxy.java:36) - displayPersonById 結(jié)束處理...
    2008-02-05 02:55:29,036  INFO (LogProxy.java:34) - displayAllPersons 開始處理...
    id: 1 name: name1 note: note1
    id: 2 name: name2 note: note2
    id: 3 name: name3 note: note3
    id: 4 name: name4 note: note4
    2008-02-05 02:55:29,046  INFO (LogProxy.java:36) - displayAllPersons 結(jié)束處理...
    2008-02-05 02:55:29,046  INFO (LogProxy.java:34) - getPersonById 開始處理...
    2008-02-05 02:55:29,046  INFO (LogProxy.java:36) - getPersonById 結(jié)束處理...
    2008-02-05 02:55:29,046  INFO (LogProxy.java:34) - displayAllPersons 開始處理...
    id: 1 name: name1 note: note1
    id: 2 name: 名稱2 note: 注腳2
    id: 3 name: name3 note: note3
    id: 4 name: name4 note: note4
    2008-02-05 02:55:29,046  INFO (LogProxy.java:36) - displayAllPersons 結(jié)束處理...
    2008-02-05 02:55:29,046  INFO (LogProxy.java:34) - deletePersonById 開始處理...
    2008-02-05 02:55:29,046  INFO (LogProxy.java:36) - deletePersonById 結(jié)束處理...
    2008-02-05 02:55:29,046  INFO (LogProxy.java:34) - displayAllPersons 開始處理...
    id: 1 name: name1 note: note1
    id: 3 name: name3 note: note3
    id: 4 name: name4 note: note4
    2008-02-05 02:55:29,046  INFO (LogProxy.java:36) - displayAllPersons 結(jié)束處理...


    主站蜘蛛池模板: 国产精品亚洲片在线| 黄色a三级三级三级免费看| 亚洲高清无码在线观看| 亚洲啪啪免费视频| 91在线免费观看| 精品久久久久亚洲| 亚洲一卡二卡三卡四卡无卡麻豆| 永久亚洲成a人片777777| 暖暖日本免费在线视频| 精品久久久久成人码免费动漫| 久久aa毛片免费播放嗯啊| 一级毛片a免费播放王色| 亚洲AV无码AV日韩AV网站| 亚洲国产午夜电影在线入口| 久久亚洲国产视频| 亚洲人成网亚洲欧洲无码久久| 亚洲av片一区二区三区| 国产成人青青热久免费精品| 18禁成年无码免费网站无遮挡 | 爽爽日本在线视频免费| 亚洲一级免费毛片| 久久久精品2019免费观看| 免费视频一区二区| 麻豆精品不卡国产免费看| 黄色网站软件app在线观看免费| 国产99久久久久久免费看| 一级做a爰性色毛片免费| 免费人成视频在线观看免费| 色噜噜狠狠色综合免费视频| 亚洲AV日韩AV无码污污网站| 亚洲AV无码一区二区三区电影| 亚洲无人区码一二三码区别图片| 亚洲人成人网毛片在线播放| 中文字幕无码亚洲欧洲日韩| 亚洲av日韩综合一区二区三区| 亚洲欧美日韩久久精品| 亚洲av无码专区在线电影| 免费在线观看亚洲| 又硬又粗又长又爽免费看| av网站免费线看| 成人免费区一区二区三区|