Spring을 실무에서 사용하면서 정작 Spring의 처음과 기초를 알지 못하고 개발 및 운영하고 있는 스스로에게 한심함을 느껴 독학을 시작함.또한, 기록을 남기기 위해 velog를 시작함.
\- Xml에 객체화를 소스에 @Component로 객체화해줌Component쓸 때, xml에 scan 구문을 넣어줘야 component 스캔한다.
Method 호출 앞 뒤
Interceptor는 MethodInterceptor 인터페이스를 implements한다.invocation.proceed(); 가 주작업.ApplicationContext를 통해 AOP 설정한 Spring xml 객체화 loadproxy context를 호출하고자
객체생성부작업(advice) 세팅Proxy 생성
Implements : AfterReturningAdviceObject returnValue를 이용하여 리턴값을 사용할 수 있음. (After이기 때문)
Implements : ThrowsAdvice어떤 Except이 발생되지 모르니 명확한 인자가 없다필요한 Exception 유형만 지정하면 그 유형일때만 처리하도록 한다.참고 그림은 IllegalAgumentsException
Class : 설계도Object : 실체화가 가능한 것Instance : 실체화 된 것소스안에 있는 Object를 모두 읽어서 Heap 메모리에 저장시킨다.즉 Spring이 사용자 너가 불필요하게 생성해서 heap 잡지말고 내가 관리할게.그래서 "역전"의 제어이다.우리
IOC로 자동으로 생성된 Object들을 사용할 수 있다.가져다 쓰는걸 DI라 한다.즉 생성된 오브젝트는 딱 한번만 생성되는데 이걸 SingleTone 이라함.
권한체크 및 거르는것을 필터톰켓 : Filter (Web.xml)스프링 : 인터셉터 (AOP)
어노테이션 : 컴파일러가 확인한다.스프링에서는 어노테이션을 갖고 객체 생성함.@ Component : 클래스 메모리에 로딩@ Autowired : 선언한 변수에 IOC로 생성된 객체 집어 넣는다.Ex)@Component가 붙은 클래스는 IoC통하여 하여 Heap에 넣는
다른 Framework 혹은 이기종간 인터페이스할 때, 중간 Json(xml) 으로 변환해주는 기능 제공가변길이를 처리하는 Buffered를 쓴다.@ResponseBody : BufferedWriter 사용 (보낼때)@RequestBody : BufferedReader
DispatchServlet = FrontController + RequestDispatcherFrontController 는 Request의 참조할 자원으로 배분해준다.배분을 하기 위해서는 Heap 에 있어야 하므로 IOC를 통해 메모리에 올라가져있음 (Frontc
1) web.xml Load2) Servlet Container 생성3) ContextLoaderListenser Loadroot-context.xml (applicationContext.xml) 읽는다.여기서는 대부분 시스템 기동후 한번만 읽어도 되는 DBMS Con
1) Model어플리케이션의 데이터이며, 모든 데이터를 갖고 있는 컴포넌트이다.2) View시각적인 UI 요소를 지칭하는 용어이며, 클라이언트에서 직접 확인할 수 있는 부분이다.3) ControllerModel과 View를 연결해주는 역할을 한다.1) 클라이언트 ->
동일한 구조체를 여러곳에서 쓰일때 사용되는 방식구조체를 사용하는 해당 컨트롤러를 요청할 때 regions 에서 반환한 값이 자동으로 모델(model)에 담기게 된다.(따로 model에 add해주지 않아도된다.)물론 이렇게 사용하지 않고, 각각의 컨트롤러 메서드에서 모델
spring.messages.basename=messages예)기본(한국어) : massages.properties영어 : massages_en.properties추가로 나의 경우 한글로 테스트할때 ??로 떴다(IntelliJ)아래 인코딩 설정 후 정상으로 처리참고 :
Bean Validator : 인터페이스Hibernate Validator : 실제 구현체예)@ModelAttribute 각각의 필드에 타입 변환 시도1) 성공하면 다음으로2) 실패하면 typeMismatch 로 FieldError 추가Validator 적용바인딩에 성
모든 데이터 타입에 대해 null 허용하지 않음null과 ""을 허용하지 않음null과 ""와 " "(공백문자열)을 허용하지 않음@NotNull < @NotEmpty < @NotBlank
위 경우는 정상 로그인이 된다면 / 화면으로 돌아가는것여기서 required = false는 최초 로그인하지 않는 경우(쿠키값이 없는경우)도 있기 때문에 false로 한다.
웹과 관련된 공통 관심사를 처리할 때는 HTTP의 헤더나 URL의 정보들이 필요한데, 서블릿 필터나 스프링 인터셉터는 HttpServletRequest 를 흐름TTP 요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러 //로그인 사용자HTTP 요청 -> WAS ->
meta-annotation은 다른 annation 에서도 사용되는 annotation 의 경우를 말하며 custom-annotation 을 생성할 때 주로 사용된다.아래는 @Service의 인터페이스이며 Service를 위한 어노테이션이 사용되는데 이것이 메타 어노테
아래의 예는 간단한 로그인 후 홈화면으로 넘어갈때 회원정보 객체 Model을 Session에 담아 로그인 후처리 하는 부분을 ArgumentResolver @Login을 등록하여 객체를 반환하는 예제이다.public String home(@SessionAttribute
Filter와 Interceptor는 Servlet 단위에서 실행된다. 반면 AOP는 메소드 앞에서 Proxy 패턴으로 실행된다.필터를 웹 컨테이너 내에 생성한 후 초기화 시 init()이 호출된다. 그리고 doFilter가 호출된다.컨트롤러에 들어가기 전에 preHa
Spring 지원 기본 error template => /error/~\-> Override 해서 경로 수정 후 사용 가능.뷰템플릿 resources/templates/error/500.htmlresources/templates/error/5xx.html정적리소스(st
ResponseEntity설명 블로그 : https://devlog-wjdrbs96.tistory.com/182