| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Jndi DataSource
- Java Singleton
- Sub Bytes
- 바이트 절삭
- Srping MVC
- requestheaderdto
- 상호 인증
- WildFly
- Request Body 여러 번 사용
- Socket is closed
- graphql
- Checked Exception
- 개방 폐쇄 원칙
- 데이터 압축
- NoUniqueBeanDefinitionException
- tomcat jndi
- Unchecked Exception
- Graphql Client
- 이중정렬
- try - with - resources
- Java Rest
- java
- HandlerMethodArgumentResolver
- Java Graphql
- mTLS
- AfterMapping
- Reading HttpServletRequest Multiple Times
- Open Close Principal
- mapstruct
- Tomcat DBCP
- Today
- Total
목록Spring (7)
Developer Sang Guy
요새 RequestHeader에 로직 처리시 필요한 정보를 전달해주는 케이스가 자주 보여 HandlerMethodArgumentResolver를 활용하여 Header를 Dto로 바인딩하여 처리하는 코드를 사용하게 되었다. 헤더 정보를 바인딩할 Request Header Dto 객체import lombok.Builder;import lombok.Getter;import lombok.ToString;@Builder@Getter@ToStringpublic class RequestHeader { private String id; private boolean isMobile;} Handler에 매개 변수로 Request Header Dto를 사용하기 위해 Resolver 구현import org.springfra..
HttpServletRequest는 본문을 읽기 위해 getInputStream() 메서드를 노출하는 인터페이스입니다. 기본적으로 InputStream의 데이터는 한 번만 읽을 수 있습니다 . https://www.baeldung.com/spring-reading-httpservletrequest-multiple-times Spring을 사용하여 여러 Handler를 개발하였을 경우 보통 Interceptor나 Filter를 사용하여 공통적으로 수행하는 요청 로그 출력 같은 처리를 진행한다. 그런데 막상 Interceptor 또는 Filter로 요청 본문을 읽어들여 로깅 처리를 한 다음 Controller에서 다시 한번 요청 본문을 읽으려고 하면 request.getInputstream 안에 데이터가 없..
produces : 매개 변수를 따로 설정하지 않는 경우 요청 헤더 중 Accept 값과 일치해야 합니다. 일치하지 않는 경우 [org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation] https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html#produces-- 레퍼런스에는 내용 없긴한데 테스트 해보니까 produces 값 따라 Response Content-Type 정해집니다. produces = "text/pla..
-- application.properties -- Oracle spring.datasource.driver-class-name=oracle.jdbc.OracleDriver spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:xe (Oracle 설치 서버 IP + 포트 + DB 이름) spring.datasource.username=ID spring.datasource.password=PW -- MySql spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver (MySql) spring.datasource.url=mysql://localhost:3306/test_db (MySql 설치 서버 IP + 포트 ..
Aop 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 51 52 53 54 @Component @Aspect public class MyAspect { private final Logger logger = LoggerFactory.getLogger("tLogger"); @Before("execution(* com.example.demo.service.MyService.*(..))") public void before(JoinPoint jp) throws Exception { MethodSignature..
1. WebMvcConfigurer 1부 Formatter Formatter 란 어떤 객체를 문자열로 변환하거나 문자열을 객체로 변환 할 때 사용하는 인터페이스라고 합니다. 강의 내 예제에서는 Client 측으로 부터 요청 된 문자열을 객체로 변환하는 것을 볼수 있었습니다. Formatter을 사용하기 위해선 Formatter 인터페이스를 상속받아야 하며 그 안에 있는 추상 메서드 Parser와 Printer를 구현해야 합니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public class PersonFormatter implements Formatter { @Override // 객체를 문자열로 어떻게 보여 줄 것인지 public String print(Pers..
스프링 빈 컨테이너에 등록 된 Bean을 자동으로 주입해주는 @Autowired에 대해 알아보자 @Autowired란 스프링 빈 컨테이너에 존재하는 빈을 타입에 맞게 자동으로 주입해주는 것을 의미한다. 스프링이 Bean 등록을 하기 위해 각 객체들을 스캔하는 과정에서 자동으로 실행 된다. 주의 : Bean 등록을 하지 않는 객체에서는 @Autowired를 사용 할 수 없다. @Autowired를 사용하는 방식은 주로 아래와 같다. 1. 생성자 주입 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 @Service public class Trade { private Coin coin; @Autowired public Trade(Coin coin) { this...