JPA Auditing JPA Auditing으로 생성시간, 수정시간 자동화 pom.xml에 dependency 추가 org.hibernate hibernate-core 5.2.11.Final BaseTimeEntity 클래스 생성 public class BaseTimeEntity { @CreatedDate private LocalDateTime createDate; @LastModifiedDate private LocalDateTime monidiedDate; } 다른 클래스에서 BaseTimeEntity를 상속받아서 createdDate, modifiedDate 관리.
Static Field를 @value로 받아오는 방법 Spring 에서 static으로 선언된 변수에는 injection할 수 없다. static 변수는 null을 반환 static이 아닌 setter메소드를 추가해서 직접 값을 넣는방법으로 사용하면 됨 public static String testField; @Value("${app.testField}") public void setTestField(String testField) { this.testField= testField; }
Environment를 이용한 외부 설정 주입 @value 어노테이션으로 외부 설정 주입이 가능하지만, Environment로 주입하는 테스트 진행 pom.xml 파일 내용의 일부 ......... xxx .... 1.0.0 application.yml 파일 내용 project: version: @project.version@ pom.xml 의 project version을 가져오는 yml 설정파일 Environment를 이용해 외부 설정 주입 @Autowired public Environment env; ..... System.out.println(env.getProperty("project.version")) pom.xml에서 설정했던 1.0.0의 version 값이 정상적으로 출력
gRPC gRPC는 google에서 만든 RPC 시스템이다. RPC란? gRPC를 알기 전에 RPC부터 알아야 한다. RPC(Remote Procedure Call) 은 프로세스간 통신 기법이다. 다양한 환경, 플랫폼에 제약이 없어서 분산시스템 기법에 좋다. 별도의 원격제어 없이 프로세스간 함수나 프로시저를 호출할 수 있다 IDL(Interface Definition Language)을 사용하여 서버의 호출 규약을 정의 ProtoBuf 서비스와 메세지를 정의하기위해 사용한다. google에서 개발한, 데이터 직렬화 오픈소스(gRPC의 IDL로 사용함) gRPC의 장점 높은 생산성, 유지보수가 좋음 환경, 플랫폼에 제약이 없다. HTTP/2 기반 통신으로, server/client가 서로 데이터를 스트리밍..
Spring boot Redis Redis channel Subscribe(lettuce 사용) 1.pom.xml 파일에 redis관련 dependency 추가 org.springframework.boot spring-boot-starter-data-redis 2.외부 redis-server를 사용하는 경우 application.yml 파일 설정 내용(Test를 위해 redis 관련 setting값만 설정) spring: redis: host: localhost port: 6379 3.redisConfiguration class에 connectionFactory를 만들고, redis사용에 필요한 bean을 생성한다. @Configuration @EnableRedisRepositories @Slf4j pu..