Skip to content

Instantly share code, notes, and snippets.

View jaocamp's full-sized avatar
😁

João Rafael Campos da Silva jaocamp

😁
View GitHub Profile
@jaocamp
jaocamp / EventController.java
Created August 23, 2018 04:16
CQRS e Event Sourcing com Axon Framework e Spring Boot - EventController.java
package br.com.coderef.controller;
import lombok.AllArgsConstructor;
import org.axonframework.eventhandling.EventMessage;
import org.axonframework.eventsourcing.eventstore.EventStore;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@jaocamp
jaocamp / AmqpConfiguration.java
Last active August 22, 2018 20:31
CQRS e Event Sourcing com Axon Framework e Spring Boot - AmqpConfiguration.java
package br.com.coderef.configuration;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.axonframework.amqp.eventhandling.DefaultAMQPMessageConverter;
import org.axonframework.amqp.eventhandling.spring.SpringAMQPMessageSource;
import org.axonframework.serialization.Serializer;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.context.annotation.Bean;
@jaocamp
jaocamp / AmqpEventPublicationConfiguration.java
Last active August 22, 2018 20:32
CQRS e Event Sourcing com Axon Framework e Spring Boot - AmqpEventPublicationConfiguration.java
package br.com.coderef.configuration;
import org.springframework.amqp.core.AmqpAdmin;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.Exchange;
import org.springframework.amqp.core.ExchangeBuilder;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.QueueBuilder;
import org.springframework.beans.factory.annotation.Autowired;
@jaocamp
jaocamp / BankAccountEventProcessor.java
Last active August 22, 2018 20:33
CQRS e Event Sourcing com Axon Framework e Spring Boot - BankAccountEventProcessor.java
package br.com.coderef.components;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.axonframework.config.ProcessingGroup;
import org.axonframework.eventhandling.EventHandler;
import org.springframework.stereotype.Component;
import br.com.coderef.event.BankAccountAddedEvent;
@jaocamp
jaocamp / BankAccountController.java
Last active August 23, 2018 03:51
CQRS e Event Sourcing com Axon Framework e Spring Boot - BankAccountController.java
package br.com.coderef.controller;
import br.com.coderef.model.BankAccount;
import br.com.coderef.repository.BankAccountRepository;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@jaocamp
jaocamp / BankAccountRepository.java
Last active August 23, 2018 03:39
CQRS e Event Sourcing com Axon Framework e Spring Boot - BankAccountRepository.java
package br.com.coderef.repository;
import br.com.coderef.model.BankAccount;
import org.springframework.data.repository.CrudRepository;
public interface BankAccountRepository extends CrudRepository<BankAccount, String> {
}
@jaocamp
jaocamp / BankAccount.java
Last active August 23, 2018 03:40
CQRS e Event Sourcing com Axon Framework e Spring Boot - BankAccount.java
package br.com.coderef.model;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.math.BigDecimal;
@jaocamp
jaocamp / application.yml
Last active August 23, 2018 03:41
CQRS e Event Sourcing com Axon Framework e Spring Boot - application.yml Query APP
server:
port: 8082
spring:
datasource:
url: jdbc:postgresql://localhost:5432/bank-account-db
username: postgres
password: postgres
jpa:
database-platform: org.hibernate.dialect.PostgreSQL94Dialect
@jaocamp
jaocamp / pom.xml
Last active August 23, 2018 03:41
CQRS e Event Sourcing com Axon Framework e Spring Boot - pom.xml bank query
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.coderef</groupId>
<artifactId>bank-account-query</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
@jaocamp
jaocamp / BankAccountController.java
Last active August 23, 2018 03:42
CQRS e Event Sourcing com Axon Framework e Spring Boot - BankAccountController.java
package br.com.coderef.controller;
import br.com.coderef.command.AddBankAccountCommand;
import br.com.coderef.command.RemoveBankAccountCommand;
import br.com.coderef.command.UpdateBalanceBankAccountCommand;
import br.com.coderef.dto.BankAccountDTO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.axonframework.commandhandling.gateway.CommandGateway;
import org.springframework.web.bind.annotation.DeleteMapping;