gitextract_o44g23q_/ ├── .gitignore ├── .gitmodules ├── 1.x/ │ ├── Chapter1/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Chapter1Application.java │ │ │ │ └── web/ │ │ │ │ └── HelloController.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── Chapter1ApplicationTests.java │ ├── Chapter2-1-1/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ ├── service/ │ │ │ │ │ └── BlogProperties.java │ │ │ │ └── web/ │ │ │ │ └── HelloController.java │ │ │ └── resources/ │ │ │ ├── application-dev.properties │ │ │ ├── application-prod.properties │ │ │ ├── application-test.properties │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter2-1-2/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── Application.java │ │ │ ├── ApplicationEnvironmentPreparedEventListener.java │ │ │ ├── ApplicationFailedEventListener.java │ │ │ ├── ApplicationPreparedEventListener.java │ │ │ ├── ApplicationReadyEventListener.java │ │ │ ├── ApplicationStartedEventListener.java │ │ │ └── ApplicationStartingEventListener.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── spring.factories │ │ └── application.properties │ ├── Chapter2-2-1/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── Application.java │ │ │ ├── FooProperties.java │ │ │ └── PostInfo.java │ │ └── resources/ │ │ └── application.properties │ ├── Chapter3-1-1/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ ├── domain/ │ │ │ │ │ └── User.java │ │ │ │ └── web/ │ │ │ │ ├── HelloController.java │ │ │ │ └── UserController.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter3-1-2/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── web/ │ │ │ │ └── HelloController.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── templates/ │ │ │ └── index.html │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter3-1-3/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── web/ │ │ │ │ └── HelloController.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── templates/ │ │ │ └── index.ftl │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter3-1-4/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── web/ │ │ │ │ └── HelloController.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── templates/ │ │ │ └── index.vm │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter3-1-5/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── Application.java │ │ │ ├── Swagger2.java │ │ │ ├── domain/ │ │ │ │ └── User.java │ │ │ └── web/ │ │ │ ├── HelloController.java │ │ │ └── UserController.java │ │ └── resources/ │ │ └── application.properties │ ├── Chapter3-1-6/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ ├── dto/ │ │ │ │ │ └── ErrorInfo.java │ │ │ │ ├── exception/ │ │ │ │ │ ├── GlobalExceptionHandler.java │ │ │ │ │ └── MyException.java │ │ │ │ └── web/ │ │ │ │ └── HelloController.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── templates/ │ │ │ ├── error.html │ │ │ └── index.html │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter3-1-7/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── Application.java │ │ └── resources/ │ │ └── application.properties │ ├── Chapter3-1-8/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── Application.java │ │ │ └── web/ │ │ │ ├── User.java │ │ │ └── UserController.java │ │ └── resources/ │ │ └── application.properties │ ├── Chapter3-2-1/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── service/ │ │ │ │ ├── UserService.java │ │ │ │ └── UserServiceImpl.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter3-2-10/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ ├── Person.java │ │ │ │ └── PersonRepository.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── ApplicationTests.java │ │ └── resources/ │ │ ├── application.properties │ │ └── ldap-server.ldif │ ├── Chapter3-2-11/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── Application.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter3-2-2/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── domain/ │ │ │ │ ├── User.java │ │ │ │ └── UserRepository.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter3-2-3/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── DataSourceConfig.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter3-2-4/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ ├── DataSourceConfig.java │ │ │ │ ├── PrimaryConfig.java │ │ │ │ ├── SecondaryConfig.java │ │ │ │ └── domain/ │ │ │ │ ├── p/ │ │ │ │ │ ├── User.java │ │ │ │ │ └── UserRepository.java │ │ │ │ └── s/ │ │ │ │ ├── Message.java │ │ │ │ └── MessageRepository.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter3-2-5/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ ├── RedisConfig.java │ │ │ │ ├── RedisObjectSerializer.java │ │ │ │ └── domain/ │ │ │ │ └── User.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter3-2-6/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── domain/ │ │ │ │ ├── User.java │ │ │ │ └── UserRepository.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter3-2-7/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── domain/ │ │ │ │ ├── User.java │ │ │ │ └── UserMapper.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter3-2-8/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── domain/ │ │ │ │ ├── User.java │ │ │ │ └── UserMapper.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter3-2-9/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── service/ │ │ │ │ ├── UserService.java │ │ │ │ └── UserServiceImpl.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── db/ │ │ │ └── V1__Base_version.sql │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter3-3-1/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ ├── domain/ │ │ │ │ │ ├── User.java │ │ │ │ │ └── UserRepository.java │ │ │ │ └── service/ │ │ │ │ └── UserService.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter4-1-1/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── task/ │ │ │ │ └── ScheduledTasks.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter4-1-2/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── async/ │ │ │ │ └── Task.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter4-1-3/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── async/ │ │ │ │ └── Task.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter4-1-4/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── async/ │ │ │ │ └── Task.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter4-1-5/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── async/ │ │ │ │ └── Task.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter4-2-2/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── Application.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── log4j.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter4-2-3/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── Application.java │ │ │ └── resources/ │ │ │ ├── application-dev.properties │ │ │ ├── application-prod.properties │ │ │ ├── application-test.properties │ │ │ ├── application.properties │ │ │ └── log4j.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter4-2-4/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ ├── aspect/ │ │ │ │ │ └── WebLogAspect.java │ │ │ │ └── web/ │ │ │ │ └── HelloController.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── log4j.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter4-2-5/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ ├── aspect/ │ │ │ │ │ └── WebLogAspect.java │ │ │ │ ├── log/ │ │ │ │ │ └── MongoAppender.java │ │ │ │ └── web/ │ │ │ │ └── HelloController.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── log4j.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter4-2-6/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── DemoApplication.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── DemoApplicationTests.java │ ├── Chapter4-3-1/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ ├── WebSecurityConfig.java │ │ │ │ └── web/ │ │ │ │ └── HelloController.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── templates/ │ │ │ ├── hello.html │ │ │ ├── index.html │ │ │ └── login.html │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter4-4-1/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── domain/ │ │ │ │ ├── User.java │ │ │ │ └── UserRepository.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── ehcache.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter4-4-2/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── domain/ │ │ │ │ ├── User.java │ │ │ │ └── UserRepository.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter4-5-1/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── Application.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── templates/ │ │ │ └── template.vm │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter5-2-1/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── HelloApplication.java │ │ │ │ └── rabbit/ │ │ │ │ ├── RabbitConfig.java │ │ │ │ ├── Receiver.java │ │ │ │ └── Sender.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── HelloApplicationTests.java │ ├── Chapter6-1-1/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── Application.java │ │ │ ├── EventConfig.java │ │ │ ├── Events.java │ │ │ ├── StateMachineConfig.java │ │ │ └── States.java │ │ └── resources/ │ │ └── application.properties │ ├── Chapter6-2-1/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── web/ │ │ │ │ └── HelloController.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter9-1-1/ │ │ ├── compute-service/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── didispace/ │ │ │ │ │ ├── ComputeServiceApplication.java │ │ │ │ │ └── web/ │ │ │ │ │ └── ComputeController.java │ │ │ │ └── resources/ │ │ │ │ └── application.properties │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── ApplicationTests.java │ │ └── eureka-server/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── Application.java │ │ └── resources/ │ │ └── application.properties │ ├── Chapter9-1-2/ │ │ ├── eureka-feign/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── FeignApplication.java │ │ │ │ ├── service/ │ │ │ │ │ └── ComputeClient.java │ │ │ │ └── web/ │ │ │ │ └── ConsumerController.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── eureka-ribbon/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── RibbonApplication.java │ │ │ └── web/ │ │ │ └── ConsumerController.java │ │ └── resources/ │ │ └── application.properties │ ├── Chapter9-1-3/ │ │ ├── compute-service/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── didispace/ │ │ │ │ │ ├── ComputeServiceApplication.java │ │ │ │ │ └── web/ │ │ │ │ │ └── ComputeController.java │ │ │ │ └── resources/ │ │ │ │ └── application.properties │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── ApplicationTests.java │ │ ├── eureka-feign/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── FeignApplication.java │ │ │ ├── service/ │ │ │ │ ├── ComputeClient.java │ │ │ │ └── ComputeClientHystrix.java │ │ │ └── web/ │ │ │ └── ConsumerController.java │ │ ├── eureka-ribbon/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ ├── RibbonApplication.java │ │ │ ├── service/ │ │ │ │ └── ComputeService.java │ │ │ └── web/ │ │ │ └── ConsumerController.java │ │ └── eureka-server/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── Application.java │ │ └── resources/ │ │ └── application.properties │ ├── Chapter9-1-4/ │ │ ├── config-client/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── web/ │ │ │ │ └── TestController.java │ │ │ └── resources/ │ │ │ └── bootstrap.properties │ │ ├── config-repo/ │ │ │ ├── didispace-dev.properties │ │ │ ├── didispace-prod.properties │ │ │ ├── didispace-test.properties │ │ │ └── didispace.properties │ │ └── config-server/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── Application.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── didispace-dev.properties │ │ ├── didispace-prod.properties │ │ ├── didispace-test.properties │ │ └── didispace.properties │ ├── Chapter9-1-5/ │ │ ├── api-gateway/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── filter/ │ │ │ │ └── AccessFilter.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ ├── eureka-server/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── Application.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ ├── service-A/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── didispace/ │ │ │ │ │ ├── ComputeServiceApplication.java │ │ │ │ │ └── web/ │ │ │ │ │ └── ComputeController.java │ │ │ │ └── resources/ │ │ │ │ └── application.properties │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── ApplicationTests.java │ │ └── service-B/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── ComputeServiceApplication.java │ │ │ │ └── web/ │ │ │ │ └── ComputeController.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter9-2-1/ │ │ ├── compute-service/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── didispace/ │ │ │ │ │ ├── Application.java │ │ │ │ │ └── service/ │ │ │ │ │ ├── ComputeService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── ComputeServiceImpl.java │ │ │ │ └── resources/ │ │ │ │ ├── application.properties │ │ │ │ └── dubbo.xml │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── ApplicationTests.java │ │ └── consumer/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ ├── Application.java │ │ │ │ └── service/ │ │ │ │ └── ComputeService.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── dubbo.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── Chapter9-2-2/ │ │ ├── compute-service/ │ │ │ ├── compute-api/ │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── service/ │ │ │ │ ├── ComputeService.java │ │ │ │ └── impl/ │ │ │ │ └── ComputeServiceImpl.java │ │ │ ├── compute-api-server/ │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ ├── java/ │ │ │ │ │ │ └── com/ │ │ │ │ │ │ └── didispace/ │ │ │ │ │ │ ├── Application.java │ │ │ │ │ │ └── service/ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ └── ComputeServiceImpl.java │ │ │ │ │ └── resources/ │ │ │ │ │ ├── application.properties │ │ │ │ │ └── dubbo.xml │ │ │ │ └── test/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── ApplicationTests.java │ │ │ └── pom.xml │ │ └── consumer/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── Application.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── dubbo.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── ApplicationTests.java │ ├── README.md │ └── README_zh.md ├── 2.x/ │ ├── README.md │ ├── README_zh.md │ ├── chapter1-1/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter11/ │ │ │ │ ├── Chapter11Application.java │ │ │ │ └── HelloController.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter11/ │ │ └── Chapter11ApplicationTests.java │ ├── chapter1-2/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter12/ │ │ │ └── Chapter12Application.java │ │ └── resources/ │ │ └── application.yaml │ ├── chapter1-3/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter13/ │ │ │ └── Chapter13Application.java │ │ └── resources/ │ │ └── application.yaml │ ├── chapter1-4/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter14/ │ │ │ ├── Chapter14Application.java │ │ │ ├── DidiProperties.java │ │ │ └── HelloController.java │ │ └── resources/ │ │ └── application.properties │ ├── chapter1-5/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter15/ │ │ │ │ └── Chapter15Application.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter15/ │ │ └── PropertiesTest.java │ ├── chapter2-1/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter21/ │ │ │ │ ├── Chapter21Application.java │ │ │ │ ├── User.java │ │ │ │ └── UserController.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter21/ │ │ └── Chapter21ApplicationTests.java │ ├── chapter2-2/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter22/ │ │ │ ├── Chapter22Application.java │ │ │ ├── User.java │ │ │ └── UserController.java │ │ └── resources/ │ │ └── application.properties │ ├── chapter2-3/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter23/ │ │ │ ├── Chapter23Application.java │ │ │ ├── User.java │ │ │ └── UserController.java │ │ └── resources/ │ │ └── application.properties │ ├── chapter2-4/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter24/ │ │ │ ├── Chapter24Application.java │ │ │ ├── User.java │ │ │ └── UserController.java │ │ └── resources/ │ │ └── application.properties │ ├── chapter2-5/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── docs/ │ │ │ ├── asciidoc/ │ │ │ │ ├── generated/ │ │ │ │ │ ├── definitions.adoc │ │ │ │ │ ├── overview.adoc │ │ │ │ │ ├── paths.adoc │ │ │ │ │ └── security.adoc │ │ │ │ ├── generated-by-plugin/ │ │ │ │ │ ├── definitions.adoc │ │ │ │ │ ├── overview.adoc │ │ │ │ │ ├── paths.adoc │ │ │ │ │ └── security.adoc │ │ │ │ └── html/ │ │ │ │ ├── definitions.html │ │ │ │ ├── overview.html │ │ │ │ ├── paths.html │ │ │ │ └── security.html │ │ │ ├── confluence/ │ │ │ │ └── generated/ │ │ │ │ ├── definitions.txt │ │ │ │ ├── overview.txt │ │ │ │ ├── paths.txt │ │ │ │ └── security.txt │ │ │ └── markdown/ │ │ │ └── generated/ │ │ │ ├── definitions.md │ │ │ ├── overview.md │ │ │ ├── paths.md │ │ │ └── security.md │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter25/ │ │ │ │ ├── Chapter25Application.java │ │ │ │ ├── User.java │ │ │ │ └── UserController.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter25/ │ │ └── DemoApplicationTests.java │ ├── chapter2-6/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter26/ │ │ │ ├── Chapter26Application.java │ │ │ ├── User.java │ │ │ └── UserController.java │ │ └── resources/ │ │ └── application.properties │ ├── chapter2-7/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter27/ │ │ │ ├── Chapter27Application.java │ │ │ ├── User.java │ │ │ └── UserController.java │ │ └── resources/ │ │ └── application.properties │ ├── chapter2-8/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter28/ │ │ │ ├── Chapter28Application.java │ │ │ ├── User.java │ │ │ └── UserController.java │ │ └── resources/ │ │ └── application.properties │ ├── chapter2-9/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter29/ │ │ │ ├── Chapter29Application.java │ │ │ ├── User.java │ │ │ └── UserController.java │ │ └── resources/ │ │ └── application.properties │ ├── chapter3-1/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter31/ │ │ │ │ ├── Chapter31Application.java │ │ │ │ ├── User.java │ │ │ │ ├── UserService.java │ │ │ │ └── UserServiceImpl.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter31/ │ │ └── Chapter31ApplicationTests.java │ ├── chapter3-10/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter310/ │ │ │ │ ├── Chapter310Application.java │ │ │ │ ├── User.java │ │ │ │ └── UserRepository.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter310/ │ │ └── Chapter310ApplicationTests.java │ ├── chapter3-11/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter311/ │ │ │ │ ├── Chapter311Application.java │ │ │ │ ├── User.java │ │ │ │ ├── UserService.java │ │ │ │ └── UserServiceImpl.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── db/ │ │ │ └── migration/ │ │ │ ├── V1_1__alter_table_user.sql │ │ │ └── V1__Base_version.sql │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter311/ │ │ └── Chapter311ApplicationTests.java │ ├── chapter3-12/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter312/ │ │ │ │ ├── Chapter312Application.java │ │ │ │ ├── DataSourceConfiguration.java │ │ │ │ └── TestService.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter312/ │ │ └── Chapter312ApplicationTests.java │ ├── chapter3-13/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter313/ │ │ │ │ └── Chapter313Application.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── schema-all.sql │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter31/ │ │ └── Chapter31ApplicationTests.java │ ├── chapter3-2/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter32/ │ │ │ │ ├── Chapter32Application.java │ │ │ │ ├── User.java │ │ │ │ ├── UserService.java │ │ │ │ └── UserServiceImpl.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter32/ │ │ └── Chapter32ApplicationTests.java │ ├── chapter3-3/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter33/ │ │ │ │ ├── Chapter33Application.java │ │ │ │ ├── User.java │ │ │ │ ├── UserController.java │ │ │ │ ├── UserService.java │ │ │ │ └── UserServiceImpl.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter33/ │ │ └── Chapter33ApplicationTests.java │ ├── chapter3-4/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter34/ │ │ │ │ ├── Chapter34Application.java │ │ │ │ ├── User.java │ │ │ │ └── UserRepository.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter34/ │ │ └── Chapter34ApplicationTests.java │ ├── chapter3-5/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter35/ │ │ │ │ ├── Chapter35Application.java │ │ │ │ ├── User.java │ │ │ │ └── UserMapper.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter35/ │ │ └── Chapter35ApplicationTests.java │ ├── chapter3-6/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter36/ │ │ │ │ ├── Chapter36Application.java │ │ │ │ ├── entity/ │ │ │ │ │ └── User.java │ │ │ │ └── mapper/ │ │ │ │ └── UserMapper.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── mapper/ │ │ │ └── UserMapper.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter36/ │ │ └── Chapter36ApplicationTests.java │ ├── chapter3-7/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter37/ │ │ │ │ ├── Chapter37Application.java │ │ │ │ └── DataSourceConfiguration.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter37/ │ │ └── Chapter37ApplicationTests.java │ ├── chapter3-8/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter38/ │ │ │ │ ├── Chapter38Application.java │ │ │ │ ├── DataSourceConfiguration.java │ │ │ │ ├── PrimaryConfig.java │ │ │ │ ├── SecondaryConfig.java │ │ │ │ ├── p/ │ │ │ │ │ ├── User.java │ │ │ │ │ └── UserRepository.java │ │ │ │ └── s/ │ │ │ │ ├── Message.java │ │ │ │ └── MessageRepository.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter38/ │ │ └── Chapter38ApplicationTests.java │ ├── chapter3-9/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter39/ │ │ │ │ ├── Chapter39Application.java │ │ │ │ ├── DataSourceConfiguration.java │ │ │ │ ├── PrimaryConfig.java │ │ │ │ ├── SecondaryConfig.java │ │ │ │ ├── p/ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ └── UserPrimary.java │ │ │ │ │ └── mapper/ │ │ │ │ │ └── UserMapperPrimary.java │ │ │ │ └── s/ │ │ │ │ ├── entity/ │ │ │ │ │ └── UserSecondary.java │ │ │ │ └── mapper/ │ │ │ │ └── UserMapperSecondary.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ ├── mapper.primary/ │ │ │ │ └── UserMapper.xml │ │ │ └── mapper.secondary/ │ │ │ └── UserMapper.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter39/ │ │ └── Chapter39ApplicationTests.java │ ├── chapter4-1/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter41/ │ │ │ ├── Chapter41Application.java │ │ │ └── HelloController.java │ │ └── resources/ │ │ ├── application.properties │ │ └── templates/ │ │ └── index.html │ ├── chapter4-2/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter42/ │ │ │ ├── Chapter42Application.java │ │ │ └── HelloController.java │ │ └── resources/ │ │ ├── application.properties │ │ └── templates/ │ │ └── index.html │ ├── chapter4-3/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter43/ │ │ │ │ ├── Chapter43Application.java │ │ │ │ └── UploadController.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── templates/ │ │ │ └── upload.html │ │ └── test/ │ │ └── java/ │ │ └── FileTest.java │ ├── chapter4-4/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter44/ │ │ │ │ ├── Chapter44Application.java │ │ │ │ └── UploadController.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── templates/ │ │ │ └── upload.html │ │ └── test/ │ │ └── java/ │ │ └── FileTest.java │ ├── chapter4-5/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter45/ │ │ │ ├── Application.java │ │ │ ├── HelloController.java │ │ │ └── WebSecurityConfig.java │ │ └── resources/ │ │ ├── application.properties │ │ └── templates/ │ │ ├── hello.html │ │ ├── index.html │ │ └── login.html │ ├── chapter5-1/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter51/ │ │ │ │ ├── Chapter51Application.java │ │ │ │ ├── User.java │ │ │ │ └── UserRepository.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter51/ │ │ └── Chapter51ApplicationTests.java │ ├── chapter5-2/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter52/ │ │ │ │ ├── Chapter52Application.java │ │ │ │ ├── User.java │ │ │ │ └── UserRepository.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── ehcache.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter52/ │ │ └── Chapter52ApplicationTests.java │ ├── chapter5-3/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter53/ │ │ │ │ ├── Chapter53Application.java │ │ │ │ ├── User.java │ │ │ │ └── UserRepository.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ ├── ehcache-1.xml │ │ │ └── ehcache-2.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter53/ │ │ └── Chapter53ApplicationTests.java │ ├── chapter5-4/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter54/ │ │ │ │ ├── Chapter54Application.java │ │ │ │ ├── User.java │ │ │ │ └── UserRepository.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter54/ │ │ └── Chapter54ApplicationTests.java │ ├── chapter5-5/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter55/ │ │ │ └── Chapter55Application.java │ │ └── resources/ │ │ └── application.properties │ ├── chapter6-1/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter61/ │ │ │ │ ├── Chapter61Application.java │ │ │ │ ├── User.java │ │ │ │ └── UserRepository.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter61/ │ │ └── ApplicationTests.java │ ├── chapter6-2/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter62/ │ │ │ │ ├── Chapter62Application.java │ │ │ │ ├── Person.java │ │ │ │ └── PersonRepository.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter62/ │ │ │ └── ApplicationTests.java │ │ └── resources/ │ │ ├── application.properties │ │ └── ldap-server.ldif │ ├── chapter6-3/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter63/ │ │ │ │ ├── Chapter63Application.java │ │ │ │ └── Monitor.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter63/ │ │ └── ApplicationTests.java │ ├── chapter6-4/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter64/ │ │ │ │ ├── Chapter64Application.java │ │ │ │ ├── UserInfo.java │ │ │ │ └── UserInfoRepository.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter64/ │ │ └── ApplicationTests.java │ ├── chapter7-1/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter71/ │ │ │ ├── Chapter71Application.java │ │ │ └── ScheduledTasks.java │ │ └── resources/ │ │ └── application.properties │ ├── chapter7-2/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter72/ │ │ │ ├── Chapter72Application.java │ │ │ └── MySimpleJob.java │ │ └── resources/ │ │ └── application.properties │ ├── chapter7-3/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter73/ │ │ │ ├── Chapter73Application.java │ │ │ └── MyShardingJob.java │ │ └── resources/ │ │ └── application.properties │ ├── chapter7-4/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter74/ │ │ │ ├── Chapter74Application.java │ │ │ └── MySimpleJob.java │ │ └── resources/ │ │ └── application.properties │ ├── chapter7-5/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter75/ │ │ │ │ ├── AsyncTasks.java │ │ │ │ └── Chapter75Application.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter75/ │ │ └── Chapter75ApplicationTests.java │ ├── chapter7-6/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter76/ │ │ │ │ ├── AsyncTasks.java │ │ │ │ └── Chapter76Application.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter76/ │ │ └── Chapter76ApplicationTests.java │ ├── chapter7-7/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter77/ │ │ │ │ ├── AsyncTasks.java │ │ │ │ └── Chapter77Application.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter77/ │ │ └── Chapter77ApplicationTests.java │ ├── chapter7-8/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── didispace/ │ │ │ │ └── chapter78/ │ │ │ │ ├── AsyncTasks.java │ │ │ │ └── Chapter78Application.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── didispace/ │ │ └── chapter78/ │ │ └── Chapter78ApplicationTests.java │ ├── chapter8-1/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter81/ │ │ │ └── Chapter81Application.java │ │ └── resources/ │ │ └── application.properties │ ├── chapter8-2/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter82/ │ │ │ └── Chapter82Application.java │ │ └── resources/ │ │ ├── application.properties │ │ └── log4j2.xml │ ├── chapter8-3/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── didispace/ │ │ │ └── chapter83/ │ │ │ └── Chapter83Application.java │ │ └── resources/ │ │ ├── application.properties │ │ └── tinylog.properties │ └── pom.xml ├── README.md ├── README_zh.md └── pom.xml