그냥 요약하면 다음과 같습니다.
2 사례가 있습니다. 먼저 소유 리소스를 만듭니다. 가장 좋은 방법은 현재 로그인 한 사용자를 확인하기 위해 UserContext를 주입 할 기본 리소스 팩토리를 꾸미는 것입니다. 또는 두 번째 인수로 팩토리 메서드에 전달합니다.
두 번째 것은 리소스를 업데이트하는 것입니다. 소유자 만 리소스를 편집 할 수 있습니까? 자원 ID뿐만 아니라 현재 사용자도받는 일부 저장소 메소드가 작업을 수행합니다. 그런 다음 findByIdAndCustomer 메소드가 있으므로 허용 된 사용자 만 편집 페이지에 액세스 할 수 있습니다. 그렇지 않으면 오류가 표시됩니다. 나는 이것이 404 일 것이라고 추측한다.
이것이 원하는 경우, 두 개의 재정의 된 자원 (사용자 정의 팩토리 및 저장소)으로 끝나고 라우팅을 정의 할 때 yaml에서 나머지를 처리해야한다. 컨트롤러를 변경하지 않아도됩니다.
두 가지 접근 방식 중 일부 비교 :
- 아마도 더 빠른 것 리스너를 해결 (하나의 클래스 만 필요) 쉽게.
- 이벤트 리스너를 통해 관리하는 경우 라우팅 변경이 필요하지 않습니다.
- 팩토리를 오버라이드 (override)하면, 지정된 객체로이 객체가 항상 생성됩니다. 이벤트는 생성 후 데이터베이스로 지속되기 전에 전달됩니다.
- 사용자 정의 저장소 방법을 사용하면 편집 페이지를 소유자가 아닌 사용자가 표시 할 수 없습니다.
둘 다 맞습니다. IMHO는 더 빠르며, 두 번째는 더 깨끗합니다. 필요한 것을 결정하십시오.