나는 제어 할 수없는 외부 소스에서 xsd를 가져 왔습니다. 이제 JAXB 생성 클래스에 사용자 정의 메소드를 추가하여 getters 및 setter가있는 단순한 POJO가 아니라 오브젝트 자체에 대해 더 많이 알고 싶습니다.JAXB 생성 클래스에 사용자 정의 비헤이비어를 추가하는 방법. 기존 메서드를 재정의하지 않는 사용자 지정
이 유형의 접근 방식을 구현 한 후에는 수화 된 개체를 드릴 다운하지 않아도되지만 개체에 사용자 지정 메서드를 호출하는 데 필요한 특정 정보가 있는지 물어보고 원하는 정보를 얻을 수 있습니까?
물론 루트 객체의 자식 하위를 드릴 다운하고 각 자식에 getter 메서드를 호출하고 비즈니스 논리를 구현하는 전통적인 프로그래밍 방식이 있습니다. 그러나 어쨌든 여기서 팀은 그렇게하기를 원하지 않습니다.
내가 지금까지 한 한 가지 접근 방식은 무차별 대입입니다. 마찬가지로 JAXB 사용하여 XSD에서 클래스를 생성합니다. 그럼 내가 외부 유틸리티를 (지금 이것은 독립 실행 형 자바 프로그램입니다) 어떤 특정 파일을 (우리 자신의 방식으로 어떤 방법을 찾아야하고 어떤 .java 파일을 찾아야 만하는지) 특정 디렉토리에있는 텍스트 파일을 읽을 것입니다. 이 클래스는 커스텀 메소드를 보유하고, 그 메소드를 적절한 JAXB 생성 클래스로 옮긴다. 때마다 XSD의 새 버전을 얻을 때마다 클래스를 생성하고,이 유틸리티를 호출하고, JAXB 생성 클래스의 일부 변수가 변경된 경우 컴파일 문제를 해결해야합니다. 유틸리티가 완벽하게 작동합니다. 그러나 나는 이것을 알고 싶다.
더 좋은 방법이 있습니까? 나는 인터넷을 확인했다. 주어진 해결책이 있지만 JAXB 생성 객체의 기존 get 메소드를 무시하고 완전히 새로운 메소드를 추가하지는 않습니다.
좋습니다.