首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

java诠注(一)概念及JABX使用例子

2013-01-23 
java注解(一)概念及JABX使用例子一、概念____________________________________________________________?

java注解(一)概念及JABX使用例子

一、概念____________________________________________________________

?

注解,作用类似有xml配置文件,避免同一份信息保存在两个地方。

@Override,@Deprecated (key,value)都省略了

@SupressWarnings({"uncheck", "unused"})大括号表示数组类型,key只有一个,省略

@XmlElement(name = "id")配置参数,键值对

?

?

注解用@interface用来声明定义,元注解,在java.lang.annotation包里面,有4个

?

@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.ANNOTATION_TYPE)public @interface Documented {//are to be documented by javadoc and similar tools by default}
?

?

@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.ANNOTATION_TYPE)public @interface Inherited {//}

?

?

//@Retention保留策略: CLASS、RUNTIME和SOURCE,分别表示注解保存在类文件、JVM运行时刻和源代码中。 //只有RUNTIME,才能在运行时刻通过反射API来获取到注解的信息,类似SSH的xml配置文件的注入作用  @Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.ANNOTATION_TYPE)public @interface Retention {    RetentionPolicy value();}

?

?

//@Target用来声明注解的作用范围,如类型、方法和域等@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.ANNOTATION_TYPE)public @interface Target {    ElementType[] value();}

?

二、JAXB例子____________________________________________________________

?

JAXB(Java Architecture for XML Binding)?

?

/** * @author timeriver.wang * @date 2013-01-09 8:07:01 PM */@XmlRootElement@XmlAccessorType(XmlAccessType.PROPERTY)public class Student {private String id;private String name;public String getId() {return id;}@XmlElement(name = "id")public void setId(String id) {this.id = id;}@XmlElement(name = "name")public String getName() {return name;}public void setName(String name) {this.name = name;}}

?

?

/** * @author timeriver.wang * @date 2013-01-09 8:07:09 PM */@XmlRootElementpublic class Teacher {    private String id;    private String name;    private List<Student>students;    @XmlAttribute (name = "tid")      public String getId() {        return id;    }    public void setId( String id ) {        this.id = id;    }    @XmlElement(name = "tname")    public String getName() {        return name;    }    public void setName( String name ) {        this.name = name;    }    @XmlElement(name = "students")    public List<Student> getStudents() {        return students;    }    public void setStudents( List<Student> students ) {        this.students = students;    }}

?

?

/** * @author timeriver.wang * @date 2013-01-09 8:08:15 PM */public class Test {    public static void main( String[] args )throws Exception {//        toXml();//        toStu();        toXmls();    }    public static void toXml()throws Exception {        Student stu = new Student();        stu.setId( "007" );        stu.setName( "zhouxingxing" );        File file = new File( "D:/stu.xml" );        JAXBContext jaxbContext = JAXBContext.newInstance( Student.class );        Marshaller jaxbMarshaller = jaxbContext.createMarshaller();        jaxbMarshaller.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, true );        jaxbMarshaller.marshal( stu, file );        jaxbMarshaller.marshal( stu, System.out );    }    public static void toStu()throws Exception {        File file = new File( "D:/stu.xml" );        JAXBContext jaxbContext = JAXBContext.newInstance( Student.class );        Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();        Student stu = (Student) jaxbUnmarshaller.unmarshal( file );        System.out.println( stu );    }    public static void toXmls()throws Exception {        Student stu = new Student();        stu.setId( "007" );        stu.setName( "zhouxingxing" );        Student stu2 = new Student();        stu2.setId( "008" );        stu2.setName( "dawenxi" );        List<Student>students = new ArrayList<Student>();        students.add( stu );        students.add( stu2 );        Teacher teacher = new Teacher();        teacher.setId( "101" );        teacher.setName( "DASHI" );        teacher.setStudents( students );        File file = new File( "D:/teacher.xml" );        JAXBContext jaxbContext = JAXBContext.newInstance( Teacher.class );        Marshaller jaxbMarshaller = jaxbContext.createMarshaller();        jaxbMarshaller.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, true );        jaxbMarshaller.marshal( teacher, file );        jaxbMarshaller.marshal( teacher, System.out );    }}
?

?

热点排行