TIL(Develop)/Spring6 [Kotlin] RestClient를 MSA로 구성된 Spring module간 통신에 사용하는 예시 core module에 다음과 같은 interface를 생성한다package kpring.core.auth.clientinterface AuthClient { @PostExchange("/api/v1/validation") fun validateToken( @RequestHeader("Authorization") token: String, ): ResponseEntity} chat module에서 auth module의 api를 호출하기 위해 core module의 interface를 사용한다interface를 넘겨주면 HttpServiceProxyFactory 가 요청을 날리는 proxy를 생성한다package kpring.chat.config@Configurationcla.. 2024. 4. 25. HTTP Interface Client, (RestClient, WebClient, RestTemplate의 차이) HTTP InterfaceSpring Framework를 사용하면 @HttpExchange 메서드가 있는 Java 인터페이스로 HTTP 서비스를 정의할 수 있다.이 인터페이스를 HttpServiceProxyFactory에 전달하여 RestClient 또는 WebClient 와 같은 HTTP 클라이언트를 통해 요청을 처리하는 프록시를 생성할 수 있다. interface → HttpServiceProxyFactory → HTTP client로 요청들을 날리는 proxy를 생성 혹은 @Controller 에서 인터페이스를 구현하여 서버 요청 처리를 할 수도 있다 HTTP Client의 종류 RestClient WebClient RestClient, WebClient, RestTemplate의 차이🔎를 알아보.. 2024. 4. 25. Spring 프로젝트 HTTP에서 HTTPS로 변경하기 (Java로 SSL 만들어서 Spring 프로젝트에 적용하기(P12 방식)) Spring 프로젝트를 http에서 https로 만들기 위해서 SSL을 발급받아서 추가하는 방법을 설명하려고 한다 인텔리제이 cmd가 먹히지 않아서 Windows cmd prompt로 했다 관리자 모드로 열어주지 않으면 아래와 같은 에러가 발생한다 keytool error: java.io.FileNotFoundException: keystore.p12 (Access is denied) jdk bin으로 이동하면 keytool이 있어서 jdk bin으로 이동해준다 C:\\Program Files\\Java\\jdk-17\\bin> Keystore + 키 쌍 생성 keytool -genkey -alias {keystore name} -keyalg RSA -storetype PKCS12 -keystore {k.. 2024. 4. 17. Custom annotation으로 Bean Validation + Parameter Validation 하기 (어노테이션 정의해서 검증하기) 1. Bean Validation 참고 자료: https://www.baeldung.com/spring-mvc-custom-validator baeldung 을 읽으면서 따라해봄 3단계 과정 1. Annotation 만들기 2. Validator 만들기 3. 사용하기 나는 들어오는 값이 정해진 값 중의 하나인지 검증하고 싶었다 1) The New Annotation @Documented @Constraint(validatedBy = CategoryValidator.class) @Target( { ElementType.METHOD, ElementType.FIELD }) @Retention(RetentionPolicy.RUNTIME) public @interface Category { String messa.. 2024. 3. 25. 📖Entity에 복합키로 id구성하는 방법 @IdClass, @EmbeddedId 📖 How to make Composite Keys in Spring Entity 1. IdClass로 구현하는 방식 사용 방법은 간단하다! 1) Entity에 id를 설정해준다 @IdClass(UserPostId.class) 클래스에 이 어노테이션을 붙여서 id를 지정해주고 @Id 복합키로 사용할 fk Column 두개에 해당 어노테이션을 붙여준다 전체 Entity 코드 @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity @Table(name = "tb_user_post") @IdClass(UserPostId.class) public class UserPost { @Id @ManyToOne @OnDelete(action = OnDele.. 2024. 3. 15. 📖Hibernate/JPA의 id 생성 전략들 📖Identifiers in Hibernate/JPA strategies of id generations https://www.baeldung.com/hibernate-identifiers AUTO Generation strategy 숫자 타입 the primary key value들은 database level에서 unique하게 됨 based on a sequence or table generator @Entity public class Student { @Id @GeneratedValue private long studentId; // ... } UUID 타입 Hibernate 5부터 추가된 UUIDGenerator를 이용 Hibernate will generate an id of the form .. 2024. 1. 17. 이전 1 다음