java xml annotation_java注解XML
用的是jdk自带的javax.xml.bind.JAXBContext将对象和xml字符串进行相互转换。
比较常用的几个:
@XmlRootElement:根节点
@XmlAttribute:该属性作为xml的attribute
@XmlElement:该属性作为xml的element,且可以增加属性(name="NewElementName"),那么生成的xml串的elment的标签是NewElementName
首先,java注解读取XML。
一、新建school.xml文件,内容如下:
延边大学
吉林延吉市001
小杜
23
002
小张
21
二、根据配置文件书写对应的注解类。
编写Student基类,内容如下:
package com.cvicse.ump.xml.school;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
public class Student {
private String studentNum;
private String studentName;
private String studentGrade;
private int age;
@XmlElement(name="num")
public String getStudentNum() {
return studentNum;
}
public void setStudentNum(String studentNum) {
this.studentNum = studentNum;
}
@XmlElement(name="name")
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
@XmlAttribute(name="grade")
public String getStudentGrade() {
return studentGrade;
}
public void setStudentGrade(String studentGrade) {
this.studentGrade = studentGrade;
}
@XmlElement
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student [studentNum=" + studentNum + ", studentName="
+ studentName + ", studentGrade=" + studentGrade + ", age="
+ age + "]";
}
}
编写基类school,内容如下:
packagecom.cvicse.ump.xml.school;importjava.util.List;importjavax.xml.bind.annotation.XmlElement;importjavax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="SCHOOL")public classSchool {privateString name;privateString address;private Liststudents;
@XmlElementpublicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}
@XmlElementpublicString getAddress() {returnaddress;
}public voidsetAddress(String address) {this.address =address;
}
@XmlElement(name="student")public ListgetStudents() {returnstudents;
}public void setStudents(Liststudents) {this.students =students;
}
@OverridepublicString toString() {return "School [name=" + name + ", address=" + address + "]";
}
}
编写XML读取程序:
package com.cvicse.ump.xml.school;
import java.io.File;
import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
public class SchoolRead {
public static void main(String[] args) {
File file = new File("src/school.xml");
try {
JAXBContext context = JAXBContext.newInstance(School.class);
Unmarshaller unMar = context.createUnmarshaller();
School school = (School) unMar.unmarshal(file);
System.out.println(school);
Liststudents = school.getStudents();
for(Student student:students){
System.out.println(student);
}
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
编写写入文件程,内容如下:
package com.cvicse.ump.xml.school;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
public class SchoolWrite {
public static void main(String[] args) {
School school = new School();
school.setName("实验小学");
school.setAddress("山东济南市");
List students = new ArrayList();
Student student1 = new Student();
student1.setStudentNum("001");
student1.setStudentName("xiaoDy");
student1.setAge(25);
student1.setStudentGrade("1");
Student student2 = new Student();
student2.setStudentNum("002");
student2.setStudentName("xiaoWf");
student2.setAge(22);
student2.setStudentGrade("2");
students.add(student1);
students.add(student2);
school.setStudents(students);
try {
JAXBContext context = JAXBContext.newInstance(School.class);
Marshaller mar = context.createMarshaller();
mar.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
mar.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
mar.marshal(school, System.out);
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
源码下载:https://yunpan.cn/cxDZgKQbeDLqt (提取码:68e1)
参考网址:http://blog.csdn.net/lhzjj/article/details/11796713
java xml annotation_java注解XML相关推荐
- Spring—xml和注解
xml与注解 xml万能,适用于任何场合,维护简单方便 注解 不是自己的类使用不了,维护相对复杂 xml和注解的最佳实践 xml用来管理bean 注解只负责完成属性的注入 要开启注解的支持 自动装配 ...
- 用小说的形式讲解Spring(3) —— xml、注解和Java Config到底选哪个
本文发布于专栏Effective Java,如果您觉得看完之后对你有所帮助,欢迎订阅本专栏,也欢迎您将本专栏分享给您身边的工程师同学. 本集概要: 为什么说xml配置是类型不安全的配置方式? 如何使用 ...
- spring 配置的三种方式:XML配置,JAVA配置和注解配置
spring自从3.0开始以后,就全面推荐使用配置的方式进行代码编写了,这种方式确实可以避免了之前一个项目里面一大堆XML的情况,毕竟XML的可读性实在不怎么样,而且一会写JAVA,一会写XML,确实 ...
- @select注解_mybatis开发,你用 xml 还是注解?我 pick xml
最近在看公司项目时发现有的项目mybatis是基于注解开发的,而我个人的习惯是基于xml文件开发. 对于mybatis注解开发的原理理解不够,于是翻阅了部分源码,写下此文.主要介绍了mybatis开发 ...
- 基于XML和注解的Spring Bean管理
文章目录 Spring工厂接口 BeanFactory接口 ApplicationContext 接口 Spring的bean管理的两种方式: 3 种实例化bean的方式(xml) 通过构造方法创建b ...
- XML和注解(Annotation)
XML 一.什么是XML XML(eXtended Markup Language)是一种可扩展标记语言,主要用于数据传输. 二.XML文档的结构 主要组成为:声明,元素,注释,属性,文本等. 一个格 ...
- JAVAWEB开发之Spring详解之——Spring的入门以及IOC容器装配Bean(xml和注解的方式)、Spring整合web开发、整合Junit4测试
Spring框架学习路线 Spring的IOC Spring的AOP,AspectJ Spring的事务管理,三大框架的整合 Spring框架概述 什么是Spring? Spring是分层的Java ...
- 解决maven打包时漏掉src/main/java资源里的xml的问题
在整合Spring + Mybatis框架的时候,自动扫描配置都已经配置好了. 配置如下: <context:component-scan base-package="com.yd&q ...
- xml java jaxb_【Java】JAXB操作XML用法详解
什么是JAXB? JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.在JAX-WS(Java的W ...
- Spring装配bean的三种方法:自动化装配,java代码装配,XML装配及它们的混合使用
一.自动化装配 首先,把可能被装配的类声明为组件类,告知spring要为这个类创建bean如: import org.springframework.stereotype.Component;@ Co ...
最新文章
- 算法设计与分析第4章 动态规划(二)【DP序列问题】
- Gif(1)-加载视图-交替圆效果
- 八大排序算法图文讲解
- django html文本编辑器,django xadmin 集成DjangoUeditor富文本编辑器
- 深度启动盘工具linux,Linux下无法安装深度启动盘制作工具
- 网络编程套接字API
- 从xml中返回的对象,和new 返回的对象时不同的。
- 测试接口python常用命令_用python实现接口测试(四、操作MySQL)-阿里云开发者社区...
- java 队列的使用
- SQL调优日记--并行等待的原理和问题排查
- ASCII码表 0-255完整版 附详细注释
- 【性能优化】如何让APK瘦成一道闪电
- Python根据歌曲id爬取网易云音乐歌词
- 计算机c盘容易满怎么办,C盘快满了怎么办 如何清理C盘垃圾?
- VB语言通用基础语句
- 新丰机器人_韶关新丰:智能巡检开启配电网运维新模式
- Camera Link相机接口
- spring boot mybatis 事务回滚
- matlab图形界面fig文件打开不能编辑
- requests使用cookie模拟登陆豆瓣
热门文章
- 区块链50国之泰国:发行国家数字货币CTH 欲与新加坡争夺东南亚ICO中心 | 链塔智库...
- 科创板|交控科技确定发行价 每股16.18元将发行4000万股
- Name for argument type [java.lang.String] not avai
- IE-LAB网络实验室:5G和WIFI6,还傻傻的分不清吗?(4)
- 草根创业,屌丝逆袭的最后机会
- 浅谈项目开发中的模块化、解耦、封装
- python cx_oracle 安装_python3.7安装cx_Oracle
- Item19 设计class犹如设计type
- SpringBoot整合阿里巴巴Druid数据源
- UVALive 3412 Pesky Heroes(树形dp)