개발_웹/Java

Java | 객체(Object) ↔ XML (simple 프레임워크를 이용한 xml 변환)

zuyo 2017. 11. 1. 11:11
반응형
Simple
XML 직렬화처리 및 설정을 해주는 고성능 프레임워크
 
1. porm.xml
- simple framework 디펜던시 추가
<!-- https://mvnrepository.com/artifact/org.simpleframework/simple-xml --> 		<dependency> 			<groupId>org.simpleframework</groupId> 			<artifactId>simple-xml</artifactId> 			<version>2.7.1</version> 		</dependency>

2. 디스패처 서블릿

(..컨트롤러, 도메인 빈 등록밖에 없음. 생략)

 

3. 도메인A

@Root @Component public class User {  	@Element 	private int no; 	@Element 	private String id; 	@Element 	private String pw; 	@Element 	private String name; 	@Element 	private String address; 	(..이하 생성자, getter/setter)

4. 도메인B

- 도메인A의 리스트

@Root @Component public class Users {  	@ElementList 	private List<User> users;  	public List<User> getUsers() { 		return users; 	}  	public void setUsers(List<User> users) { 		this.users = users; 	} 	(..생략)

5-1. 컨트롤러

- xml -> 자바 객체

@Controller public class UsersXmlController { 	 	/** 	 * xml 읽어 객체 생성하는 메소드 	 */ 	@RequestMapping(value="/makeobj.do") 	public void xmlToObject() { 		//--------------------------------------------------- 		// xml -> 객체 생성 		//--------------------------------------------------- 		// 파일 경로 		String path = this.getClass().getResource("/").getPath(); 		path = path.substring(1, path.indexOf("WEB-INF")); 		System.out.println("path: " + path); 		 		// 담을 객체 생성 		List<User> list = new ArrayList<>(); 		Users users = new Users(); 		users.setUsers(list); 		 		// xml 읽어 객체 생성 		Serializer serializer = new Persister(); 		File source = new File(path + "users.xml"); 		try { 			serializer.read(users, source); 		} catch (Exception e) { 			e.printStackTrace(); 		} 		 		System.out.println(list); 	}

5-2. 컨트롤러

- 자바 객체 -> xml

        /** 	 * 객체로 xml 생성하는 메소드 	 */ 	@RequestMapping(value="/makexml.do") 	public void objectToXml() { 		//--------------------------------------------------- 		// 객체 생성 		//--------------------------------------------------- 		List<User> list = new ArrayList<>(); 		Users users = new Users();  		User u1 = new User(); 		u1.setNo(1); 		u1.setId("abc"); 		u1.setPw("123"); 		u1.setName("강대봉"); 		u1.setAddress("서울시"); 	 		User u2 = new User(); 		u2.setNo(1); 		u2.setId("adfgbc"); 		u2.setPw("1234"); 		u2.setName("홍구"); 		u2.setAddress("서울시"); 		 		list.add(u1); 		list.add(u2); 		 		users.setUsers(list); 		 		//--------------------------------------------------- 		// 객체 -> xml 생성 		//--------------------------------------------------- 		// 파일 경로 		String path = this.getClass().getResource("/").getPath(); 		path = path.substring(1, path.indexOf("WEB-INF")); 		System.out.println("path: " + path); 		 		// 객체 읽어 xml에 쓰기 		Serializer serializer = new Persister(); 		File result = new File(path + "users.xml"); 		try { 			//serializer.write(u2, result); 			serializer.write(users, result); 		} catch (Exception e) { 			e.printStackTrace(); 		}  		//--------------------------------------------------- 		// xml 출력 		//--------------------------------------------------- 		// 미구현 	}

- xml 생성 결과

 

반응형