Я написал простую пользовательскую аннотацию, чтобы установить HttpHeaders на ResponseEntity из-за дублирования кода везде.
Интерфейс аннотаций и класс.
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface JsonHeader {}
@Component
@Aspect
public class JsonHeaderAspect {
private final Log logger = LogFactory.getLog(getClass());
@Around(value = "@annotation(JsonHeader)")
public Object aroundServiceResponse(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", MediaType.APPLICATION_JSON_VALUE);
return proceedingJoinPoint.proceed(new Object[] {headers});
}
}
Класс RestController
@RestController
@RequestMapping(path = "/login")
public class LoginRestController {
private final Log logger = LogFactory.getLog(getClass());
@Autowired
LoginServiceImpl loginService;
@JsonHeader
@RequestMapping(value = "/user",consumes = MediaType.APPLICATION_JSON_VALUE,produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ResponseBean> postCheckUser(@RequestBody LoginBean loginBean) {
ResponseBean responseBean = loginService.checkUser(loginBean);
return new ResponseEntity<ResponseBean>(responseBean,headers, HttpStatus.OK);
}
}
Теперь я хочу получить аннотацию возвращаемого значения HttpHeaders для класса контроллера покоя.
Isлюбой может описать, почему это произошло и как решить эту проблему, это будет очень полезно.Заранее спасибо