저의 Jersey 프로젝트에서 요청/세션에 대한 일부 작업을 수행하는 사용자 정의 InjectableProvider를 사용하여 RESTful 서비스에 필요한 사용자 ID를 작성합니다. 즉, 다음과 같은 서비스 메소드를 작성할 수 있습니다.Jersey InjectableProvider와 비슷한 Spring MVC 컨트롤러에 컨텍스트 삽입하기
@GET
@Produces(MediaType.APPLICATION_JSON)
public String getByAccountIdAndGroup(@InjectAccount(required=false) String accountId, @DefaultValue("default") @QueryParam("productGroup") String productGroup) {
...
}
여기서 @InjectAccount는 내 사용자 정의 주석입니다.
동일한 프로젝트에서 SpringMVC 컨트롤러에 대해 비슷한 작업을하고 싶습니다. 즉, 내가 쓸 수 있도록하려면 : I 공통 코드를 고려하기보다는 직접 뉴저지 InjectableProvider에게 다시 사용해야 할 것으로 예상하고있어
@RequestMapping(method = RequestMethod.GET)
public String showForm(Model model, @InjectAccountSpringMvc String accountId) {
...
}
.
아마도 Spring 중심의 방법은 내 컨트롤러에 삽입 된 스레드 범위 Bean을 사용하는 것이지만 저지 스타일을 Spring MVC에서 모두 수행 할 수 있는지 궁금합니다. 스레드 범위 접근 방식을 통해 주입 된 서비스는 다음과 같습니다
@Component
@Scope("THREAD")
public class AccountResolver {
@Autowired
private HttpServletRequest request
private String theAccount=null;
public String getAccount() {
if (theAccount == null) {
theAccount=resolveAccount();
}
return theAccount;
}
}
이 같은 깔끔하지 않고 더 어려워 직접 컨트롤러를 테스트 할 것입니다.
아이디어/의견을 보내 주시면 감사하겠습니다.
Alfie.
항공권처럼 보입니다. 감사합니다. – jugglingcats