웹 응용 프로그램 데이터베이스 3 티어 서버 설정이 있습니다. 웹은 앱에서 데이터를 요청하고 앱은 데이터를 db에서 가져와 처리 한 다음 웹에 표시하여 표시합니다. 표준.코드 중복없이 appserver에서 웹 서버로 객체를 직렬화하는 방법
현재 웹에서 웹으로 직렬화 한 모든 데이터는 웹 측에서 표시를 위해 사용자 정의 된 데이터 구조체에 저장됩니다. 즉, 검색하고 웹에 보내려는 주문이 있다고 가정 해보십시오. 전체 객체를 직렬화하지는 않지만, 애플리케이션 서버에서 적절한 데이터 요소를 가진 배열을 만든 다음 웹 서버로 배열을 직렬화합니다.
이제 전체 주문 개체를 웹 서버에 직렬화하는 방법을 살펴 보았습니다.
앱 서버와 웹 서버 코드의 분리를 유지하면서 객체를 직렬화하는 데 가장 좋은 방법은 무엇입니까? 내 웹 서버에 DB에 액세스하는 코드는 필요 없지만 가능한 한 내 주문 및 기타 데이터를 캡슐화하는 클래스를 다시 사용하기를 바랍니다.
글렌의 답변에 감사드립니다. 내 웹 서버에 비즈니스 로직 중 하나라도 주문 클래스라고 말하면 좋지 않습니다. 앱 서버 만 알면됩니다. 객체는 이미 데이터베이스와 /와 웹 서버간에 별도의 직렬화를 사용합니다.) (즉,
$ 순서 -가> 취소; 주문 예제를 사용
, 애플리케이션 서버에, 주문을 취소 할 수 있어야한다
하지만 웹 서버에서는이 방법을 찾을 수 없습니다. 사용자 작업 요청은 응용 프로그램의 권한 부여 및 사용 권한 확인 계층을 통해 진행해야하기 때문에 응용 프로그램 순서의 취소 방법으로 직접 (직접) 다시 프록시해서는 안됩니다.
그렇다면 웹 서버에서 코드 복제가 거의없이 애플리케이션에있는 객체의 메서드와 속성 중 일부만 (모두는 아님) 객체를 가져 오려면 어떻게해야합니까? 한 가지 생각한 것은 제한된 속성 및 메서드 집합을 사용하여 기본 클래스를 만드는 것입니다. 내부 클래스를 사용하여 속성을 보유 할 것이므로 모든 데이터 액세스가 getter 및 setter를 통과하도록해야합니다. 이것들은 내부 클래스의 getter와 setter를 호출합니다.
그러면 웹 및 앱 서버가 독립적으로 기본 클래스를 확장하고 사용자 정의 내부 클래스를 사용하여 속성을 보유 할 수 있습니다. 그런 다음 응용 프로그램 측면에서 내부 클래스는 데이터를 DB에 유지할 수있는 ORM 클래스 확장이 될 수 있으며 웹 측면에서 내부 클래스는 간단한 속성 홀더 클래스가 될 수 있습니다.
하지만 내부 클래스의 모든 것이 다소 어수선해 보였으므로 더 나은 솔루션을 찾고 있습니다. Adapter pattern를 사용하여 별도의 클래스로
예, 예를 들어, appserver 주문 객체를 상위 클래스 (Order_Base라고 함)로 캐스팅 한 다음 웹 서버 측에서 Order_Base로 재수화한 다음 웹 서버 측의 하위 클래스 생성자로 전달하여 하위 클래스를 구성하십시오. 모두 조금 어설픈지만 .. – Zak