List를 조회하는 API가 있었는데, 어느날 갑자기 조회 조건대로 조회가 안되니 확인을 해달라는 연락을 받았다. 원래는 잘 되던건데...갑자기 안된다..? 범인은 나겠지🥹 Git 히스토리를 찾아보니 @NoArgsConstructor 를 추가해놓았다. 처음엔 잘 이해가 안갔다..@NoArgsConstructor를 붙였어도 @AllArgsConstructor가 있는데 왜 바인딩이 안되는거지?🤔 우선 아래와 같이 컨트롤러와 VO를 만들고 각각의 경우에 바인딩이 어떻게 되는지 확인 해보았다. (스프링에서 @ModelAttribute를 붙이지 않는 경우 적절한 전략을 사용하여 요청 파라미터를 바인딩 하므로 어노테이션을 생략했습니다.) 👉🏼 @AllArgsConstructor -> binding 🙆🏻♀️ 👉🏼 ..
@Service 에서 @Value 를 사용하여 properties에 있는 값을 가지고 와서 사용을 하려고 하는데 @Value 로 주입한 값이 다 null이 찍히는 현상이 발생했다. @Controller 에서는 이런 경우가 있었지만, @Service 에서는 이런 일이 처음이어서 많이 당황스럽고 properties 마다 다른 값이 필요한 부분은 우선적으로 주석처리로 사용을 하기로 했다. conteroller에서 왜 @Value 값을 사용하지 못했는지 궁금하다면? https://yes-admit.tistory.com/44 controller에서 @value 사용하기 컨트롤러에서 @Value 어노테이션을 사용하여 properties에 작성한 값을 가지고 오려고 했는데 값을 가져오지 못했다. service에서는 ..
🔎 상황 - 하나의 property로 설정값들을 관리하니, 매번 주석처리를 하는게 불편하고, 갯수가 많아지다보니 실수가 잦아졌다. 맨 처음에는 로컬,개발,운영 이렇게 세가지로만 나누어져있었는데, 점점 고객사별로 개발, 운영이 추가되고..관리가 힘들어졌다. 따라서 properties를 분리 할 필요성이 생겼다. 1. properties 분리하기 기본 globals.properties에는 active 만 놓고, local용 aws-dev용으로 별도 파일을 생성하여 DB정보 API연동 정보 등을 작성했다. *active에는 빌드시 사용할 properties의 이름을 작성한다. 2. 설정파일 변경 2.1 properties 파일 변수로 등록하기. util은 properties를 변수로 사용할 수 있게끔 등록을 ..
🔧 환경 - java 1.8 - spring - jsp - javascript - sweetalert 🔎 요구사항 - 사용자의 마지막 동작으로 부터 1시간이 지나면 세션을 만료하되, 만료되기 1분전에 세션 만료 알림을 띄어 연장할 수 있어야 한다. 🔎 idea - server에 filter를 등록하여 요청이 올 때마다 response에 마지막 요청시간을 cookie를 저장하고, front단에서는 cookie를 1초마다 확인하여 세션 만료 1시간 전 알림을 보내준다. - 세션 만료 시간 = 마지막 요청 시간 + 1시간 📌 구현 💻 server 1. web.xml 설정 - web.xml에 기본 세션 만료 시간을 설정한다. - web.xml에 설정한 timeout의 단위는 '분' 이다. 60 2. filter..
@Valid는 객체 단계에서 프러퍼티의 유효성을 검사 할 수 있어서 로직이 지저분해지는걸 막을 수 있다. 1️⃣ maven javax.validation validation-api 2.0.1.Final org.hibernate hibernate-validator 5.2.4.Final 2️⃣ bean 설정 classpath:/egovframework/validator/validator-rules-let.xml classpath:/egovframework/validator/let/**/*.xml 3️⃣ 1. vo - ⭐import를 주의하자! (import org.hibernate.validator.constraints.NotBlank;) - @NotBlank는 String에 붙이는 것으로 null과 공백을..
자바에서 API 호출을 하면서 에러가 발생했다. Ilegal character요? 갑자기요? 프론트단에서 값을 한글로 넘겨서 쿼리스트링을 만들 때는 문제가 없었는데, properties에 있는 값을 읽어서 쿼리스트링에 넣으니 문제가 발생했다. 내 경우에는 공백이 문제가 되는 경우였다. 그래서 공백을 모두 "%20"으로 변경해주었다. 아니면 UTF-8로 쿼리스트링을 다시 인코딩을 해줘야하는것 같다. 시간을 많이 잡아먹어서 우선 "%20"로 변경하였고, 다른 개발이 끝나면 다시 살펴 볼 예정이다
컨트롤러에서 @Value 어노테이션을 사용하여 properties에 작성한 값을 가지고 오려고 했는데 값을 가져오지 못했다. service에서는 사용이 되는데 컨트롤러에서는 안되서 검색해보니 아래와 같은 설정을 추가하라고 써있었다. 원인은 dispatcher-servlet에 어떤 properties를 사용할 것인지 위치를 지정해주지 않아서였다. 나는 dispatcher-servlet.xml 에 추가했다. 추가 하니 @Value를 컨트롤러에서도 사용 할 수 있었다.
- Total
- Today
- Yesterday
- 현대오토에버
- 스프링
- 자바코테
- Kubernetes
- 코테
- Docker
- tomcat
- softeer
- 전자정부프레임워크
- mysql
- centos
- 현대코테
- java 코테
- Spring
- 자바
- springboot
- 자바스크립트
- 아파치카프카
- softeer java
- react
- 코딩테스트
- 톰캣
- 쿠버네티스
- java
- 리액트
- Linux
- 도커
- 오토에버코테
- javascript
- 현대
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |