├── .gitignore ├── README.md ├── bank-application ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── maclstudio │ └── bank │ └── application │ ├── TransferService.java │ └── impl │ └── TransferServiceImpl.java ├── bank-common ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── maclstudio │ └── bank │ ├── configuration │ └── CorsConfiguration.java │ ├── ddd │ ├── AggregateRoot.java │ ├── ApplicationService.java │ ├── Command.java │ ├── CommandApplicationService.java │ ├── DDDInterface.java │ ├── DomainService.java │ ├── Entity.java │ ├── Factory.java │ ├── Identity.java │ ├── QueryApplicationService.java │ ├── Repository.java │ ├── Representation.java │ └── ValueObject.java │ └── interceptor │ └── RequestInterceptor.java ├── bank-domain ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── maclstudio │ └── bank │ ├── domain │ ├── entity │ │ └── Account.java │ ├── service │ │ ├── AccountTransferService.java │ │ └── impl │ │ │ └── AccountTransferServiceImpl.java │ └── types │ │ └── AuditMessage.java │ ├── exception │ ├── DailyLimitExceededException.java │ └── InsufficientFundsException.java │ ├── external │ └── ExchangeRateService.java │ ├── messaging │ └── AuditMessageProducer.java │ └── repository │ └── AccountRepository.java ├── bank-external ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── maclstudio │ └── bank │ └── external │ └── service │ ├── YahooForExService.java │ └── impl │ ├── ExchangeRateServiceImpl.java │ └── YahooForExServiceImpl.java ├── bank-messaging ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── maclstudio │ └── bank │ └── messaging │ └── impl │ └── AuditMessageProducerImpl.java ├── bank-persistence ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── maclstudio │ └── bank │ ├── persistence │ ├── AccountBuilder.java │ ├── AccountDAO.java │ └── AccountDO.java │ └── repository │ └── impl │ └── AccountRepositoryImpl.java ├── bank-types ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── maclstudio │ └── bank │ ├── exception │ └── InvalidCurrencyException.java │ └── types │ ├── AccountId.java │ ├── AccountNumber.java │ ├── Currency.java │ ├── ExchangeRate.java │ ├── Money.java │ └── UserId.java ├── bank-web ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── maclstudio │ │ └── bank │ │ ├── Application.java │ │ └── web │ │ └── TransferController.java │ └── resources │ ├── application.yml │ └── logback-spring.xml └── pom.xml /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dddbook 2 | ddd学习 3 | 4 | 阿里技术专家详解DDD系列 第二弹 - 应用架构 5 | 文章源码整理与调试 6 | 原文链接:https://zhuanlan.zhihu.com/p/84223605 -------------------------------------------------------------------------------- /bank-application/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-application/pom.xml -------------------------------------------------------------------------------- /bank-application/src/main/java/com/maclstudio/bank/application/TransferService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-application/src/main/java/com/maclstudio/bank/application/TransferService.java -------------------------------------------------------------------------------- /bank-application/src/main/java/com/maclstudio/bank/application/impl/TransferServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-application/src/main/java/com/maclstudio/bank/application/impl/TransferServiceImpl.java -------------------------------------------------------------------------------- /bank-common/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-common/pom.xml -------------------------------------------------------------------------------- /bank-common/src/main/java/com/maclstudio/bank/configuration/CorsConfiguration.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-common/src/main/java/com/maclstudio/bank/configuration/CorsConfiguration.java -------------------------------------------------------------------------------- /bank-common/src/main/java/com/maclstudio/bank/ddd/AggregateRoot.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-common/src/main/java/com/maclstudio/bank/ddd/AggregateRoot.java -------------------------------------------------------------------------------- /bank-common/src/main/java/com/maclstudio/bank/ddd/ApplicationService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-common/src/main/java/com/maclstudio/bank/ddd/ApplicationService.java -------------------------------------------------------------------------------- /bank-common/src/main/java/com/maclstudio/bank/ddd/Command.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-common/src/main/java/com/maclstudio/bank/ddd/Command.java -------------------------------------------------------------------------------- /bank-common/src/main/java/com/maclstudio/bank/ddd/CommandApplicationService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-common/src/main/java/com/maclstudio/bank/ddd/CommandApplicationService.java -------------------------------------------------------------------------------- /bank-common/src/main/java/com/maclstudio/bank/ddd/DDDInterface.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-common/src/main/java/com/maclstudio/bank/ddd/DDDInterface.java -------------------------------------------------------------------------------- /bank-common/src/main/java/com/maclstudio/bank/ddd/DomainService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-common/src/main/java/com/maclstudio/bank/ddd/DomainService.java -------------------------------------------------------------------------------- /bank-common/src/main/java/com/maclstudio/bank/ddd/Entity.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-common/src/main/java/com/maclstudio/bank/ddd/Entity.java -------------------------------------------------------------------------------- /bank-common/src/main/java/com/maclstudio/bank/ddd/Factory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-common/src/main/java/com/maclstudio/bank/ddd/Factory.java -------------------------------------------------------------------------------- /bank-common/src/main/java/com/maclstudio/bank/ddd/Identity.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-common/src/main/java/com/maclstudio/bank/ddd/Identity.java -------------------------------------------------------------------------------- /bank-common/src/main/java/com/maclstudio/bank/ddd/QueryApplicationService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-common/src/main/java/com/maclstudio/bank/ddd/QueryApplicationService.java -------------------------------------------------------------------------------- /bank-common/src/main/java/com/maclstudio/bank/ddd/Repository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-common/src/main/java/com/maclstudio/bank/ddd/Repository.java -------------------------------------------------------------------------------- /bank-common/src/main/java/com/maclstudio/bank/ddd/Representation.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-common/src/main/java/com/maclstudio/bank/ddd/Representation.java -------------------------------------------------------------------------------- /bank-common/src/main/java/com/maclstudio/bank/ddd/ValueObject.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-common/src/main/java/com/maclstudio/bank/ddd/ValueObject.java -------------------------------------------------------------------------------- /bank-common/src/main/java/com/maclstudio/bank/interceptor/RequestInterceptor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-common/src/main/java/com/maclstudio/bank/interceptor/RequestInterceptor.java -------------------------------------------------------------------------------- /bank-domain/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-domain/pom.xml -------------------------------------------------------------------------------- /bank-domain/src/main/java/com/maclstudio/bank/domain/entity/Account.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-domain/src/main/java/com/maclstudio/bank/domain/entity/Account.java -------------------------------------------------------------------------------- /bank-domain/src/main/java/com/maclstudio/bank/domain/service/AccountTransferService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-domain/src/main/java/com/maclstudio/bank/domain/service/AccountTransferService.java -------------------------------------------------------------------------------- /bank-domain/src/main/java/com/maclstudio/bank/domain/service/impl/AccountTransferServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-domain/src/main/java/com/maclstudio/bank/domain/service/impl/AccountTransferServiceImpl.java -------------------------------------------------------------------------------- /bank-domain/src/main/java/com/maclstudio/bank/domain/types/AuditMessage.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-domain/src/main/java/com/maclstudio/bank/domain/types/AuditMessage.java -------------------------------------------------------------------------------- /bank-domain/src/main/java/com/maclstudio/bank/exception/DailyLimitExceededException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-domain/src/main/java/com/maclstudio/bank/exception/DailyLimitExceededException.java -------------------------------------------------------------------------------- /bank-domain/src/main/java/com/maclstudio/bank/exception/InsufficientFundsException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-domain/src/main/java/com/maclstudio/bank/exception/InsufficientFundsException.java -------------------------------------------------------------------------------- /bank-domain/src/main/java/com/maclstudio/bank/external/ExchangeRateService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-domain/src/main/java/com/maclstudio/bank/external/ExchangeRateService.java -------------------------------------------------------------------------------- /bank-domain/src/main/java/com/maclstudio/bank/messaging/AuditMessageProducer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-domain/src/main/java/com/maclstudio/bank/messaging/AuditMessageProducer.java -------------------------------------------------------------------------------- /bank-domain/src/main/java/com/maclstudio/bank/repository/AccountRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-domain/src/main/java/com/maclstudio/bank/repository/AccountRepository.java -------------------------------------------------------------------------------- /bank-external/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-external/pom.xml -------------------------------------------------------------------------------- /bank-external/src/main/java/com/maclstudio/bank/external/service/YahooForExService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-external/src/main/java/com/maclstudio/bank/external/service/YahooForExService.java -------------------------------------------------------------------------------- /bank-external/src/main/java/com/maclstudio/bank/external/service/impl/ExchangeRateServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-external/src/main/java/com/maclstudio/bank/external/service/impl/ExchangeRateServiceImpl.java -------------------------------------------------------------------------------- /bank-external/src/main/java/com/maclstudio/bank/external/service/impl/YahooForExServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-external/src/main/java/com/maclstudio/bank/external/service/impl/YahooForExServiceImpl.java -------------------------------------------------------------------------------- /bank-messaging/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-messaging/pom.xml -------------------------------------------------------------------------------- /bank-messaging/src/main/java/com/maclstudio/bank/messaging/impl/AuditMessageProducerImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-messaging/src/main/java/com/maclstudio/bank/messaging/impl/AuditMessageProducerImpl.java -------------------------------------------------------------------------------- /bank-persistence/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-persistence/pom.xml -------------------------------------------------------------------------------- /bank-persistence/src/main/java/com/maclstudio/bank/persistence/AccountBuilder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-persistence/src/main/java/com/maclstudio/bank/persistence/AccountBuilder.java -------------------------------------------------------------------------------- /bank-persistence/src/main/java/com/maclstudio/bank/persistence/AccountDAO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-persistence/src/main/java/com/maclstudio/bank/persistence/AccountDAO.java -------------------------------------------------------------------------------- /bank-persistence/src/main/java/com/maclstudio/bank/persistence/AccountDO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-persistence/src/main/java/com/maclstudio/bank/persistence/AccountDO.java -------------------------------------------------------------------------------- /bank-persistence/src/main/java/com/maclstudio/bank/repository/impl/AccountRepositoryImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-persistence/src/main/java/com/maclstudio/bank/repository/impl/AccountRepositoryImpl.java -------------------------------------------------------------------------------- /bank-types/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-types/pom.xml -------------------------------------------------------------------------------- /bank-types/src/main/java/com/maclstudio/bank/exception/InvalidCurrencyException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-types/src/main/java/com/maclstudio/bank/exception/InvalidCurrencyException.java -------------------------------------------------------------------------------- /bank-types/src/main/java/com/maclstudio/bank/types/AccountId.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-types/src/main/java/com/maclstudio/bank/types/AccountId.java -------------------------------------------------------------------------------- /bank-types/src/main/java/com/maclstudio/bank/types/AccountNumber.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-types/src/main/java/com/maclstudio/bank/types/AccountNumber.java -------------------------------------------------------------------------------- /bank-types/src/main/java/com/maclstudio/bank/types/Currency.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-types/src/main/java/com/maclstudio/bank/types/Currency.java -------------------------------------------------------------------------------- /bank-types/src/main/java/com/maclstudio/bank/types/ExchangeRate.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-types/src/main/java/com/maclstudio/bank/types/ExchangeRate.java -------------------------------------------------------------------------------- /bank-types/src/main/java/com/maclstudio/bank/types/Money.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-types/src/main/java/com/maclstudio/bank/types/Money.java -------------------------------------------------------------------------------- /bank-types/src/main/java/com/maclstudio/bank/types/UserId.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-types/src/main/java/com/maclstudio/bank/types/UserId.java -------------------------------------------------------------------------------- /bank-web/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-web/pom.xml -------------------------------------------------------------------------------- /bank-web/src/main/java/com/maclstudio/bank/Application.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-web/src/main/java/com/maclstudio/bank/Application.java -------------------------------------------------------------------------------- /bank-web/src/main/java/com/maclstudio/bank/web/TransferController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-web/src/main/java/com/maclstudio/bank/web/TransferController.java -------------------------------------------------------------------------------- /bank-web/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-web/src/main/resources/application.yml -------------------------------------------------------------------------------- /bank-web/src/main/resources/logback-spring.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/bank-web/src/main/resources/logback-spring.xml -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maclstudio/dddbook/HEAD/pom.xml --------------------------------------------------------------------------------