본문 바로가기

spring

spring boot 에 rabbitmq 적용하기 RabbitMQ 란 open source Message broker 로 알려져 있다 즉 mircro service에서 Producer-Consumer pattern을 이용할 시에 producer 가 message 를 send 하면 consumer가 소비하는 구조이다. 예를 들자면 어느 shop 에서 고객이 주문을 요청하면 producer 가 주문flow를 요청하고 microservice 에서 주문 요청을 처리하는 flow를 소비한다는 개념이다 이때 중간에서 rabbitMQ가 비동기로 이 주문요청의 event message를 queue 형식으로 받고 microservice에 전달하는 역할을 한다고 보면 된다. RabbitMQ 기본개념AMQP(Advanced Message Queuing Protocol) :..
(Spring Boot) @Transactional 이란? / @Transactional에 대하여 @TransactionalStackOverflow 질문중 UserNameNotFoundException 발생시 delete method가 실행되지않는다는 질문에 답을 하였습니다.https://stackoverflow.com/questions/52619924/how-to-execute-transaction-in-hibernate-while-throwing-exception/52620514#52620514 I have the following method in my transactional service layer implemented with Hibernate:@Override public void activateAccount(String username, String activationCode) thro..
RxJava 적용하기 (0) - RxJava overview 좋은 어플리케이션을 만들기 위해서는 3가지 요소를 고려하여야 한다. Responsiveness, Elasticness, Resilience이다. RxJava 설정하기 io.reactivex.rxjava2 rxjava 2.1.0 RxJava는 어떻게 동작하는가?Dzone에 있는 모든 문서를 가져와주는 어플리케이션을 예시로 살펴보자. public class DzoneDBDao { private static DzoneDBDao service = new DzoneDBDao(); public static DzoneDBDao get() { return service; } DZoneDoc[] getAllDocFromDB() { return produceDocs(); } private DZoneDoc[] produce..
토비의 스프링 5-4장. 메일 서비스 추상화 메일 서비스 추상화고객으로부터 사용자 레벨 관리에 관한 새로운 요청사항이 들어온 경우라면?User에 email 추가upgradeLevel()에 메일 발송 기능 추가JavaMail이 포함된 코드의 테스트테스트 코드를 돌리면 SMTP host에 연결할 수 없다고 에러가 날 것이다. 그렇다면 아래 처럼 테스트 서버를 구축하는건 어떨까? UserService ---> JavaMail ---> 메일 서버 ---> 테스트용 메일 서버 매번 메일이 발송되는건 바람직하지 못하다. 메일 발송은 부하가 큰 작업일 뿐 아니라, JavaMail은 검증된 라이브러리이다. 따라서 JavaMail API를 통해 요청이 들어간다는 보장만 있다면 굳이 테스트할 때마다 JavaMail을 구동시킬 필요가 없다. UserService --..
(Spring Boot Bean) 사용자 클래스 Bean 객체 등록 / 설정 간단하게 하기! 사용자 클래스의 Spring Bean 등록/설정먼저 사용자 클래스를 Spring Bean 으로 등록하는 쉬운 방법은 클래스 선언부 위에 @Component 어노테이션을 사용하는 것 입니다. @Component 어노테이션이 붙은 클래스는 Spring Bean 객체로 등록이 되어 객체 생성/삭제를 Spring에서 관리하게 되겠죠? @Component public class MyClass { // Methods .... } Spring Boot로 서비스를 구현 하는 중에, 제가 구현한 Class를 Bean객체로 사용하고싶었지만 해당 Class의 field 1을 Autowired로 가지고, field 2를 Instance화 하는데에 또 다른 Bean Class의 Instance 객체가 필요한 특수한 상황이라 쉽..