У меня есть некоторый код, где один параметр (печенье) может быть передан любой из путей, и я хочу, чтобы справиться с этим таким же образом:Выполнить метод ресурсов перед каждым запросом
@Path("/some/path")
public class JaxRsService {
public void doStuff(@CookieParam("cookie") Cookie cookie) {
handleCookie(cookie);
// etc.
}
public void doStuff2(@CookieParam("cookie") Cookie cookie) {
handleCookie(cookie);
// etc.
}
public void doStuff3(@CookieParam("cookie") Cookie cookie) {
handleCookie(cookie);
// etc.
}
}
Есть ли способ чтобы повлиять на это из каждого метода? Я попытался создать сеттер, но сеттера только дозвонились во время строительства, так что печенье не доступно ..
@Path("/some/path")
public class JaxRsService {
// This never gets called
@CookieParam("cookie")
public void setCookie(Cookie cookie) {
cookie // stuff
}
// etc.
}
Точно так же, есть @PostContruct
аннотацию, но она работает только на время конструкта.
Добавление куки, как переменная класса работает отлично, но я все равно придется вызывать метод в каждом запросе:
@Path("/some/path")
public class JaxRsService {
// This never gets called
@CookieParam("cookie")
Cookie cookie;
public void doStuff() {
handleCookie();
// etc.
}
public void doStuff2() {
handleCookie();
// etc.
}
public void doStuff3() {
handleCookie();
// etc.
}
}
Есть ли хороший способ справиться с этим?
Является ли это ресурс верхнего уровня или суб-ресурс? –
@ DonalFellows - это ресурс верхнего уровня. Думаю, я мог бы использовать локатор subresource и некоторую магию. –