Spring (31) 썸네일형 리스트형 Spring RestTemplate RestTemplate란? Spring 3.0 부터 지원, 스프링이 제공하는 HTTP 통신에 유용하게 사용 할 수 있는 템플릿이며, HTTP 서버와의 통신을 단순화하고 RESTful 원칙을 지키고 있다. RestTemplate는 Spring에서 제공하고 있는 JdbcTemplate같은 Template로, RESTful Service 호출과 응답에 관련된 여러 메소드를 제공하고, REST 클라이언트를 쉽게 개발할 수 있도록 만들어진 Template이다. 기계적이고 반복적인 코드를 최대한 줄여줌 - url이랑 response 받을 Class나 Object 설정 등 RESTful 형식에 맞춤 json, xml을 쉽게 응답 받음 RestTemplate에서 제공하는 getForObject() 메소드를 사용하면 서.. RESTful API REST란? Representational State Transfer 자원(데이터)을 이름으로(key:value) 구분하여 해당 자원(데이터)의 상태(정보)를 주고 받는 모든 것 자원: Resource 소프트웨어에서 관리하는 모든 것 자원의 표혀니 자원을 표현하기 위한 이름 상태(정보) 전달 데이터가 요청되어지는 시점에서 자원의 상태(정보)를 전달한다. JSON 혹은 XML을 통해 데이터를 주고 받는다. HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Opertation을 적용하는 것 REST API란? API(Application Program.. JUnit 5 테스팅 프레임워크 - 단위 테스트 작성을 위함, Java 8 이상 @Test 테스트 단위의 메서드 구성 @BeforeAll / @AfterAll 여러 테스트가 모두(전부) 실행 될 때, 실행 전에 & 후에 한 번만 사용 됨 static void 메소드여야 함 @BeforeEach / @AfterEach 모든 테스트가 하나 하나 실행하기 이전과 이후에 실행 됨 static일 필요 없음 @Disabled 실행되지 않아야 할 메소드 assertEquals(extends value, actual value, message) message는 Supplier로 사용해서 람다 식으로 표현하는 것이 좋다. assertAll() 위와 같이 람다 식으로 묶어서 실행할 수 있다. 리플렉션 API: 클래스 정보 조회 https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html Class (Java Platform SE 8 ) Determines if the specified Class object represents a primitive type. There are nine predefined Class objects to represent the eight primitive types and void. These are created by the Java Virtual Machine, and have the same names as the primitive types tha docs.oracle.com Class Class java.lang.Object java... 서블릿 리스너와 필터 서블릿 리스너 서블릿 컨테이너에서 발생하는 이벤트, 웹 애플리케이션에서 발생하는 주요 이벤트를 감지하고 각 이벤트에 특별한 작업이 필요한 경우에 사용할 수 있다. -> 어떠한 이벤트에 해당하는 코드를 실행해줘야 할 경우 서블릿 컨텍스트 수준의 이벤트 컨텍스트 라이프사이클 이벤트 컨텍스트 애트리뷰트 변경 이벤트 세션 수준의 이벤트 세션 라이프사이클 이벤트 세션 애트리뷰트 변경 이벤트 서블릿 컨테이너가 구동 될 때, 데이터베이스 커넥션을 맺어 놓고, 데이터베이스 커넥션을 이 서블릿 애플리케이션에서 만든 여러 가지 서블릿 한테 제공해줄 수 있음. 이 서블릿들은 서블릿 컨텍스트에 들어 있는 애트리뷰트에 접근 가능하다. 그래서 서블릿 애트리뷰트에 들어 있는 데이터베이스 커넥션을 꺼내서 사용이 가능하다. 그리고 서.. Spring AOP 개념 Aspect-oriented Programming (AOP)은 OOP를 보완하는 수단으로, 흩어진 Aspect를 모듈화 할 수 있는 프로그래밍 기법 스프링 AOP 구현체를 제공하며, 자바에 만들어진 AOP Framework(Aspect J)을 사용할 수 있음. 이 기능을 기반으로 Spring Transaction을 사용할 수 있음. 흩어진 관심사 (Crosscutting Concerns): 여러 클래스, 여러 메서드에 걸쳐 나타나는 코드나 필드 혹은 메서드 등... AOP를 적용할 경우... 위와 같이 해야 할 일 들을 Aspect로 모듈화 한 것이다. -> Concern 들의 모듈화 AOP 주요 개념 Aspect : 모듈 Target : Aspect가 가지고 있는 Advice가 적용 되는 대상들 Adv.. IoC 컨테이너: MessageSource 국제화 (i18n) 기능을 제공하는 인터페이스 - 메세지 다국화 기능 ApplicationContext extends MessageSource getMessage messages.properties messages_ko_KR.properties Spring Boot에서는 messages로 시작하는 properties들을 모두 읽어 옵니다. -> ResourceBundleMessageSource setCacheSeconds(3): Cache를 3초만 유지 해주고 재정의 -> Reloadable 함 Build를 해주면 메세지 내용이 새롭게 반영 됨 Environment - 프로퍼티 애플리케이션에 등록 되어 있는 key, value 쌍의 프로퍼티에 접근하는 방법. 계층형 접근 - 우선 순위 존재 OS 환경 변수 , JAVA 애플리케이션 -D 옵션 변수 등... VM Options - JVM 시스템 프로퍼티(-Dkey="value") 예시) -Dapp.name=spring5 environment.getProperty("app.name"); Properties app.properties 파일 생성 app.about=spring 작성 @Configuration 클래스에 @PropertySource("classpath:/app.properties")를 작성해서 사용 Spring Boot @Value 이전 1 2 3 4 다음