일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java lambda
- DeferredImportSelector
- java sentry
- java
- intellij recode issue
- EnableWebMvc
- CompletableFuture
- Spring JPA
- java.util.list
- spring
- sentry environment
- 센트리
- elasticsearch
- ResponseBody
- cache sizes may be underestimated as a result
- map
- spanId
- Spring Boot
- software.aws.rds.jdbc.mysql.Driver
- kotlin
- spring MVC
- @FunctionalInterface
- HashMap
- java list
- traceId
- list
- SpringMVC
- jpa
- intellij issue
- java recode with intellij
- Today
- Total
목록스프링 (28)
du.study기록공간
이번엔 간단하게 SpringBootApplication 에 대하여 정리해보려 합니다. 먼저 Spring boot 프로젝트를 실행하면 다음과 같은 @SpringBootApplication이 생성되며, 내부는 다음과 같습니다. @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoC..
프로젝트에서 reousrce로 등록한 데이터를 @value를 통해서 데이터를 받아 사용하고 있습니다. 이 기능 덕분에 각 존별로 다른데이터를 코드의 분기처리없이 사용하고 있습니다. @Configuration public class Config { @Value("${test.value}") private String test; } 여기서 든 첫번째 궁금증.. 1. 어디서 예를 set해주는걸까? 우선 결론부터 작성하면 빈 생성과정에서 AutowiredAnnotationBeanPostProcessor 해당 프로세서를 보는 과정에서 postProcessProperties 메서드의 metadata.inject(bean, beanName, pvs); 호출을 통해 @Value가 inject가 됩니다. 좀 더 과정을 ..
요즘 중국서버 구축을 시작하는 단계에서 신규 프레임워크 관련 얘기가 나왔고, 별도의 톰켓 같은 것을 서버에 설치하고 싶지않아 내장 컨테이너 고려를 하는 도중, 기존에도 Spring을 사용하고 있었기에 Spring Boot를 테스트하게 되었습니다. 천천히 하나씩 작성하려하지만 이번에는 역시, 가장 기초부분인 생성부터 기록하려 합니다. 저의 경우 intellij로 설정중에 있습니다. 만약 본인이 Intellij 커뮤니티 버전을 사용하다면, 해당 사이트를 통해서 간단하게 SpringBoot 프로젝트 생성이 가능합니다. (intellij 유로버전이라면 인텔리제이 안에서 바로 생성할 수 있습니다.) https://start.spring.io/ 저는 web,maven을 사용할것이기에 다음과 같이 세팅 후, Gene..
스프링 웹 프레임워크를 사용하면서 헨들러 메서드를 사용할 때, 우리는 흔히 @Controller 또는 @RestController를 사용하고 있습니다. 스프링에서 @Controller, @RestController 를 살펴보면 아래와 같이 되어있습니다. @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Component public @interface Controller { @AliasFor( annotation = Component.class ) String value() default ""; } @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Docu..
신규 기능으로 엑셀 다운로드 기능을 개발하는 도중, CORS문제가 났던 문제를 기록해보려 합니다. 먼저 간략하게 구성도를 그려보면 브라우저(A.com)에서 B.com 으로 호출을 하고 B.com에선 nginx가 프록시 역할로 Excel 추출 서버로 토스해주는 구조로 서버를 구성했습니다. 서버들은 스프링,Undertow를 통해 구동시키고 있습니다. 첫번째 의문. 어째서 브라우저에서 POST로 호출을 했는데, OPTIONS로 변경이 되었는가. 요건 리서치를 통해서 빠르게 해결할 수 있었습니다. CORS요청의 경우, 브라우저는 요청을 preflighted request로 변경하여 서버로 보내게 되는데, 먼저 Method를 OPTIONS로 호출을 하여 먼저 서버의 승인을 받고난 후, 먼저 요청한 Method로 ..
이번에는 Spring Aop에 대해서 기록해보려 합니다. AOP(Aspect Oriented Programming)는 관점 지향 프로그래밍으로 불리며, 공통 기능, 그리고 메인 기능을 분리한 다음, 메인 기능 중에서, 필요한 부분에만 적용하여 사용하는 방법입니다. 실제로 저희가 코딩을 하다보면 로깅, 트렌젝션 등 공통적으로 적용해야 하는 부분이 있습니다. 이런부분을 AOP를 통해서, 각 클레스에서 별도의 선언을 하지않고 공통 코드를 통해서 관리가 가능합니다. 즉 공통부분은 Aspect(공통기능)로 묶어서 기능을 구현하고, 메인 비지니스로직(실제 서비스 로직)과 분리하여 재사용성을 높힐 수 있습니다. 먼저 코드를 통해 살펴보기전에, AOP 용어에 대해서 정리하고 넘어가겠습니다. Aspect : 공통기능이 ..
앞에 두개의 포스팅을 통하여 @ControllerAdvice,@ExceptionHandler를 통한 Exception 방법과 WebMvcConfigurer를 통하여 직접 등록한 Exception도 결국 같은 부분에서 Exception이 호출됩니다. DispatcherServlet 에서 processDispatchResult 안의 해당 부분을 통하여 Exception을 뱉어내게 됩니다. if (exception != null) { if (exception instanceof ModelAndViewDefiningException) { logger.debug("ModelAndViewDefiningException encountered", exception); mv = ((ModelAndViewDefiningE..
저번 Exeption처리 방법으로 AbstractHandlerExceptionResolver를 사용하는 방법으로 포스팅을 한 적이 있습니다. 관련 글 : https://duooo-story.tistory.com/15 이번에는 @ControllerAdvice, @ExceptionHandler 를 사용한 Exception방법에 대해서 기록하려 합니다. 먼저 @ControllerAdvice 는 전역 컨트롤러로 불러며, 컨트롤러 공통적으로 사용할 것이 있을때, 해당 어노테이션을 사용할 수 있습니다. 예를 들면 다음과 같은 상황에서 사용할 수 있습니다. 1. Exception 처리 2. @InitBinder를 이용한 설정세팅 ( 이전 포스팅에서 언급한 적이 있지만, 너무 다양한 기능을 지원해주기에 추후에 포스팅으..
각각의 컨트롤러에서 Exeption 개별적으로 처리한다는 건 중복되는 코드도 많아질뿐더러 관리하기가 상당히 까다로운것 같아 Exception을 처리하는 방법에 대해 고민 및 조사를 했었습니다. 그래서 이번에는 Exeption에 대해서 공통으로 처리하는 방법 두가지에 대해서 기록하려 합니다. 1. AbstractHandlerExceptionResolver 를 사용하는방법 2. @ControllerAdvice, @ExceptionHandler를 이용하는 방법 먼저 AbstractHandlerExceptionResolver 를 이용하는 방법에 대해서 기록하겠습니다. 우선 AbstractHandlerExceptionResolver를 extends받는 클래스를 생성 후, 이 클레스를 implements WebMv..