WebMvcConfigurer 설정@Configurationpublic class WebMvcConfigure implements WebMvcConfigurer{}
HandlerMethodResolver 구현
스프링 다국어처리를 이용하려면 controller를 통해서 해당 페이지로 이동하게 해야 한다.servlet-context.xml에서 다국어 처리부분을 기술ResourceBundleMessageSource 부분이 바로 위에서 저장된 messages 파일들을 읽어오는 부분
화면단에서는 파일처리를 위해 form 태그내에 enctype 및 전송 방식 설정HTML form 태그의 enctype 속성을 "multipart/form-data"로 설정 method 속성을 "post"로 설정ex)파일업로드에 필요한 jar 라이브러리를 추가일반 웹 프
스프링은 자바 기반의 프레임워크이고 자바는 객체 지향 언어이다.프레임 워크는 어떠한 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조이며 소프트웨어 개발에 있어 하나의 뼈대 역할을 한다.프레임워크는 클래스와 라이브러리가 합쳐진 형태라고 볼 수 있다.메소
HTTP 세션 관련 기능은 SessionManagementFilter와, 이 필터가 위임하는 SessionAuthenticationStrategy 인터페이스가 처리한다.전형적으로 session-fixation 공격을 방어하고, 세션 타임아웃을 감지하고, 인증된 사용자가
UsernamePasswordAuthenticationFilter는 Spring Security에서 formLogin을 할 때 사용할 수 있는 Filter 입니다.UsernamePasswordAuthenticationFilter 핵심 내용UsernamePasswordA
PUT, PATCH, DELETE 방식의 메소드를 지원하지 않는 브라우저가 있을 때 이를 위해 스프링 진영에서 HiddenHttpMethodFilter라는 것을 제공한다.HiddenHttpMethodFilter는 HiddenMethod(지원이 안되는 메소드명을 \_me
요청의 전체 처리를 위해 JPA EntityManager를 스레드에 바인딩하는 서블릿 필터. "Open EntityManager in View" 패턴, 즉 원래 트랜잭션이 이미 완료되었음에도 불구하고 웹 보기에서 지연 로드를 허용하기 위한 것입니다.JPA를 사용하다보면
WAS에서 톰캣이 올라가서 WAS에서 실행되는 필터이다.요청을 받아서 Servlet에 전달하고, Servlet에서 응답을 받아서 클라언트에 전달하는 역할을 수행한다.Servlet Container에서 생성되고 실행이 된다.Servlet Filter는 스프링에서 정의된
Web.xml의 Root WebApplicationContext 와 WebApplicationContextContextLoaderListener에 의해 만들어지는 Root WebApplicationContextDispatcherServlet에 의해 만들어지는 WebAp
ClassPathXmlApplicationContext는 XML을 인식하고 beans로 관리하여 load 할 수 있다.ex)classPath경로에 applicationcontext.xml이 위치되어 있으며 아래 코드가 삽입되어 있다.ClassPathXmlApplicat
SQL Map XML 파일은 첫번째(first class)엘리먼트만을 가진다.cache: 해당 네임스페이스를 위한 캐시 설정cache-ref: 다른 네임스페이스의 캐시 설정에 대한 참조resultMap: 데이터베이스 결과데이터를 객체에 로드하는 방법을 정의하는 엘리먼트
Property DefaultsAutomatic RestartLive ReloadGlobal SettingsRemote ApplicationsSpring에서 제공하는 thymeleaf는 기본적으로 캐싱 기능을 사용합니다. 하지만 개발과정에서 캐싱이 되어있다면 우리가 t
위치: resource 하위의 application.yml위치: classpath 위치에 schema-postgresql.sql, data-postgresql.sql 파일 생성SQL 파일 위치
\---을 이용하면 .yml파일을 구분할 수 있게됩니다.
1. @Controller(Spring MVC Controller) [Controller - View] 전통적인 Spring MVC의 컨트롤러인 @Controller는 주로 View를 반환하기 위해 사용합니다. 아래와 같은 과정을 통해 Spring MVC Contr
@ConfigurationProperties를 사용하기 위한 의존성이다.클래스에 @ConfigurationProperties를 지정하게 되면 application.yml 파일의 값을 읽어와서 멤버변수에 자동으로 할당한다.이 때 application.yml의 key와 일
개발자가 직접 작성한 클래스를 Bean으로 등록하고자 할 경우 사용@Controller, @Service, @Repository 등의 어노테이션에서 상속외부라이브러리 또는 내장 클래스를 Bean으로 등록하고자 할 경우 사용(개발자가 직접 제어가 불가능한 클래스)1개 이
Spring Framework를 이용해서 엔터프라이즈 애플리케이션을 보다 쉽게 만들 수 있다. (DI, AOP 등..)\-> 개발자들이 애플리케이션을 조금 더 쉽게 구현할 수 있도록 도와주는 것해결하고자 하는것a) Dependency Injection(DI) - 의존성
@Autowired 어노테이션은 각 상황의 타입에 맞는 IoC컨테이너 안에 존재하는 Bean을 자동으로 주입해주게 됩니다.setter 메소드에서도 @Autowired 어노테이션을 부여하여 사용할 수 있습니다. 위의 그림은 실제 @Autowired 어노테이션 인터페이스입
Repository는 한 테이블의 값들을 저장하고 검색할 수 있는 특정 객체이다.DAO는 여러 테이블에 대한 값들을 저장하고 검색할 수 있는 클래스이다.Repository는 한 테이블, DAO는 여러 테이블에 대한 데이터를 다룬다는 차이가 있다.
위 코드는 스프링 프로필이 test일 시 , @Bean 어노테이션이 붙은 bookRepository 빈이 컨테이너에 등록이 된다는 것을 뜻한다.그 다음 JVM의 옵션에 해당 프로파일을 지정하는 옵션을 설정한다.\-Dspring.profiles.active="test"참
엔티티 클래스를 스캔할 곳을 지정하는데 사용합니다.메인 어플리케이션 패키지 내에 엔티티 클래스가 없는 경우 이 어노테이션을 사용해서 패키지밖에 존재하는 엔티티를 지정할 수 있습니다.기본적으로 @EnableAutoConfiguration 어노테이션에 의해서 지정한 곳에서
수식어: public, private 등 수식어를 명시합니다. (생략 가능)리턴타입: 리턴 타입을 명시합니다.클래스이름 및 이름: 클래스이름과 메서드 이름을 명시합니다. (클래스 이름은 풀 패키지명으로 명시해야합니다. 생량가능)파라미터: 메서드의 파라미터를 명시합니다.
@Aspect Annotation의 경우 해당 Class가 횡단관심사(부가기능) Class임을 알려주는 Annotation입니다.@Aspect Annotation이 부여되었다고 해서 자동으로 Bean으로 등록되는것이 아니므로 따로 Bean으로 등록을 해주는 작업이 필요
속성 파일(ex: application.yml)에 정의된 값을 사용할 수 있는 어노테이션application.yml에 정의한 value.from.file 값을 valueFromFile 변수에 할당만약 value.from.file 값이 정의되어 있지 않다면 some de
Filter 등록을 위한 AnnotationServlet 3.0 이상 사용 가능톰캣 7이상에서 사용 가능1) Annotation 맵핑 URL을 입력하는 방법@WebFilter("/target")2) Annotation 와일드카드 사용하는 방법@WebFilter("/\*
클라이언트가 호출한 메소드의 시그니처 (리턴타입, 이름, 매개변수) 정보가 저장된 Signature 객체를 리턴클라이언트가 호출한 비즈니스 메소드를 포함하는 비즈니스 객체를 리턴(해당 클래스 객체를 리턴)클라이언트가 메소드를 호출할 때 넘겨준 인자 목록을 Object
클라이언트가 호출한 메소드의 시그니처 (리턴타입, 이름, 매개변수) 정보가 저장된 Signature 객체를 리턴클라이언트가 호출한 비즈니스 메소드를 포함하는 비즈니스 객체를 리턴(해당 클래스 객체를 리턴)클라이언트가 메소드를 호출할 때 넘겨준 인자 목록을 Object
@ModelAttribute 선언 후 자동으로 진행되는 작업1\. @ModelAttribute 어노테이션이 붙은 객체를 자동으로 생성한다.이 때 @ModelAttribute가 지정되는 클래스는 빈 클래스여야 한다.그리고 getter와 setter가 명명 규칙에 맞게 만
실제 객체와 비슷하지만 테스트에 필요한 기능만 가지는 가짜 객체를 만들어서 애플리케이션 서버에 배포하지 않고도 스프링 MVC 동작을 재현할 수 있는 클래스를 의미합니다.Junit4를 사용하기 위해 의존성에 spring-boot-starter-test를 추가해줍니다.bu
spring 3.0부터 지원기계적이고 반복적인 코드를 최대한 줄여줌Restful 형식에 맞춤json, xml 를 쉽게 응답 받을 수 있음jdk 1.2부터 내장되어 있으며 java.net 패키지에 있다. URL의 내용을 읽어오거나 URL 주소에 GET, POST로 데이터
필드 주입과 수정자 주입은 의존성이 있는 객체가 생성되지 않아도 이를 포함하고 있는 객체가 생성 가능(컴파일시 오류가 발생하지 않음)하여 이를 민지 인지하지 못하다가 런타임시에 오류가 발생하여 위험하다!이에 반해 생성자 주입은 생성자에서 의존관계 주입이 일어나기 때문에
캐시는 서버의 부담을 줄이고 성능을 높이기 위해 사용되는 기술이다. 예를 들면 어떤 요청을 처리하는데 계산이 복잡하거나 혹은 DB에서 조회하는게 오래 걸리는 등에 적용하여 결과를 저장해두고 가져옴으로써 빠르게 처리할 수 있다.캐시는 값을 저장해두고 불러오기 때문에 반복
MapStruct는 Entity와 DTO 간에 변환할 때 자동으로 변환되도록 도와주는 라이브러리입니다.매핑해줄 클래스에는 setter가 있어야 하고 매핑이 되는 클래스에는 getter가 있어야 사용 가능합니다. (Users Entity -> UserDTO로 변경시 en
어노테이션 기반으로 작성되며 Bean으로 등록할 수 있어 여러 프레임워크의 DI를 활용하여 사용할 수도 있다.타입 세이프하게 객체의 타입 변환 시에 데이터 매핑을 도와주는 어노테이션 프로세서서버 어플리케이션을 개발할 때 작업하는 DTO 변환 작업은 대부분이 반복적인 작
행위자가 취한 행위 자체가 또는 그 행위로 인해 다른 무엇이 막혀버린, 제한된, 대기하는 상태.호출된 함수가 자신이 할 일을 모두 마칠 때까지 제어권을 계속 가지고서 호출한 함수에게 바로 돌려주지 않으면 Block호출된 함수가 자신이 할 일을 채 마치지 않았더라도 바로