목록코딩이야기 (31)
번개멍
아래와 같은 API 유닛테스트 호출시 Data 값이 없이 나왔다... @GetMapping("/role/list") @ResponseBody public Callable getRoleList(@RequestParam Map paraMap) { System.out.println("paramap ::"+paraMap); return () -> roleManagementService.getRoleList(paraMap); } 검색및 질문결과 MockMvcResultHandlers.print() 로 찍었을때 Data 가 비어서 나타났다. 'Callable' 요 친구가 비동기 처리 방식이기때문에 위에 방식으로는 결과값을 알 수 없었다. 해당 값을 확인하기 위해 getAsyncResult() 비동기처리의 결과값을 ..
.Interceptor AOP를 적용한 Spring MVC의 요소입니다. Interceptor는 요청 주소에 대해 관심을 갖고 요청이 발생하게 되면 요청 주소를 확인하여 Controller의 메소드를 호출 하기 전이나 후에 다른 메소드를 호출 할 수 있도록 가로 채 가는 개념이다. 요청 발생시 호출되는 메소드의 코드가 중복 되는 부분이 있을때 Interceptor를 통해 처리하게 됩니다. 로그인 여부 확인, 등급별 서비스 사용 권한 확인 등의 작업을 처리할 때 많이 사용합니다. Interceptor는 Java 프로젝트와 XML 프로젝트의 셋팅 방법이 각각 다릅니다. Interceptor 구현 Interceptor는 HandlerInterceptor 인터페이스를 구현하거나 HandlerInterceptor..
.Execution 명시자 */ ---------------------------------------- - 메소드 원형 : 접근제한자, 반환값, 메소드명( int kor, int eng, int mat), 매개변수(전달인자) - 사용 목적 : Pointcut을 지정할 때 사용 - execution(접근제한자, 반환값(리턴타입), 클래스이름, 메소드명(매개변수(전달인자)) ) 1) 접근 제한자 : public만 지원합니다. 2) 리턴타입 : 메소드의 매개변수 타입 3) 클래스 이름 : 패키지를 포함한 클래스 이름 4) 메소드 이름 : 메소드의 이름 5) 매개변수 : 매개변수의 형태 - ** : 하나의 모든 덧을 이미한다. - .. : 개수에 상관없이 모든 것을 의미하다.
AspectJ Annotation - @AspectJ 어노테이션을 이용하여 Advisor 역할을 할 Bean을 설정할 수 있습니다. - 종류 2가지 존재 1)xml: 2) java : @EnableAspectJAutoProxy - spring은 동적 프락시를 기반으로 AOP를 구현하므로 메소드 조인포트만 지원합니다. 즉, 핵심기능(타깃)의 메소드가 호출되는 런타임 시점에만 부가기능(Advice)을 적용했습니다. - 그러나, AspectJ와 같이 고급 AOP프레임워크를 사용하면 객체의 생성, 필드의 값의 조작, 조회, static메소드 호출 및 초기화 등의 다양한 형태의 작업에 부가기능을 적용할 수 있습니다. - 지원되는 어노테이션의 종류 1)@Before : 관심사 동작 이전에 호출한다. 2)@After..
xml : 값을 주어야 합니다. Java : 파일에 대한 코드를 자유롭게 작성관리합니다. @Configuration : 현재 파일이 빈 등록을 위한 자바파일임을 알려줍니다. = Xml과 같은 역할 .@Bean(자바에서의 빈 등록) ------------------------------------------------------------------------------------------------------ - @Bean 어노테이션은 Bean 객체를 정의할 때 사용합니다. - 메소드의 이름은 bean의 이름이 됩니다. - @Bean(name=이름) : bean의 이름을 새롭게 정의합니다. - @Lazy : lazy-init 속성을 지정 - @Scope : bean의 scope 속성 지정 - @prim..
.자동 주입(AutoWire) ------------------------------------------------------------------------------------------------------------------------ - 기존에 생성자 주입, Setter 주입 등을 이용했었는데, 좀 더 편리하게 주입하기 위하여 사용합니다. - 자동 주입은 이름, 타임, 생성자를 통하여 할 수 있습니다. - 자동 주입은 객체 주소 값만 가능하므로 참조 변수를 제외한 나머지들은 직접 명시해 주어야 합니다. 즉 문자열, 정수형, 실수형 등 1) 이름을 이용하여 주입 방법 TestBean.java private DataBean1 data1; private DataBean1 data2; => 자동 수..