Spring
-
[RESTFUL 학습] SWAGGERSPRING/WEBSERVICE 2020. 8. 23. 22:50
Swagger를 적용함으로써 API를 빠르게 문서화하고 명세할 수 있다. /swagger-ui.html Swagger를 적용 후 위와 같은 URL에 접속하면, 아래 스크린샷과 같이 생성된 API 문서를 볼 수 있다. Swagger를 사용하는 방법은 아래와 같다. 우선 pom.xml에 swagger 라이브러리를 등록한다. io.springfox springfox-swagger2 2.9.2 io.springfox springfox-swagger-ui 2.9.2 그리고 아래와 같이 Configuration(설정파일)을 생성하고 아래와 같이 작성한다. 아래 discover 메서드는 Swagger와 Hateoas를 동시에 적용했을 때 에러가 발생하기 때문에 넣은 소스이다. Haeoas와 Swagger를 동시에 적..
-
Expression Language : SPEL 관련 정리SPRING 2020. 4. 30. 00:36
스프링 EL이란? - 스프링 객체들의 정보를 질의하거나 조작하여 어떤 값을 표현할 수 있는 언어이다. - 객체 그래프를 조회하고 조작하는 기능을 제공한다. - Unified EL과 비슷하지만, 메소드 호출을 지원하며, 문자열 템플릿 기능도 제공한다. - OGNL, MVEL, JBOss EL 등 자바에서 사용할 수 있는 여러 EL이 있지만, SpEL은 모든 스프링 프로젝트 전반에 걸쳐 사용할 EL로 만들었다. - 스프링 3.0 부터 지원. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 @Component..
-
Spring Converter / Formatter를 이용한 데이터 바인딩SPRING 2020. 4. 26. 14:09
Converter와 Formatter PropertyEditor는 스프링 초기(3.0이전)에 사용되었던 데이터 바인딩 인터페이스 였으나, 현재는 Converter와 Formatte라는 데이터 바인딩 인터페이스를 주로 사용하고 있다. Converter는 S타입을 T 타입으로 변환할 수 있는 일반적인 변환기이며 Thread-safe하다. Formatter는 Object와 String간의 변환을 담당하며 역시 Thread-safe하다. 또한 문자열을 Locale에 따라 다국화하는 기능을 제공한다. (Optional) Converter / Formatter 구현 및 테스트 Event VO 생성 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ..
-
ResourceLoader 관련 정리SPRING 2020. 4. 19. 20:43
ResourceLoader는 리소스를 읽어오는 기능을 제공하는 인터페이스다. ApplicationContext가 ResourceLoader를 상속받은 상태이기 때문에 ApplicationContext를 통해서 ResourceLoader 기능을 사용하는 것이 가능하다. ApplicationRunner에서 아래와 같이 실행을 하면 resource의 존재여부, 루트등을 출력할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 @Autowired ResourceLoader resourceLoader; @Override public void run(ApplicationArguments args) throws Exception { // TODO Auto-generated method stub Reso..
-
스프링 프로파일 (Profile)SPRING 2020. 4. 14. 00:37
프로파일 - 빈들의 그룹 - Environment의 역할은 활성화할 프로파일 확인 및 설정 프로파일 USECASE - 테스트 환경에서는 A라는 빈을 사용하고, 운영서버에서는 B라는 빈을 사용하고 싶다. 프로파일 정의하기 - 클래스에 정의 @Configuration @Profile("test") @Conponent @Profile("test") - 메소드에 정의 @Bean @Profile("test") 아래와 같이 @Repository 어노테이션을 붙이지 않으면 ComponentScan에서 스캔을 통해 Bean 객체 등록이 되지 않는다. 1 2 3 4 5 6 7 8 9 10 11 12 package com.example.demo; import org.springframework.stereotype.Repo..