@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를 변수로 사용할 수 있게끔 등록을 ..
전자정부프레임워크에서 스케쥴러 사용이 필요해 1번방법으로 구현했다가, 스케쥴러 시간 설정을 설정파일로 빼달라는 요청이 있어서 2번 방법으로 다시 구현했다. 사실 이 요청은 시간을 Globals.properties로 빼달라는 것인것 같았지만.. 1번 방법에서 단순히 값을 가져와서 넣는건 "attribute value must be constant"오류가 났다. 뭔가 해결하는 방법이 있겠지만, 시간이 없어서 2번방식으로 했다! (단순히 static final을 붙여주는건 안됐다 ㅠㅠ) 1. @Scheduled 어노테이션 방식 어노테이션 방식은 아주 간단하다. 1️⃣ 설정파일 (context-scheduler.xml) 2️⃣ 스케쥴러로 실행 할 메서드 2-1. @Component 어노테이션으로 bean 등록 ..
@RestController = @Controller + @ResponseBody 아주 간단한 내용이지만 이 둘의 차이를 모르면 많은 시간을 낭비 할 수도 있다. 아래와 같이 코드를 만들었는데 /index는 잘 찾는데, /test는 찾지 못하는 상황이 발생됐다. 아래에서 /test를 못찾는 이유는 @RestController로 선언 해주어야 하는데 단순 @Controller로 선언해주었기 때문! @Controller public class TestController { @RequestMapping(value="/test", method = RequestMethod.POST) public ResponseEntity test() { return new ResponseEntity("test completed!..
스프링부트 프레임워크에서 flyway 사용법은 간단하다. 그런데 나는 spring 설정 방법에 대해서 잘 알지 못하기 대부분의 설정이 xml로 되어있는 전자정부프레임워크에서 flyway를 사용하기 위해..개고생을 했다..거의 하루를 버렸다... 설정을 변경해주어야 할 파일은 두가지이다. 1. datasource 관련 설정파일 2. mybatis 관련 설정파일 우선 제일 먼저 flyway 라이브러리를 추가해주자. 1️⃣ flyway maven 추가 - springboot framework에서는 version을 명시하지 않아도 되었지만, 전자정부프레임워크에서는 버전 명시를 해주지 않으면 내가 사용하고 있는 mariadb 버전을 지원하지 않는다고 나온다.(공식 홈페이지에서는 분명 지원한다고 했는데😓 )그래서 ..
스케쥴러를 사용하는 서비스가 있는데, 서버 이중화를 하게 되면서 스케쥴러를 둘 다 돌리게 되면, 동시에 DB에 접근하기 때문에, 오류가 발생 할 수도 있다. 그렇다고 같은 소스를 배포하면서 스케쥴러 때문에 빌드를 두번해야하는 건 비효율적이다. 그래서 아이피에 따라, 스케쥴러를 실행시킬지 말지 결정하는 방법을 생각했다. 맨 처음에는 일반적인 스케쥴러 사용방식 처럼 사용하되 스케쥴러 내에서 조건문을 사용하려고 했다. 24.03.14++ 이런식으로 스케쥴러를 특정 서버에서는 안 돌게 지정하면 안된다..! 스케쥴러가 돌아가는 서버가 죽으면 어떡해..! 🥹 1년도 안된 신입 때 생각한 방법이라..위와 같은 이유라면 따라하지마세요.. 만약 스케쥴러가 동시에 돌아 동시 DB 접근이 우려된다면 shedlock을 사용하..
- Total
- Today
- Yesterday
- react
- 리액트
- java
- tomcat
- 쿠버네티스
- 아파치카프카
- Docker
- 자바코테
- springboot
- centos
- java 코테
- 자바
- mysql
- softeer java
- softeer
- 톰캣
- 현대코테
- javascript
- 자바스크립트
- Linux
- 코테
- 코딩테스트
- Kubernetes
- 전자정부프레임워크
- Spring
- 현대오토에버
- 현대
- 도커
- 스프링
- 오토에버코테
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |