11 Mayıs 2018 Cuma

SpringOXM Jaxb2Marshaller Sınıfı

constructor
Şöyle yaparız.
Jaxb2Marshaller bean = new Jaxb2Marshaller();
marshall metodu
Örnek
Elimizde şöyle bir kod olsun. Burada sınıf üzerinde JAXB anotasyonları kullanılıyor
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Person {
  private String name;
  private int age;
  @XmlElement
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  @XmlElement
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
}
Jaxb2Marshaller nesnesini yaratmak için şöyle yaparız
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
@Configuration
public class XMLConfig {
  @Bean
  public Jaxb2Marshaller marshaller() {
    Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
    marshaller.setClassesToBeBound(Person.class); // Include more classes if needed
    return marshaller;
  }
}
Jaxb2Marshaller nesnesini kullanmak için şöyle yaparız
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class XMLController {
  @Autowired
  private Jaxb2Marshaller marshaller;
  @PostMapping("/unmarshal")
  public Person unmarshalXml(@RequestBody String xmlData) {
    return (Person) marshaller.unmarshal(new StringSource(xmlData));
  }
}
setClassesToBeBound metodu
Şöyle yaparız.
bean.setClassesToBeBound(MyBean.class);
setContextPath metodu
Şöyle yaparız.
bean.setContextPath("ch.sahits.game.helloworld");

Hiç yorum yok:

Yorum Gönder