일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- @ConfigurationProperties
- @Profile
- JPA
- HttpMessageConverters
- Spring Security
- 백트래킹
- 정적 리소스
- webjar
- application.properties
- Application Argument
- 백기선
- 백준
- cors
- Application Runner
- 외부설정
- 알고리즘
- 리소스핸들러
- JsonSerializer
- 리소스 서버
- EnableAutoConfiguration
- Application Event
- WebApplication Type
- rest api
- 스프링 부트
- 스프링부트
- HATEOAS
- AuthenticationPrincipal
- 브루트포스
- OAuth2
- 다익스트라
- Today
- Total
목록Spring/스프링 부트 개념과 활용 (13)
아카이브
CORS (Cross-Origin-Resource-Sharing) : 교차 출처 리소스 공유 서로 다른 Origin끼리 리소스를 공유할 수 있는 것 SOP(Single-Origin Policy: 같은 Origin끼리만) 우회하기 위한 표준 기술 스키마 / 호스트 / 포트 - 3가지의 조합이 Origin이다 ex) http / hostname / 8080 CORS 허용의 경우 http / hostname / 8080 에서 http / hostname/ 18080 으로 요청을 보내면 리소스를 받을 수 있다 구현 - @CrossOrigin(origins = "허용주소:포트") 구현 - WebMvcConfigurer
Hypermedia As The Engine Of Application state 링크에 사용 가능한 URL을 리소스로 전달하여 client가 참고하여 사용할 수 있도록 하는 것 REST API를 만들때, 서버가 리소스를 제공하며 연관된 링크 정보들까지 함께 제공하고 클라이언트는 제공된 연관 정보를 바탕으로 재접근 하기 위한 것 참조문서:https://spring.io/guides/gs/rest-hateoas/ org.springframework.boot spring-boot-starter-hateoas pom.xml 의존성 추가 slicing test를 통해 GET /hateoas를 보내면 handler에서 Reflection을 통해 SampleController.class의 hateoas() meth..
기본 error handler인 BasicErrorController가 존재하는데, 별도의 custom handler도 구성할 수 있다 @ExceptionHandler(SampleException.class) - RuntimeException을 상속한 SampleException이 발생하면 해당 method를 실행한다 Global using을 위해 @ControllerAdvice controller를 만들고, 이 안에 @ExceptionHandler를 구성하면 모든 controller에서 사용할 수 있다
webjar ? 클라이언트에서 사용하는 웹라이브러리(jquery 와 bootstrap) 를 JAR 파일 안에 패키징하는 것 org.webjars.bower jquery 3.5.1 pom.xml 의존성 추가 (artifactId에 jquery, react, vue 등이 들어간다) 만약 버전관리도 생략하고 싶다면? org.webjars webjars-locator-core 0.46 버전을 명시하지 않고 사용할 수 있다
● 기본 리소스 위치 (resources 부터 classpath) ○ classpath:/static ○ classpath:/public ○ classpath:/resources/ ○ classpath:/META-INF/resources ○ 예) “/hello.html” => /static/hello.html custom ResourceHandler 추가하는 법 /m 요청으로 들어올 경우, resource를 classpath:/m/ 에서 찾는다 캐싱전략도 따로 필요하다
ContentNegotiatingViewResolver viewResolver 중의 하나로, accept header에 따라 해당 타입에 맞는 viewResolver에게 위임해주는 viewResolver이다
HttpMessageConverters HTTP 요청 본문과 Object의 변환을 담당하는 Spring MVC의 일부분이다 JSON 요청으로 들어온 경우, JsonHttpMessageConverter에 의해 JSON -> User Object로 변환되어 들어온다 이때 controller에서는 @RequestBody를 통해 spring에게 conversion을 명시한다 return할때 User Object를 반환하는데, 이때도 JsonHttpMessageConverter를 통해 JSON으로 response에 실어 보낸다 String, int 등의 primitive type을 return할 경우에는 StringMessageConverter를 통해 실어 보낸다
@Profile을 통해 프로파일 상태에 따라 Bean 설정을 다르게 할 수 있다 application-{profile}.propertis : 프로파일용 프로퍼티 (기본 프로퍼티보다 우선순위가 높다) spring.profiles.active : 어떤 프로파일을 활성화 할 것인가? ## Profile spring.profiles.active=prod BaseConfiguration 은 active = prod 일때만 사용된다 profile properties가 기본 properties보다 우선순위가 높아서 [PROD] NAME 이 출력되었다
1. 외부설정1 - Application.properties properties 우선순위 1. 유저 홈 디렉토리에 있는 spring-boot-dev-tools.properties 2. 테스트에 있는 @TestPropertySource 3. @SpringBootTest 애노테이션의 properties 애트리뷰트 4. 커맨드 라인 아규먼트 5. SPRING_APPLICATION_JSON (환경 변수 또는 시스템 프로티) 에 들어있는 프로퍼티 6. ServletConfig 파라미터 7. ServletContext 파라미터 8. java:comp/env JNDI 애트리뷰트 9. System.getProperties() 자바 시스템 프로퍼티 10. OS 환경 변수 11. RandomValuePropertySour..
1. Application Event Listener ApplicationListener - Application 라이프사이클 시점에 따라 Event Listener를 등록할 수 있다 interface ApplicationListener를 implements Listener가 Bean이라면, 등록되어 있는 Bean 중에 이벤트 리스너를 자동으로 실행된다 하지만 ApplicationStartingEvent의 경우 Bean으로 등록하더라도, Application context가 load되기 전이기 때문에 리스너가 동작하지 않는다 따라서 이런 경우에는 직접 등록해줘야 한다 2. Type Type은 3가지로 구성되어 있다 (none, servlet, reactive) Spring MVC가 존재하면 Servlet..