spring boot 에서 @ component 의 주석 사용 사례

4494 단어 springboot
응답 헤더 의 내용 을 설정 합 니 다.
방식 1: 차단기 에 응답 헤드 내용 을 직접 설정 합 니 다.
/**
 *    --      。
 */
public class RestInterceptor implements HandlerInterceptor {
	
	private static final Logger log = LoggerFactory.getLogger(RestInterceptor.class);
	private static final String tokenHeader = "Authorization";

	/** 
         *     :true      (             );false      (       ),                ,        response     ; 
	 */
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		log.info("    ");
		//   
		response.setHeader("Access-Control-Allow-Origin", "*");
		response.setHeader("Access-Control-Allow-Headers", "x-requested-with,content-type,authorization");
		response.setHeader("Access-Control-Allow-Methods", "POST,GET,OPTIONS");
		
		if(request.getMethod().equals("OPTIONS")){
			response.setStatus(204);
			return true;
		}		
		log.info("    :method=" +request.getParameter("method")+",params="+JSON.toJSONString(request.getParameterMap()));
		
//		HandlerMethod handlerMethod = (HandlerMethod)handler;
//		RequestAuth requestAuth = handlerMethod.getMethodAnnotation(RequestAuth.class);
//		if(requestAuth!=null && requestAuth.auth()==false){ //   API 
//			return true;//    
//		}
		//  
//		String token = request.getHeader(tokenHeader);
//		if(token == null || token.equals("")) {
//			log.info("    token");
//			throw new BusinessException(ResMsg.CODE_TOKEN_NOTFOUND, "    token");
//		} else {
//			JWSObject jwsObject = JWSObject.parse(token);
//			Payload payload = jwsObject.getPayload();
//			JSONObject obj = payload.toJSONObject();
			
//			String roleNames = String.valueOf(obj.get("roleNames"));
//			Authentication auth = new Authentication();
//			if(obj.containsKey("platformId")) {
//				Long platformId = Long.valueOf(String.valueOf(obj.get("platformId")));
//				auth.setPlatformId(platformId);
//			}
//			if(obj.containsKey("userid")) {
//				Long userId = Long.valueOf(String.valueOf(obj.get("userid")));
//				auth.setUserId(userId);
//			}
//			if(obj.containsKey("orgId")) {
//				Long orgId = Long.valueOf(String.valueOf(obj.get("orgId")));
//				auth.setOrgId(orgId);
//			}
//			if(obj.containsKey("orgid")) {//         
//				String orgid = String.valueOf(obj.get("orgid"));
//				orgid = orgid.replace(",", "");
//				Long orgId = Long.valueOf(orgid);
//				auth.setOrgId(orgId);
//			}
//			auth.setRoleNames(roleNames);
//			SecurityContext.setContext(auth);
//			JwtUtil.verify(jwsObject);
//		}
		return true;
	}

	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		//log.info("   ");
	}

	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		if(ex != null) {
			log.error("      :"+ex);
			throw ex;
		}
	}
}

방식 2: @ component 주 해 를 사용 하여 일반 자바 빈 을 spring 용기 에 예화 합 니 다.
public class RestInterceptor implements HandlerInterceptor {
	
	private static final Logger log = LoggerFactory.getLogger(RestInterceptor.class);
	private static final String tokenHeader = "Authorization";

	/** 
         *    :true      (             );false      (       ),                ,        response     ; 
	 */
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		log.info("    ");
		  
		if(request.getMethod().equals("OPTIONS")){
			response.setStatus(204);
			return true;
		}		
		log.info("    :method=" +request.getParameter("method")+",params="+JSON.toJSONString(request.getParameterMap()));
		 
		return true;
	}

	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		//log.info("   ");
	}

	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		if(ex != null) {
			log.error("      :"+ex);
			throw ex;
		}
	}
}

Simple CORSFilter. java 클래스 를 정의 하고 @ component 주 해 를 사용 합 니 다.
4. 567913. 두 가지 방식 으로 모두 응답 을 완성 할 수 있다.

좋은 웹페이지 즐겨찾기