package org.springside.examples.miniservice.ws.dto; import java.util.List; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlType; import org.apache.commons.lang.builder.ToStringBuilder; import org.springside.examples.miniservice.ws.WsConstants; import com.google.common.collect.Lists; /** * Web Service传输User信息的DTO. * * 只传输外部接口需要的属性.使用JAXB 2.0的annotation标注JAVA-XML映射,尽量使用默认约定. * * @author calvin */ @XmlType(name = "User", namespace = WsConstants.NS) public class UserDTO { private Long id; private String loginName; private String name; private String email; private List<RoleDTO> roleList = Lists.newArrayList(); public Long getId() { return id; } public void setId(Long value) { id = value; } public String getLoginName() { return loginName; } public void setLoginName(String value) { loginName = value; } public String getName() { return name; } public void setName(String value) { name = value; } public String getEmail() { return email; } public void setEmail(String value) { email = value; } //配置输出xml为<roleList><role><id>1</id></role></roleList> @XmlElementWrapper(name = "roleList") @XmlElement(name = "role") public List<RoleDTO> getRoleList() { return roleList; } public void setRoleList(List<RoleDTO> roleList) { this.roleList = roleList; } /** * 重新实现toString()函数方便在日志中打印DTO信息. */ @Override public String toString() { return ToStringBuilder.reflectionToString(this); } }