일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- HttpMessageConverters
- WebApplication Type
- EnableAutoConfiguration
- @Profile
- 백기선
- 정적 리소스
- Application Event
- webjar
- 스프링 부트
- 리소스 서버
- 브루트포스
- 백트래킹
- application.properties
- Application Argument
- 다익스트라
- @ConfigurationProperties
- 스프링부트
- JsonSerializer
- AuthenticationPrincipal
- Spring Security
- JPA
- 리소스핸들러
- cors
- 외부설정
- HATEOAS
- OAuth2
- 알고리즘
- rest api
- 백준
- Application Runner
- Today
- Total
목록분류 전체보기 (114)
아카이브
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..
spring-boot-maven-plugin을 통해 package를 수행하면 실행 가능한 .jar 파일 하나가 생성 된다 (패키징) Application을 deploy하거나 docker image로 만들때 jar로 패키징하여 jar파일을 실행하는 방법이 유용하기 때문에 사용한다 terminal을 통해 java -jar "filename" 입력하면 실행할 수 있다 수많은 class파일과 dependency들이 jar에 패키징되어있음 스프링부트는 내장 JAR로, 만들어진 JAR파일안에 여러 JAR파일들을 묶어놓고, 그 JAR파일들을 읽을 수 있는 파일들을 만들어놓았다. org.springframework.boot.loader.jar.JarFile을 이용하여, 내장 JAR 파일을 읽고, org.springfr..
HTTPS를 위한 key store를 만든 후, 위와 같이 application.properties에 설정한다 이렇게 하면, spring boot는 tomcat이 사용하는 기본 connector 하나만 등록된다. 하지만 이렇게 HTTPS를 적용하면, 이제 HTTP는 사용하지 못하는 상태이다. 왜냐하면 connector가 하나인데 http를 받을 수 있는 것이 없기 때문이다. 그래서 추가적인 http connector를 생성해줘야 한다
@SpringBootApplication는 사실 @SpringBootConfiguration + @ComponentScan + @EnableAutoConfiguration 3가지가 합쳐진 것이다. 빈은 2단계 과정을 거쳐 등록된다 먼저 1단계로 @ComponentScan (패키지 이하 @Component를 스캔하여 Bean으로 등록) (@Configuration, @Repository, @Service, @Controller, @RestController 등등) 다음2단계로 @EnableAutoConfiguration 으로 spring boot의 meta파일(spring.factories)을 통해, 미리 정의되어 있는 @Configuration 들을 Bean으로 등록한다 spring.factories ?..