├── .gitignore ├── README.md ├── reactor └── rsocket-server-demo │ ├── .gitignore │ ├── README.md │ ├── build.gradle │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── rsocketserver │ │ │ ├── Message.java │ │ │ ├── RSocketController.java │ │ │ └── RsocketServerApplication.java │ └── resources │ │ └── application.properties │ └── test │ ├── java │ └── com │ │ └── example │ │ └── rsocketserver │ │ ├── RSocketClient.java │ │ └── RsocketServerApplicationTests.java │ └── nodejs │ ├── README.md │ ├── package-lock.json │ ├── package.json │ └── rsocket-client.js ├── spring-amqp ├── README.md └── doc │ ├── RabbitMQ.mindnode │ ├── QuickLook │ │ └── Preview.jpg │ ├── contents.xml │ ├── resources │ │ ├── 673B2BEC-C2BF-4EE4-B4B5-CB8394DF1292.png │ │ ├── 693AACF6-EEFA-4754-938B-D9B5899272FC.png │ │ └── CD568B45-B60C-401F-85CA-CBC39E6CEEFA.png │ ├── style.mindnodestyle │ │ ├── contents.xml │ │ └── metadata.plist │ └── viewState.plist │ └── RabbitMq切Aws.key ├── spring-cloud-gateway ├── README.md ├── code │ └── gateway-example1 │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── settings.gradle │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── gateway │ │ │ │ └── gatewayexample │ │ │ │ └── GatewayExampleApplication.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── gateway │ │ └── gatewayexample │ │ └── GatewayExampleApplicationTests.java └── documents │ ├── Andy-cloud native & reactive.pdf │ ├── RSocket_JUG.pdf │ ├── SpencerGibb.RSocket.SpringCloudGateway.pdf │ ├── spring cloud gateway.mindnode │ ├── QuickLook │ │ └── Preview.jpg │ ├── contents.xml │ ├── style.mindnodestyle │ │ ├── contents.xml │ │ └── metadata.plist │ └── viewState.plist │ ├── 唐浩-Dragonwell_elasticheap(1).pdf │ └── 雷卷-rsocket-mesh-stream-iot-meetup.pdf ├── spring-data ├── README.md └── spring-data-jpa │ ├── E01_h2 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── User.java │ │ │ │ ├── UserController.java │ │ │ │ └── UserRepository.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ └── JpaApplicationTests.java │ │ └── resources │ │ └── JpaApplication.http │ ├── E01_mysql │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── User.java │ │ │ │ ├── UserController.java │ │ │ │ └── UserRepository.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── example1 │ │ │ └── UserRepositoryTest.java │ │ └── resources │ │ └── JpaApplication.http │ ├── E02_03_04 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── GenericsUtils │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── User.java │ │ │ │ ├── UserController.java │ │ │ │ ├── UserDto.java │ │ │ │ ├── UserOnlyName.java │ │ │ │ ├── UserOnlyNameEmailDto.java │ │ │ │ ├── UserOnlyNameEmailEntity.java │ │ │ │ ├── UserOnlyNameEmailEntityRepository.java │ │ │ │ └── UserRepository.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── example1 │ │ │ └── UserRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E05 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── User.java │ │ │ │ ├── UserController.java │ │ │ │ ├── UserDto.java │ │ │ │ ├── UserDtoRepository.java │ │ │ │ ├── UserExtend.java │ │ │ │ ├── UserExtendRepository.java │ │ │ │ ├── UserInfo.java │ │ │ │ ├── UserInfoID.java │ │ │ │ ├── UserInfoRepository.java │ │ │ │ ├── UserOnlyName.java │ │ │ │ ├── UserRepository.java │ │ │ │ ├── UserSimpleDto.java │ │ │ │ ├── UserTopic.java │ │ │ │ └── book │ │ │ │ ├── BlueBook.java │ │ │ │ ├── Book.java │ │ │ │ ├── RedBook.java │ │ │ │ └── RedBookRepository.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── example1 │ │ │ ├── RedBookRepositoryTest.java │ │ │ ├── UserInfoRepositoryTest.java │ │ │ ├── UserRepositoryQueryTest.java │ │ │ └── UserRepositoryTest.java │ │ └── resources │ │ └── JpaApplication.http │ ├── E06 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── User.java │ │ │ │ ├── UserController.java │ │ │ │ ├── UserDto.java │ │ │ │ ├── UserDtoRepository.java │ │ │ │ ├── UserExtend.java │ │ │ │ ├── UserExtendRepository.java │ │ │ │ ├── UserOnlyName.java │ │ │ │ ├── UserRepository.java │ │ │ │ └── UserSimpleDto.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── example1 │ │ │ ├── UserRepositoryQueryTest.java │ │ │ └── UserRepositoryTest.java │ │ └── resources │ │ └── JpaApplication.http │ ├── E07 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── Room.java │ │ │ │ ├── User.java │ │ │ │ ├── UserAddress.java │ │ │ │ ├── UserAddressRepository.java │ │ │ │ ├── UserInfo.java │ │ │ │ ├── UserInfoRepository.java │ │ │ │ ├── UserRepository.java │ │ │ │ └── UserRoomRelation.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── example1 │ │ │ ├── UserAddressRepositoryTest.java │ │ │ └── UserRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E08 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── Room.java │ │ │ │ ├── User.java │ │ │ │ ├── UserAddress.java │ │ │ │ ├── UserAddressRepository.java │ │ │ │ ├── UserController.java │ │ │ │ ├── UserInfo.java │ │ │ │ ├── UserInfoRepository.java │ │ │ │ ├── UserJson.java │ │ │ │ ├── UserJsonRepository.java │ │ │ │ ├── UserRepository.java │ │ │ │ ├── UserRoomRelation.java │ │ │ │ └── web │ │ │ │ └── MyConfig.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── example1 │ │ │ ├── JacksonTest.java │ │ │ ├── UserAddressRepositoryTest.java │ │ │ ├── UserJsonRepositoryTest.java │ │ │ └── UserRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E09 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── Room.java │ │ │ │ ├── User.java │ │ │ │ ├── UserAddress.java │ │ │ │ ├── UserAddressRepository.java │ │ │ │ ├── UserController.java │ │ │ │ ├── UserInfo.java │ │ │ │ ├── UserInfoRepository.java │ │ │ │ ├── UserRepository.java │ │ │ │ ├── UserRoomRelation.java │ │ │ │ └── web │ │ │ │ └── MyConfig.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── example1 │ │ │ ├── UserAddressRepositoryTest.java │ │ │ └── UserRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E10_ │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── Room.java │ │ │ │ ├── User.java │ │ │ │ ├── UserAddress.java │ │ │ │ ├── UserAddressRepository.java │ │ │ │ ├── UserInfo.java │ │ │ │ ├── UserInfoRepository.java │ │ │ │ ├── UserRepository.java │ │ │ │ ├── UserRoomRelation.java │ │ │ │ ├── spe │ │ │ │ ├── MySpecification.java │ │ │ │ ├── Operator.java │ │ │ │ ├── SearchCriteria.java │ │ │ │ └── SpecificationsBuilder.java │ │ │ │ └── web │ │ │ │ └── UserController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── example1 │ │ │ ├── UserAddressRepositoryTest.java │ │ │ ├── UserJpeTest.java │ │ │ └── UserRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E11 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── Room.java │ │ │ │ ├── User.java │ │ │ │ ├── UserAddress.java │ │ │ │ ├── UserAddressRepository.java │ │ │ │ ├── UserInfo.java │ │ │ │ ├── UserInfoRepository.java │ │ │ │ ├── UserRepository.java │ │ │ │ ├── UserRoomRelation.java │ │ │ │ ├── customized │ │ │ │ ├── BaseEntity.java │ │ │ │ ├── CustomerBaseRepository.java │ │ │ │ ├── CustomizedUserRepository.java │ │ │ │ └── CustomizedUserRepositoryImpl.java │ │ │ │ ├── spe │ │ │ │ ├── MySpecification.java │ │ │ │ ├── Operator.java │ │ │ │ ├── SearchCriteria.java │ │ │ │ └── SpecificationsBuilder.java │ │ │ │ └── web │ │ │ │ └── UserController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── example1 │ │ │ ├── UserAddressRepositoryTest.java │ │ │ ├── UserJpeTest.java │ │ │ └── UserRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E12 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── JpaConfiguration.java │ │ │ │ ├── MyAuditorAware.java │ │ │ │ ├── Room.java │ │ │ │ ├── User.java │ │ │ │ ├── UserAddress.java │ │ │ │ ├── UserAddressRepository.java │ │ │ │ ├── UserInfo.java │ │ │ │ ├── UserInfoRepository.java │ │ │ │ ├── UserRepository.java │ │ │ │ ├── UserRoomRelation.java │ │ │ │ └── base │ │ │ │ └── BaseEntity.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── example1 │ │ │ ├── UserAddressRepositoryTest.java │ │ │ └── UserRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E13 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── JpaConfiguration.java │ │ │ │ ├── MyAuditorAware.java │ │ │ │ ├── Room.java │ │ │ │ ├── User.java │ │ │ │ ├── UserAddress.java │ │ │ │ ├── UserAddressRepository.java │ │ │ │ ├── UserInfo.java │ │ │ │ ├── UserInfoRepository.java │ │ │ │ ├── UserRepository.java │ │ │ │ ├── UserRoomRelation.java │ │ │ │ └── base │ │ │ │ ├── BaseEntity.java │ │ │ │ ├── EntityLoggingListener.java │ │ │ │ └── UserListener.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── example1 │ │ │ ├── UserAddressRepositoryTest.java │ │ │ └── UserRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E14 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── MyAuditorAware.java │ │ │ │ ├── Room.java │ │ │ │ ├── User.java │ │ │ │ ├── UserAddress.java │ │ │ │ ├── UserAddressRepository.java │ │ │ │ ├── UserInfo.java │ │ │ │ ├── UserInfoRepository.java │ │ │ │ ├── UserRepository.java │ │ │ │ ├── UserRoomRelation.java │ │ │ │ ├── base │ │ │ │ ├── BaseEntity.java │ │ │ │ └── EntityLoggingListener.java │ │ │ │ ├── configuration │ │ │ │ ├── JpaConfiguration.java │ │ │ │ └── RetryConfiguration.java │ │ │ │ └── service │ │ │ │ ├── UserInfoService.java │ │ │ │ └── UserInfoServiceImpl.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── example1 │ │ │ ├── UserAddressRepositoryTest.java │ │ │ ├── UserInfoRepositoryTest.java │ │ │ ├── UserInfoServiceRetryTest.java │ │ │ ├── UserInfoServiceTest.java │ │ │ └── UserRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E15 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── MyAuditorAware.java │ │ │ │ ├── Room.java │ │ │ │ ├── User.java │ │ │ │ ├── UserAddress.java │ │ │ │ ├── UserAddressRepository.java │ │ │ │ ├── UserInfo.java │ │ │ │ ├── UserInfoInterface.java │ │ │ │ ├── UserInfoRepository.java │ │ │ │ ├── UserRepository.java │ │ │ │ ├── UserRoomRelation.java │ │ │ │ ├── base │ │ │ │ ├── BaseEntity.java │ │ │ │ └── EntityLoggingListener.java │ │ │ │ ├── configuration │ │ │ │ ├── JpaConfiguration.java │ │ │ │ └── RetryConfiguration.java │ │ │ │ ├── service │ │ │ │ ├── UserInfoService.java │ │ │ │ └── UserInfoServiceImpl.java │ │ │ │ ├── util │ │ │ │ └── PropertyUtils.java │ │ │ │ └── web │ │ │ │ ├── UserController.java │ │ │ │ └── UserInfoController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── example1 │ │ │ ├── UserAddressRepositoryTest.java │ │ │ ├── UserInfoRepositoryTest.java │ │ │ ├── UserInfoServiceRetryTest.java │ │ │ ├── UserInfoServiceTest.java │ │ │ ├── UserRepositoryTest.java │ │ │ └── UtilTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E16 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── MyAuditorAware.java │ │ │ │ ├── Room.java │ │ │ │ ├── User.java │ │ │ │ ├── UserAddress.java │ │ │ │ ├── UserAddressRepository.java │ │ │ │ ├── UserInfo.java │ │ │ │ ├── UserInfoInterface.java │ │ │ │ ├── UserInfoRepository.java │ │ │ │ ├── UserRepository.java │ │ │ │ ├── UserRoomRelation.java │ │ │ │ ├── base │ │ │ │ ├── BaseEntity.java │ │ │ │ └── EntityLoggingListener.java │ │ │ │ ├── common │ │ │ │ ├── MyPageRequest.java │ │ │ │ ├── MyPageableHandlerMethodArgumentResolver.java │ │ │ │ ├── MyWarpWithDataHandlerMethodReturnValueHandler.java │ │ │ │ ├── MyWebMvcConfigurer.java │ │ │ │ ├── UserInfoArgumentResolver.java │ │ │ │ └── WarpWithData.java │ │ │ │ ├── configuration │ │ │ │ ├── JpaConfiguration.java │ │ │ │ └── RetryConfiguration.java │ │ │ │ ├── service │ │ │ │ ├── UserInfoService.java │ │ │ │ └── UserInfoServiceImpl.java │ │ │ │ └── web │ │ │ │ ├── UserController.java │ │ │ │ └── UserInfoController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── example1 │ │ │ ├── UserAddressRepositoryTest.java │ │ │ ├── UserInfoRepositoryTest.java │ │ │ ├── UserInfoServiceRetryTest.java │ │ │ ├── UserInfoServiceTest.java │ │ │ └── UserRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E17 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── MyAuditorAware.java │ │ │ │ ├── Room.java │ │ │ │ ├── User.java │ │ │ │ ├── UserAddress.java │ │ │ │ ├── UserAddressRepository.java │ │ │ │ ├── UserInfo.java │ │ │ │ ├── UserInfoInterface.java │ │ │ │ ├── UserInfoRepository.java │ │ │ │ ├── UserRepository.java │ │ │ │ ├── UserRoomRelation.java │ │ │ │ ├── base │ │ │ │ ├── BaseEntity.java │ │ │ │ └── EntityLoggingListener.java │ │ │ │ ├── common │ │ │ │ ├── MyPageRequest.java │ │ │ │ ├── MyPageableHandlerMethodArgumentResolver.java │ │ │ │ ├── MyWarpWithDataHandlerMethodReturnValueHandler.java │ │ │ │ ├── MyWebMvcConfigurer.java │ │ │ │ └── WarpWithData.java │ │ │ │ ├── configuration │ │ │ │ ├── JpaConfiguration.java │ │ │ │ └── RetryConfiguration.java │ │ │ │ ├── service │ │ │ │ ├── UserInfoService.java │ │ │ │ └── UserInfoServiceImpl.java │ │ │ │ └── web │ │ │ │ ├── UserController.java │ │ │ │ └── UserInfoController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── example1 │ │ │ ├── UserAddressRepositoryTest.java │ │ │ ├── UserInfoRepositoryTest.java │ │ │ ├── UserInfoServiceRetryTest.java │ │ │ ├── UserInfoServiceTest.java │ │ │ └── UserRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E18 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── MyAuditorAware.java │ │ │ │ ├── UserInfoInterface.java │ │ │ │ ├── base │ │ │ │ ├── BaseEntity.java │ │ │ │ └── EntityLoggingListener.java │ │ │ │ ├── common │ │ │ │ ├── MyPageRequest.java │ │ │ │ ├── MyPageableHandlerMethodArgumentResolver.java │ │ │ │ ├── MyWarpWithDataHandlerMethodReturnValueHandler.java │ │ │ │ ├── MyWebMvcConfigurer.java │ │ │ │ └── WarpWithData.java │ │ │ │ ├── configuration │ │ │ │ ├── DataSource1Config.java │ │ │ │ ├── DataSource2Config.java │ │ │ │ ├── DataSourceRoutingHolder.java │ │ │ │ ├── JpaConfiguration.java │ │ │ │ ├── RetryConfiguration.java │ │ │ │ ├── RoutingDataSource.java │ │ │ │ ├── RoutingDataSourceConfig.java │ │ │ │ └── RoutingDataSourceEnum.java │ │ │ │ ├── db1 │ │ │ │ ├── SexEnum.java │ │ │ │ ├── User.java │ │ │ │ ├── UserAddress.java │ │ │ │ ├── UserAddressRepository.java │ │ │ │ └── UserRepository.java │ │ │ │ ├── db2 │ │ │ │ ├── UserInfo.java │ │ │ │ └── UserInfoRepository.java │ │ │ │ ├── service │ │ │ │ ├── UserInfoService.java │ │ │ │ └── UserInfoServiceImpl.java │ │ │ │ └── web │ │ │ │ ├── DataSourceInterceptor.java │ │ │ │ ├── UserController.java │ │ │ │ └── UserInfoController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── example1 │ │ │ ├── UserAddressRepositoryTest.java │ │ │ ├── UserInfoRepositoryTest.java │ │ │ ├── UserInfoServiceRetryTest.java │ │ │ ├── UserInfoServiceTest.java │ │ │ └── UserRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E19 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── example1 │ │ │ │ ├── MyAuditorAware.java │ │ │ │ ├── UserInfoInterface.java │ │ │ │ ├── base │ │ │ │ ├── BaseEntity.java │ │ │ │ └── EntityLoggingListener.java │ │ │ │ ├── common │ │ │ │ ├── MyPageRequest.java │ │ │ │ ├── MyPageableHandlerMethodArgumentResolver.java │ │ │ │ ├── MyWarpWithDataHandlerMethodReturnValueHandler.java │ │ │ │ ├── MyWebMvcConfigurer.java │ │ │ │ └── WarpWithData.java │ │ │ │ ├── configuration │ │ │ │ ├── DataSource1Config.java │ │ │ │ ├── DataSource2Config.java │ │ │ │ ├── DataSourceRoutingHolder.java │ │ │ │ ├── JpaConfiguration.java │ │ │ │ ├── RetryConfiguration.java │ │ │ │ ├── RoutingDataSource.java │ │ │ │ ├── RoutingDataSourceConfig.java │ │ │ │ └── RoutingDataSourceEnum.java │ │ │ │ ├── db1 │ │ │ │ ├── SexEnum.java │ │ │ │ ├── User.java │ │ │ │ ├── UserAddress.java │ │ │ │ ├── UserAddressRepository.java │ │ │ │ └── UserRepository.java │ │ │ │ ├── db2 │ │ │ │ ├── UserInfo.java │ │ │ │ └── UserInfoRepository.java │ │ │ │ ├── service │ │ │ │ ├── UserInfoService.java │ │ │ │ └── UserInfoServiceImpl.java │ │ │ │ └── web │ │ │ │ ├── DataSourceInterceptor.java │ │ │ │ ├── UserController.java │ │ │ │ └── UserInfoController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── example1 │ │ │ ├── UserAddressRepositoryTest.java │ │ │ ├── UserInfoRepositoryTest.java │ │ │ ├── UserInfoServiceRetryTest.java │ │ │ ├── UserInfoServiceTest.java │ │ │ └── UserRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E20 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ └── demo │ │ │ │ ├── DemoApplication.java │ │ │ │ ├── config │ │ │ │ ├── JpaConfiguration.java │ │ │ │ └── MyAuditorAware.java │ │ │ │ ├── core │ │ │ │ └── BaseEntity.java │ │ │ │ ├── db │ │ │ │ ├── UserInfo.java │ │ │ │ └── UserInfoRepository.java │ │ │ │ ├── service │ │ │ │ ├── UserInfoService.java │ │ │ │ └── UserInfoServiceImpl.java │ │ │ │ └── web │ │ │ │ └── UserInfoController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ └── demo │ │ │ └── DemoApplicationTests.java │ │ └── resources │ │ └── JpaApplication.http │ ├── E21 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ └── demo │ │ │ │ ├── DemoApplication.java │ │ │ │ ├── config │ │ │ │ ├── JpaConfiguration.java │ │ │ │ └── MyAuditorAware.java │ │ │ │ ├── core │ │ │ │ └── BaseEntity.java │ │ │ │ ├── db │ │ │ │ ├── UserInfo.java │ │ │ │ └── UserInfoRepository.java │ │ │ │ ├── service │ │ │ │ ├── UserInfoService.java │ │ │ │ └── UserInfoServiceImpl.java │ │ │ │ └── web │ │ │ │ └── UserInfoController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ └── demo │ │ │ ├── DemoApplicationTests.java │ │ │ └── UserInfoRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E22 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ └── demo │ │ │ │ ├── DemoApplication.java │ │ │ │ ├── config │ │ │ │ ├── JpaConfiguration.java │ │ │ │ └── MyAuditorAware.java │ │ │ │ ├── core │ │ │ │ └── BaseEntity.java │ │ │ │ ├── db │ │ │ │ ├── UserInfo.java │ │ │ │ └── UserInfoRepository.java │ │ │ │ ├── service │ │ │ │ ├── UserInfoService.java │ │ │ │ └── UserInfoServiceImpl.java │ │ │ │ └── web │ │ │ │ └── UserInfoController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ └── demo │ │ │ ├── DemoApplicationTests.java │ │ │ └── UserInfoRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E23 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ └── demo │ │ │ │ ├── DemoApplication.java │ │ │ │ ├── config │ │ │ │ ├── AsyncConfiguration.java │ │ │ │ ├── JpaConfiguration.java │ │ │ │ └── MyAuditorAware.java │ │ │ │ ├── core │ │ │ │ ├── BaseEntity.java │ │ │ │ └── TransactionHelper.java │ │ │ │ ├── db │ │ │ │ ├── UserInfo.java │ │ │ │ └── UserInfoRepository.java │ │ │ │ ├── service │ │ │ │ ├── UserInfoService.java │ │ │ │ └── UserInfoServiceImpl.java │ │ │ │ └── web │ │ │ │ └── UserInfoController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ └── demo │ │ │ ├── DemoApplicationTests.java │ │ │ └── UserInfoRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E24 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ └── demo │ │ │ │ ├── DemoApplication.java │ │ │ │ ├── config │ │ │ │ ├── AsyncConfiguration.java │ │ │ │ ├── JpaConfiguration.java │ │ │ │ └── MyAuditorAware.java │ │ │ │ ├── core │ │ │ │ ├── BaseEntity.java │ │ │ │ └── TransactionHelper.java │ │ │ │ ├── db │ │ │ │ ├── Address.java │ │ │ │ ├── UserInfo.java │ │ │ │ └── UserInfoRepository.java │ │ │ │ ├── service │ │ │ │ ├── UserInfoService.java │ │ │ │ ├── UserInfoServiceImpl.java │ │ │ │ └── dto │ │ │ │ │ └── UserInfoDto.java │ │ │ │ └── web │ │ │ │ └── UserInfoController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ └── demo │ │ │ ├── DemoApplicationTests.java │ │ │ └── UserInfoRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E25 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ └── demo │ │ │ │ ├── DemoApplication.java │ │ │ │ ├── config │ │ │ │ ├── AsyncConfiguration.java │ │ │ │ ├── JpaConfiguration.java │ │ │ │ └── MyAuditorAware.java │ │ │ │ ├── core │ │ │ │ ├── BaseEntity.java │ │ │ │ └── TransactionHelper.java │ │ │ │ ├── db │ │ │ │ ├── Address.java │ │ │ │ ├── AddressRepository.java │ │ │ │ ├── Room.java │ │ │ │ ├── UserInfo.java │ │ │ │ └── UserInfoRepository.java │ │ │ │ ├── service │ │ │ │ ├── UserInfoService.java │ │ │ │ ├── UserInfoServiceImpl.java │ │ │ │ └── dto │ │ │ │ │ └── UserInfoDto.java │ │ │ │ └── web │ │ │ │ └── UserInfoController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ └── demo │ │ │ ├── DemoApplicationTests.java │ │ │ └── UserInfoRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E26 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ └── demo │ │ │ │ ├── DemoApplication.java │ │ │ │ ├── config │ │ │ │ ├── AsyncConfiguration.java │ │ │ │ ├── DemoProperties.java │ │ │ │ ├── JpaConfiguration.java │ │ │ │ └── MyAuditorAware.java │ │ │ │ ├── core │ │ │ │ ├── BaseEntity.java │ │ │ │ └── TransactionHelper.java │ │ │ │ ├── db │ │ │ │ ├── Address.java │ │ │ │ ├── AddressRepository.java │ │ │ │ ├── Room.java │ │ │ │ ├── UserInfo.java │ │ │ │ └── UserInfoRepository.java │ │ │ │ ├── service │ │ │ │ ├── UserInfoService.java │ │ │ │ ├── UserInfoServiceImpl.java │ │ │ │ └── dto │ │ │ │ │ └── UserInfoDto.java │ │ │ │ └── web │ │ │ │ └── UserInfoController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ └── demo │ │ │ ├── DemoApplicationTests.java │ │ │ ├── DemoPropertiesTest.java │ │ │ ├── SpELTest.java │ │ │ └── UserInfoRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E27 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ └── demo │ │ │ │ ├── DemoApplication.java │ │ │ │ ├── config │ │ │ │ ├── JpaConfiguration.java │ │ │ │ └── MyAuditorAware.java │ │ │ │ ├── core │ │ │ │ ├── BaseEntity.java │ │ │ │ └── TransactionHelper.java │ │ │ │ ├── db │ │ │ │ ├── Address.java │ │ │ │ ├── AddressRepository.java │ │ │ │ ├── Room.java │ │ │ │ ├── UserInfo.java │ │ │ │ └── UserInfoRepository.java │ │ │ │ ├── service │ │ │ │ ├── UserInfoService.java │ │ │ │ ├── UserInfoServiceImpl.java │ │ │ │ └── dto │ │ │ │ │ └── UserInfoDto.java │ │ │ │ └── web │ │ │ │ └── UserInfoController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ └── demo │ │ │ ├── DemoApplicationTests.java │ │ │ └── UserInfoRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E28 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ └── demo │ │ │ │ ├── DemoApplication.java │ │ │ │ ├── config │ │ │ │ ├── CacheConfiguration.java │ │ │ │ ├── JpaConfiguration.java │ │ │ │ ├── MyAuditorAware.java │ │ │ │ ├── MyCacheProperties.java │ │ │ │ ├── MyRedisCacheManagerBuilderCustomizer.java │ │ │ │ └── MyRedisCachingConfigurerSupport.java │ │ │ │ ├── core │ │ │ │ ├── BaseEntity.java │ │ │ │ └── TransactionHelper.java │ │ │ │ ├── db │ │ │ │ ├── Address.java │ │ │ │ ├── AddressRepository.java │ │ │ │ ├── Room.java │ │ │ │ ├── UserInfo.java │ │ │ │ └── UserInfoRepository.java │ │ │ │ ├── service │ │ │ │ ├── UserInfoService.java │ │ │ │ ├── UserInfoServiceImpl.java │ │ │ │ └── dto │ │ │ │ │ └── UserInfoDto.java │ │ │ │ └── web │ │ │ │ └── UserInfoController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ └── demo │ │ │ ├── DemoApplicationTests.java │ │ │ └── UserInfoRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E29 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ └── demo │ │ │ │ ├── DemoApplication.java │ │ │ │ ├── config │ │ │ │ ├── JpaConfiguration.java │ │ │ │ ├── MyAuditorAware.java │ │ │ │ └── SpringFoxConfiguration.java │ │ │ │ ├── core │ │ │ │ ├── BaseEntity.java │ │ │ │ └── TransactionHelper.java │ │ │ │ ├── db │ │ │ │ ├── Address.java │ │ │ │ ├── AddressRepository.java │ │ │ │ ├── Room.java │ │ │ │ ├── UserInfo.java │ │ │ │ └── UserInfoRepository.java │ │ │ │ ├── service │ │ │ │ ├── UserInfoService.java │ │ │ │ ├── UserInfoServiceImpl.java │ │ │ │ └── dto │ │ │ │ │ └── UserInfoDto.java │ │ │ │ └── web │ │ │ │ └── UserInfoController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ └── demo │ │ │ ├── DemoApplicationTests.java │ │ │ └── UserInfoRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E30 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ └── demo │ │ │ │ ├── DemoApplication.java │ │ │ │ ├── config │ │ │ │ ├── JpaConfiguration.java │ │ │ │ ├── MyAuditorAware.java │ │ │ │ └── SpringFoxConfiguration.java │ │ │ │ ├── core │ │ │ │ ├── BaseEntity.java │ │ │ │ └── TransactionHelper.java │ │ │ │ ├── db │ │ │ │ ├── Address.java │ │ │ │ ├── AddressRepository.java │ │ │ │ ├── Room.java │ │ │ │ ├── UserInfo.java │ │ │ │ └── UserInfoRepository.java │ │ │ │ ├── service │ │ │ │ ├── UserInfoService.java │ │ │ │ ├── UserInfoServiceImpl.java │ │ │ │ └── dto │ │ │ │ │ └── UserInfoDto.java │ │ │ │ └── web │ │ │ │ └── UserInfoController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ └── demo │ │ │ ├── AddressRepositoryTest.java │ │ │ ├── DemoApplicationTests.java │ │ │ ├── UserInfoControllerIntegrationTest.java │ │ │ ├── UserInfoControllerTest.java │ │ │ ├── UserInfoRepositoryTest.java │ │ │ ├── UserInfoServiceIntegrationTest.java │ │ │ └── UserInfoServiceTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ ├── E31 │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── data │ │ │ │ └── es │ │ │ │ └── demo │ │ │ │ ├── DemoApplication.java │ │ │ │ ├── TopicController.java │ │ │ │ ├── es │ │ │ │ ├── Author.java │ │ │ │ ├── ElasticSearchConfiguration.java │ │ │ │ ├── Topic.java │ │ │ │ └── TopicRepository.java │ │ │ │ └── jpa │ │ │ │ ├── JpaConfiguration.java │ │ │ │ ├── User.java │ │ │ │ └── UserRepository.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── data │ │ └── es │ │ └── demo │ │ ├── DemoApplicationTests.java │ │ ├── ElasticSearchRepositoryTest.java │ │ └── UserRepositoryTest.java │ ├── README.md │ ├── quick_start │ ├── .gitignore │ ├── README.md │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── jpa │ │ │ │ ├── JpaApplication.java │ │ │ │ └── quick │ │ │ │ ├── configuration │ │ │ │ ├── JpaConfiguration.java │ │ │ │ └── SpringFoxConfiguration.java │ │ │ │ ├── core │ │ │ │ ├── BaseEntity.java │ │ │ │ ├── BaseService.java │ │ │ │ ├── BaseServiceImpl.java │ │ │ │ └── MyAuditorAware.java │ │ │ │ ├── dao │ │ │ │ ├── AddressRepository.java │ │ │ │ ├── ProductionRepository.java │ │ │ │ ├── RoomRepository.java │ │ │ │ └── UserInfoRepository.java │ │ │ │ ├── entity │ │ │ │ ├── Address.java │ │ │ │ ├── Production.java │ │ │ │ ├── Room.java │ │ │ │ └── UserInfo.java │ │ │ │ ├── service │ │ │ │ ├── RoomService.java │ │ │ │ ├── UserInfoService.java │ │ │ │ └── impl │ │ │ │ │ ├── RoomServiceImpl.java │ │ │ │ │ └── UserInfoServiceImpl.java │ │ │ │ └── web │ │ │ │ ├── BaseController.java │ │ │ │ ├── RoomController.java │ │ │ │ └── UserInfoController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ ├── JpaApplicationTests.java │ │ │ └── quick │ │ │ └── UserInfoRepositoryTest.java │ │ └── resources │ │ ├── JpaApplication.http │ │ └── application.properties │ └── sharding-demo │ ├── .gitignore │ ├── build.gradle │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── jpa │ │ │ └── sharding │ │ │ └── demo │ │ │ ├── DemoApplication.java │ │ │ ├── ShardingConfig.java │ │ │ ├── UserAddress.java │ │ │ ├── UserAddressRepository.java │ │ │ ├── UserInfo.java │ │ │ └── UserInfoRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── jpa │ └── sharding │ └── demo │ ├── DemoApplicationTests.java │ └── UserInfoRepositoryTest.java └── spring-sleuth-demo ├── logging-starter ├── .gitignore ├── README.md ├── build.gradle ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── alo7 │ │ │ └── framework │ │ │ ├── logging │ │ │ ├── config │ │ │ │ ├── LoggingAutoConfiguration.java │ │ │ │ ├── LoggingConfigurer.java │ │ │ │ └── SleuthHealthIndicatorAutoConfiguration.java │ │ │ ├── filter │ │ │ │ └── LoggingFilter.java │ │ │ ├── health │ │ │ │ └── SleuthHealthIndicator.java │ │ │ ├── interceptor │ │ │ │ └── RequestLoggingInterceptor.java │ │ │ └── starter │ │ │ │ └── package-info.java │ │ │ └── tracing │ │ │ └── jms │ │ │ ├── config │ │ │ └── TracingJmsAutoConfiguration.java │ │ │ └── package-info.java │ └── resources │ │ └── logback.xml │ └── test │ └── java │ └── com │ ├── TestApplication.java │ └── alo7 │ └── framework │ └── logging │ └── starter │ └── LoggingStarterApplicationTests.java └── rabbit ├── rabbit_produce ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── rabbit_produce │ │ │ └── RabbitProduceApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── rabbit_produce │ └── RabbitProduceApplicationTests.java ├── rabbitmq_consumer ├── .gitignore ├── build.gradle ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── rabbitmq_consumer │ │ │ ├── Consumer.java │ │ │ ├── RabbitMqSenderController.java │ │ │ └── RabbitmqConsumerApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── example │ └── rabbitmq_consumer │ └── RabbitmqConsumerApplicationTests.java └── rabbitmq_sender ├── .gitignore ├── build.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src ├── main ├── java │ └── com │ │ └── example │ │ └── rabbitmq_sender │ │ ├── Producer.java │ │ ├── RabbitMqSenderController.java │ │ ├── RabbitTemplateSender.java │ │ └── RabbitmqSenderApplication.java └── resources │ ├── application.properties │ └── logback.xml └── test └── java └── com └── example └── rabbitmq_sender └── RabbitmqSenderApplicationTests.java /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /build/ 3 | !gradle/wrapper/gradle-wrapper.jar 4 | 5 | ### STS ### 6 | .apt_generated 7 | .classpath 8 | .factorypath 9 | .project 10 | .settings 11 | .springBeans 12 | .sts4-cache 13 | 14 | ### IntelliJ IDEA ### 15 | .idea 16 | *.iws 17 | *.iml 18 | *.ipr 19 | /out/ 20 | 21 | /logs/ 22 | 23 | ### NetBeans ### 24 | /nbproject/private/ 25 | /nbbuild/ 26 | /dist/ 27 | /nbdist/ 28 | /.nb-gradle/ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # spring boot cloud example experience 2 | 本项目以后随机缘,不断更新中...... 3 | JAVA QQ交流群:559701472 4 | -------------------------------------------------------------------------------- /reactor/rsocket-server-demo/README.md: -------------------------------------------------------------------------------- 1 | Rsocket总体来说文档太少了,都说支持,但是不够详细;目前Message的转化有问题,都用String的话,server和client 是通的 -------------------------------------------------------------------------------- /reactor/rsocket-server-demo/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/reactor/rsocket-server-demo/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /reactor/rsocket-server-demo/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /reactor/rsocket-server-demo/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'rsocket-server' 2 | -------------------------------------------------------------------------------- /reactor/rsocket-server-demo/src/main/java/com/example/rsocketserver/RsocketServerApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.rsocketserver; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class RsocketServerApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(RsocketServerApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /reactor/rsocket-server-demo/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.rsocket.server.port=9898 2 | #spring.rsocket.server.mapping-path=/rsocket 3 | spring.rsocket.server.transport=tcp 4 | -------------------------------------------------------------------------------- /reactor/rsocket-server-demo/src/test/java/com/example/rsocketserver/RsocketServerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.rsocketserver; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class RsocketServerApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /reactor/rsocket-server-demo/src/test/nodejs/README.md: -------------------------------------------------------------------------------- 1 | `npm install rsocket-core rsocket-websocket-client` 2 | 3 | -------------------------------------------------------------------------------- /reactor/rsocket-server-demo/src/test/nodejs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rk", 3 | "version": "1.0.0", 4 | "description": "`npm install rsocket-core rsocket-websocket-client`", 5 | "main": "aa.js", 6 | "type": "module", 7 | "dependencies": { 8 | "rsocket-core": "^0.0.27", 9 | "rsocket-tcp-client": "^0.0.27", 10 | "rsocket-websocket-client": "^0.0.27" 11 | }, 12 | "scripts": { 13 | "test": "echo \"Error: no test specified\" && exit 1" 14 | }, 15 | "author": "", 16 | "license": "ISC" 17 | } 18 | -------------------------------------------------------------------------------- /spring-amqp/doc/RabbitMQ.mindnode/QuickLook/Preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-amqp/doc/RabbitMQ.mindnode/QuickLook/Preview.jpg -------------------------------------------------------------------------------- /spring-amqp/doc/RabbitMQ.mindnode/contents.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-amqp/doc/RabbitMQ.mindnode/contents.xml -------------------------------------------------------------------------------- /spring-amqp/doc/RabbitMQ.mindnode/resources/673B2BEC-C2BF-4EE4-B4B5-CB8394DF1292.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-amqp/doc/RabbitMQ.mindnode/resources/673B2BEC-C2BF-4EE4-B4B5-CB8394DF1292.png -------------------------------------------------------------------------------- /spring-amqp/doc/RabbitMQ.mindnode/resources/693AACF6-EEFA-4754-938B-D9B5899272FC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-amqp/doc/RabbitMQ.mindnode/resources/693AACF6-EEFA-4754-938B-D9B5899272FC.png -------------------------------------------------------------------------------- /spring-amqp/doc/RabbitMQ.mindnode/resources/CD568B45-B60C-401F-85CA-CBC39E6CEEFA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-amqp/doc/RabbitMQ.mindnode/resources/CD568B45-B60C-401F-85CA-CBC39E6CEEFA.png -------------------------------------------------------------------------------- /spring-amqp/doc/RabbitMQ.mindnode/style.mindnodestyle/contents.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-amqp/doc/RabbitMQ.mindnode/style.mindnodestyle/contents.xml -------------------------------------------------------------------------------- /spring-amqp/doc/RabbitMQ.mindnode/style.mindnodestyle/metadata.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-amqp/doc/RabbitMQ.mindnode/style.mindnodestyle/metadata.plist -------------------------------------------------------------------------------- /spring-amqp/doc/RabbitMQ.mindnode/viewState.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-amqp/doc/RabbitMQ.mindnode/viewState.plist -------------------------------------------------------------------------------- /spring-amqp/doc/RabbitMq切Aws.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-amqp/doc/RabbitMq切Aws.key -------------------------------------------------------------------------------- /spring-cloud-gateway/README.md: -------------------------------------------------------------------------------- 1 | ## spring-cloud-gateway 2 | spring cloud gateway生态圈分享,欢迎一起总结和学习 3 | -------------------------------------------------------------------------------- /spring-cloud-gateway/code/gateway-example1/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | .gradle 3 | build/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | !**/src/main/** 6 | !**/src/test/** 7 | 8 | ### STS ### 9 | .apt_generated 10 | .classpath 11 | .factorypath 12 | .project 13 | .settings 14 | .springBeans 15 | .sts4-cache 16 | 17 | ### IntelliJ IDEA ### 18 | .idea 19 | *.iws 20 | *.iml 21 | *.ipr 22 | out/ 23 | 24 | ### NetBeans ### 25 | /nbproject/private/ 26 | /nbbuild/ 27 | /dist/ 28 | /nbdist/ 29 | /.nb-gradle/ 30 | 31 | ### VS Code ### 32 | .vscode/ 33 | -------------------------------------------------------------------------------- /spring-cloud-gateway/code/gateway-example1/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-cloud-gateway/code/gateway-example1/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-cloud-gateway/code/gateway-example1/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.0.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /spring-cloud-gateway/code/gateway-example1/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'gateway-example' 2 | -------------------------------------------------------------------------------- /spring-cloud-gateway/code/gateway-example1/src/main/java/com/example/gateway/gatewayexample/GatewayExampleApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.gateway.gatewayexample; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class GatewayExampleApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(GatewayExampleApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-cloud-gateway/code/gateway-example1/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-cloud-gateway/code/gateway-example1/src/test/java/com/example/gateway/gatewayexample/GatewayExampleApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.gateway.gatewayexample; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class GatewayExampleApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-cloud-gateway/documents/Andy-cloud native & reactive.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-cloud-gateway/documents/Andy-cloud native & reactive.pdf -------------------------------------------------------------------------------- /spring-cloud-gateway/documents/RSocket_JUG.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-cloud-gateway/documents/RSocket_JUG.pdf -------------------------------------------------------------------------------- /spring-cloud-gateway/documents/SpencerGibb.RSocket.SpringCloudGateway.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-cloud-gateway/documents/SpencerGibb.RSocket.SpringCloudGateway.pdf -------------------------------------------------------------------------------- /spring-cloud-gateway/documents/spring cloud gateway.mindnode/QuickLook/Preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-cloud-gateway/documents/spring cloud gateway.mindnode/QuickLook/Preview.jpg -------------------------------------------------------------------------------- /spring-cloud-gateway/documents/spring cloud gateway.mindnode/style.mindnodestyle/contents.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-cloud-gateway/documents/spring cloud gateway.mindnode/style.mindnodestyle/contents.xml -------------------------------------------------------------------------------- /spring-cloud-gateway/documents/spring cloud gateway.mindnode/style.mindnodestyle/metadata.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-cloud-gateway/documents/spring cloud gateway.mindnode/style.mindnodestyle/metadata.plist -------------------------------------------------------------------------------- /spring-cloud-gateway/documents/spring cloud gateway.mindnode/viewState.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-cloud-gateway/documents/spring cloud gateway.mindnode/viewState.plist -------------------------------------------------------------------------------- /spring-cloud-gateway/documents/唐浩-Dragonwell_elasticheap(1).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-cloud-gateway/documents/唐浩-Dragonwell_elasticheap(1).pdf -------------------------------------------------------------------------------- /spring-cloud-gateway/documents/雷卷-rsocket-mesh-stream-iot-meetup.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-cloud-gateway/documents/雷卷-rsocket-mesh-stream-iot-meetup.pdf -------------------------------------------------------------------------------- /spring-data/README.md: -------------------------------------------------------------------------------- 1 | # spring data 2 | 里面会随着经验值增加一些spring data的demo或者资料 3 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_h2/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | .gradle 3 | build/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | !**/src/main/**/build/ 6 | !**/src/test/**/build/ 7 | 8 | ### STS ### 9 | .apt_generated 10 | .classpath 11 | .factorypath 12 | .project 13 | .settings 14 | .springBeans 15 | .sts4-cache 16 | 17 | ### IntelliJ IDEA ### 18 | .idea 19 | *.iws 20 | *.iml 21 | *.ipr 22 | out/ 23 | !**/src/main/**/out/ 24 | !**/src/test/**/out/ 25 | 26 | ### NetBeans ### 27 | /nbproject/private/ 28 | /nbbuild/ 29 | /dist/ 30 | /nbdist/ 31 | /.nb-gradle/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_h2/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E01_h2/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_h2/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_h2/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_h2/src/main/java/com/example/jpa/JpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class JpaApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(JpaApplication.class, args); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_h2/src/main/java/com/example/jpa/example1/User.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import lombok.Data; 4 | 5 | import javax.persistence.Entity; 6 | import javax.persistence.GeneratedValue; 7 | import javax.persistence.GenerationType; 8 | import javax.persistence.Id; 9 | 10 | @Entity 11 | @Data 12 | public class User { 13 | @Id 14 | @GeneratedValue(strategy= GenerationType.AUTO) 15 | private Long id; 16 | private String name; 17 | private String email; 18 | } 19 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_h2/src/main/java/com/example/jpa/example1/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_h2/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_h2/src/test/java/com/example/jpa/JpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_h2/src/test/resources/JpaApplication.http: -------------------------------------------------------------------------------- 1 | POST /api/v1/user HTTP/1.1 2 | Host: 127.0.0.1:8080 3 | Content-Type: application/json 4 | Cache-Control: no-cache 5 | 6 | {"name":"jack","email":"123@126.com"} 7 | 8 | ####### 9 | 10 | GET http://127.0.0.1:8080/api/v1/users?size=3&page=0 11 | 12 | ### 13 | 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_mysql/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E01_mysql/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_mysql/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_mysql/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_mysql/src/main/java/com/example/jpa/JpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class JpaApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(JpaApplication.class, args); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_mysql/src/main/java/com/example/jpa/example1/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_mysql/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.datasource.url=jdbc:mysql://localhost:3306/test 2 | spring.datasource.username=root 3 | spring.datasource.password=root 4 | spring.jpa.generate-ddl=true -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_mysql/src/test/java/com/example/jpa/JpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E01_mysql/src/test/resources/JpaApplication.http: -------------------------------------------------------------------------------- 1 | POST /api/v1/user HTTP/1.1 2 | Host: 127.0.0.1:8080 3 | Content-Type: application/json 4 | Cache-Control: no-cache 5 | 6 | {"name":"jack","email":"123@126.com"} 7 | 8 | ####### 9 | 10 | GET http://127.0.0.1:8080/api/v1/users?size=3&page=0 11 | 12 | ### 13 | 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E02_03_04/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E02_03_04/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E02_03_04/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E02_03_04/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E02_03_04/src/main/java/com/example/jpa/JpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class JpaApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(JpaApplication.class, args); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E02_03_04/src/main/java/com/example/jpa/example1/UserOnlyName.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | public interface UserOnlyName { 4 | String getName(); 5 | String getEmail(); 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E02_03_04/src/main/java/com/example/jpa/example1/UserOnlyNameEmailDto.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | public class UserOnlyNameEmailDto { 11 | private String name,email; 12 | 13 | public UserOnlyNameEmailDto() { 14 | } 15 | } 16 | 17 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E02_03_04/src/main/java/com/example/jpa/example1/UserOnlyNameEmailEntityRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserOnlyNameEmailEntityRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E02_03_04/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.datasource.url=jdbc:mysql://localhost:3306/test 2 | spring.datasource.username=root 3 | spring.datasource.password=root 4 | spring.jpa.generate-ddl=true 5 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E02_03_04/src/test/java/com/example/jpa/JpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E02_03_04/src/test/resources/JpaApplication.http: -------------------------------------------------------------------------------- 1 | POST /api/v1/user HTTP/1.1 2 | Host: 127.0.0.1:8080 3 | Content-Type: application/json 4 | Cache-Control: no-cache 5 | 6 | {"name":"jack","email":"123@126.com"} 7 | 8 | ####### 9 | 10 | GET http://127.0.0.1:8080/api/v1/users?size=3&page=0 11 | 12 | ### 13 | 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E02_03_04/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=false -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | .gradle 3 | build/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | !**/src/main/**/build/ 6 | !**/src/test/**/build/ 7 | 8 | ### STS ### 9 | .apt_generated 10 | .classpath 11 | .factorypath 12 | .project 13 | .settings 14 | .springBeans 15 | .sts4-cache 16 | 17 | ### IntelliJ IDEA ### 18 | .idea 19 | *.iws 20 | *.iml 21 | *.ipr 22 | out/ 23 | !**/src/main/**/out/ 24 | !**/src/test/**/out/ 25 | 26 | ### NetBeans ### 27 | /nbproject/private/ 28 | /nbbuild/ 29 | /dist/ 30 | /nbdist/ 31 | /.nb-gradle/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E05/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/src/main/java/com/example/jpa/JpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.data.jpa.repository.config.EnableJpaRepositories; 6 | import org.springframework.data.repository.query.QueryLookupStrategy; 7 | 8 | @SpringBootApplication 9 | public class JpaApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(JpaApplication.class, args); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/src/main/java/com/example/jpa/example1/UserDto.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.AllArgsConstructor; 3 | import lombok.Builder; 4 | import lombok.Data; 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | public class UserDto { 9 | private String name,email,idCard; 10 | } 11 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/src/main/java/com/example/jpa/example1/UserExtendRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserExtendRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/src/main/java/com/example/jpa/example1/UserInfoID.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import javax.persistence.Embeddable; 9 | import java.io.Serializable; 10 | @Data 11 | @Builder 12 | @AllArgsConstructor 13 | @NoArgsConstructor 14 | @Embeddable 15 | public class UserInfoID implements Serializable { 16 | private String name,telephone; 17 | } 18 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/src/main/java/com/example/jpa/example1/UserInfoRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserInfoRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/src/main/java/com/example/jpa/example1/UserOnlyName.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | public interface UserOnlyName { 4 | String getName(); 5 | String getEmail(); 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/src/main/java/com/example/jpa/example1/UserSimpleDto.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | public interface UserSimpleDto { 3 | String getName(); 4 | String getEmail(); 5 | String getIdCard(); 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/src/main/java/com/example/jpa/example1/book/BlueBook.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.book; 2 | import lombok.Data; 3 | import lombok.EqualsAndHashCode; 4 | 5 | import javax.persistence.Entity; 6 | @Entity 7 | @Data 8 | @EqualsAndHashCode(callSuper=false) 9 | public class BlueBook extends Book{ 10 | private String blueMark; 11 | } 12 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/src/main/java/com/example/jpa/example1/book/Book.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.book; 2 | import lombok.Data; 3 | import javax.persistence.*; 4 | @Entity(name="book") 5 | @Data 6 | @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) 7 | @Table 8 | public class Book { 9 | @Id 10 | @GeneratedValue(strategy= GenerationType.AUTO) 11 | private Long id; 12 | private String title; 13 | } -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/src/main/java/com/example/jpa/example1/book/RedBook.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.book; 2 | import lombok.Data; 3 | import lombok.EqualsAndHashCode; 4 | import javax.persistence.Entity; 5 | @Entity 6 | @Data 7 | @EqualsAndHashCode(callSuper=false) 8 | public class RedBook extends Book { 9 | private String redMark; 10 | } 11 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/src/main/java/com/example/jpa/example1/book/RedBookRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.book; 2 | import org.springframework.data.jpa.repository.JpaRepository; 3 | public interface RedBookRepository extends JpaRepository { 4 | } 5 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 2 | #spring.datasource.username=root 3 | #spring.datasource.password=root 4 | #spring.jpa.generate-ddl=true 5 | spring.jpa.show-sql=false 6 | #logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/src/test/java/com/example/jpa/JpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E05/src/test/resources/JpaApplication.http: -------------------------------------------------------------------------------- 1 | POST /api/v1/user HTTP/1.1 2 | Host: 127.0.0.1:8080 3 | Content-Type: application/json 4 | Cache-Control: no-cache 5 | 6 | {"name":"jack","email":"123@126.com"} 7 | 8 | ####### 9 | 10 | GET http://127.0.0.1:8080/api/v1/users?size=3&page=0 11 | 12 | ### 13 | 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E06/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | .gradle 3 | build/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | !**/src/main/**/build/ 6 | !**/src/test/**/build/ 7 | 8 | ### STS ### 9 | .apt_generated 10 | .classpath 11 | .factorypath 12 | .project 13 | .settings 14 | .springBeans 15 | .sts4-cache 16 | 17 | ### IntelliJ IDEA ### 18 | .idea 19 | *.iws 20 | *.iml 21 | *.ipr 22 | out/ 23 | !**/src/main/**/out/ 24 | !**/src/test/**/out/ 25 | 26 | ### NetBeans ### 27 | /nbproject/private/ 28 | /nbbuild/ 29 | /dist/ 30 | /nbdist/ 31 | /.nb-gradle/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E06/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E06/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E06/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E06/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E06/src/main/java/com/example/jpa/JpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.data.jpa.repository.config.EnableJpaRepositories; 6 | import org.springframework.data.repository.query.QueryLookupStrategy; 7 | 8 | @SpringBootApplication 9 | public class JpaApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(JpaApplication.class, args); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E06/src/main/java/com/example/jpa/example1/UserDto.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.AllArgsConstructor; 3 | import lombok.Builder; 4 | import lombok.Data; 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | public class UserDto { 9 | private String name,email,idCard; 10 | } 11 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E06/src/main/java/com/example/jpa/example1/UserExtendRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserExtendRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E06/src/main/java/com/example/jpa/example1/UserOnlyName.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | public interface UserOnlyName { 4 | String getName(); 5 | String getEmail(); 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E06/src/main/java/com/example/jpa/example1/UserSimpleDto.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | public interface UserSimpleDto { 3 | String getName(); 4 | String getEmail(); 5 | String getIdCard(); 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E06/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 2 | #spring.datasource.username=root 3 | #spring.datasource.password=root 4 | #spring.jpa.generate-ddl=true 5 | spring.jpa.show-sql=false 6 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E06/src/test/java/com/example/jpa/JpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E06/src/test/resources/JpaApplication.http: -------------------------------------------------------------------------------- 1 | POST /api/v1/user HTTP/1.1 2 | Host: 127.0.0.1:8080 3 | Content-Type: application/json 4 | Cache-Control: no-cache 5 | 6 | {"name":"jack","email":"123@126.com"} 7 | 8 | ####### 9 | 10 | GET http://127.0.0.1:8080/api/v1/users?size=3&page=0 11 | 12 | ### 13 | 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E07/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | .gradle 3 | build/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | !**/src/main/**/build/ 6 | !**/src/test/**/build/ 7 | 8 | ### STS ### 9 | .apt_generated 10 | .classpath 11 | .factorypath 12 | .project 13 | .settings 14 | .springBeans 15 | .sts4-cache 16 | 17 | ### IntelliJ IDEA ### 18 | .idea 19 | *.iws 20 | *.iml 21 | *.ipr 22 | out/ 23 | !**/src/main/**/out/ 24 | !**/src/test/**/out/ 25 | 26 | ### NetBeans ### 27 | /nbproject/private/ 28 | /nbbuild/ 29 | /dist/ 30 | /nbdist/ 31 | /.nb-gradle/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E07/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E07/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E07/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E07/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E07/src/main/java/com/example/jpa/JpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.data.jpa.repository.config.EnableJpaRepositories; 6 | import org.springframework.data.repository.query.QueryLookupStrategy; 7 | 8 | @SpringBootApplication 9 | public class JpaApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(JpaApplication.class, args); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E07/src/main/java/com/example/jpa/example1/Room.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.List; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class Room { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | @OneToMany(mappedBy = "room") 15 | private List userRoomRelations; 16 | } 17 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E07/src/main/java/com/example/jpa/example1/UserAddress.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import lombok.*; 4 | 5 | import javax.persistence.*; 6 | 7 | @Entity 8 | @Data 9 | @Builder 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | @ToString(exclude = "user") 13 | public class UserAddress { 14 | @Id 15 | @GeneratedValue(strategy= GenerationType.AUTO) 16 | private Long id; 17 | private String address; 18 | @ManyToOne(cascade = CascadeType.ALL) 19 | private User user; 20 | } 21 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E07/src/main/java/com/example/jpa/example1/UserAddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserAddressRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E07/src/main/java/com/example/jpa/example1/UserInfoRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserInfoRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E07/src/main/java/com/example/jpa/example1/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserRepository extends JpaRepository { 6 | // @Query(value = "select * from #param",nativeQuery = true) 7 | // public User querabc(String param); 8 | } 9 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E07/src/main/java/com/example/jpa/example1/UserRoomRelation.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.Date; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UserRoomRelation { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | private Date createTime,udpateTime; 15 | @ManyToOne 16 | private Room room; 17 | @ManyToOne 18 | private User user; 19 | } 20 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E07/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 2 | #spring.datasource.username=root 3 | #spring.datasource.password=root 4 | #spring.jpa.generate-ddl=true 5 | spring.jpa.show-sql=false 6 | spring.jpa.open-in-view=false 7 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 8 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E07/src/test/java/com/example/jpa/JpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E07/src/test/resources/JpaApplication.http: -------------------------------------------------------------------------------- 1 | POST /api/v1/user HTTP/1.1 2 | Host: 127.0.0.1:8080 3 | Content-Type: application/json 4 | Cache-Control: no-cache 5 | 6 | {"name":"jack","email":"123@126.com"} 7 | 8 | ####### 9 | 10 | GET http://127.0.0.1:8080/api/v1/users?size=3&page=0 11 | 12 | ### 13 | 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E07/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=false 2 | spring.jpa.open-in-view=false 3 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 4 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E08/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | .gradle 3 | build/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | !**/src/main/**/build/ 6 | !**/src/test/**/build/ 7 | 8 | ### STS ### 9 | .apt_generated 10 | .classpath 11 | .factorypath 12 | .project 13 | .settings 14 | .springBeans 15 | .sts4-cache 16 | 17 | ### IntelliJ IDEA ### 18 | .idea 19 | *.iws 20 | *.iml 21 | *.ipr 22 | out/ 23 | !**/src/main/**/out/ 24 | !**/src/test/**/out/ 25 | 26 | ### NetBeans ### 27 | /nbproject/private/ 28 | /nbbuild/ 29 | /dist/ 30 | /nbdist/ 31 | /.nb-gradle/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E08/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E08/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E08/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E08/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E08/src/main/java/com/example/jpa/example1/Room.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.List; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class Room { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | @OneToMany(mappedBy = "room") 15 | private List userRoomRelations; 16 | } 17 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E08/src/main/java/com/example/jpa/example1/UserAddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserAddressRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E08/src/main/java/com/example/jpa/example1/UserInfoRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserInfoRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E08/src/main/java/com/example/jpa/example1/UserJsonRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserJsonRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E08/src/main/java/com/example/jpa/example1/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserRepository extends JpaRepository { 6 | // @Query(value = "select * from #param",nativeQuery = true) 7 | // public User querabc(String param); 8 | } 9 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E08/src/main/java/com/example/jpa/example1/UserRoomRelation.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.Date; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UserRoomRelation { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | private Date createTime,udpateTime; 15 | @ManyToOne 16 | private Room room; 17 | @ManyToOne 18 | private User user; 19 | } 20 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E08/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 2 | #spring.datasource.username=root 3 | #spring.datasource.password=root 4 | #spring.jpa.generate-ddl=true 5 | spring.jpa.show-sql=true 6 | #spring.jpa.open-in-view=true 7 | spring.jackson.serialization.fail-on-empty-beans=false 8 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 9 | server.port=8089 -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E08/src/test/resources/JpaApplication.http: -------------------------------------------------------------------------------- 1 | POST /api/v1/user HTTP/1.1 2 | Host: 127.0.0.1:8080 3 | Content-Type: application/json 4 | Cache-Control: no-cache 5 | 6 | {"name":"jack","email":"123@126.com"} 7 | 8 | ####### 9 | 10 | GET http://127.0.0.1:8080/api/v1/users?size=3&page=0 11 | 12 | ### 13 | 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E08/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=false 2 | spring.jpa.open-in-view=false 3 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 4 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E09/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | .gradle 3 | build/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | !**/src/main/**/build/ 6 | !**/src/test/**/build/ 7 | 8 | ### STS ### 9 | .apt_generated 10 | .classpath 11 | .factorypath 12 | .project 13 | .settings 14 | .springBeans 15 | .sts4-cache 16 | 17 | ### IntelliJ IDEA ### 18 | .idea 19 | *.iws 20 | *.iml 21 | *.ipr 22 | out/ 23 | !**/src/main/**/out/ 24 | !**/src/test/**/out/ 25 | 26 | ### NetBeans ### 27 | /nbproject/private/ 28 | /nbbuild/ 29 | /dist/ 30 | /nbdist/ 31 | /.nb-gradle/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E09/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E09/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E09/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E09/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E09/src/main/java/com/example/jpa/example1/Room.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.List; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class Room { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | @OneToMany(mappedBy = "room") 15 | private List userRoomRelations; 16 | } 17 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E09/src/main/java/com/example/jpa/example1/UserAddress.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import lombok.*; 4 | 5 | import javax.persistence.*; 6 | 7 | @Entity 8 | @Data 9 | @Builder 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | @ToString(exclude = "user") 13 | public class UserAddress { 14 | @Id 15 | @GeneratedValue(strategy= GenerationType.AUTO) 16 | private Long id; 17 | private String address; 18 | @ManyToOne(cascade = CascadeType.ALL) 19 | private User user; 20 | } 21 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E09/src/main/java/com/example/jpa/example1/UserAddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserAddressRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E09/src/main/java/com/example/jpa/example1/UserInfoRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserInfoRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E09/src/main/java/com/example/jpa/example1/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserRepository extends JpaRepository { 6 | // @Query(value = "select * from #param",nativeQuery = true) 7 | // public User querabc(String param); 8 | } 9 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E09/src/main/java/com/example/jpa/example1/UserRoomRelation.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.Date; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UserRoomRelation { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | private Date createTime,udpateTime; 15 | @ManyToOne 16 | private Room room; 17 | @ManyToOne 18 | private User user; 19 | } 20 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E09/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 2 | #spring.datasource.username=root 3 | #spring.datasource.password=root 4 | #spring.jpa.generate-ddl=true 5 | spring.jpa.show-sql=true 6 | #spring.jpa.open-in-view=true 7 | spring.jackson.serialization.fail-on-empty-beans=false 8 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 9 | server.port=8089 -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E09/src/test/resources/JpaApplication.http: -------------------------------------------------------------------------------- 1 | POST /api/v1/user HTTP/1.1 2 | Host: 127.0.0.1:8080 3 | Content-Type: application/json 4 | Cache-Control: no-cache 5 | 6 | {"name":"jack","email":"123@126.com"} 7 | 8 | ####### 9 | 10 | GET http://127.0.0.1:8080/api/v1/users?size=3&page=0 11 | 12 | ### 13 | 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E09/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=false 2 | spring.jpa.open-in-view=false 3 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 4 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E10_/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | .gradle 3 | build/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | !**/src/main/**/build/ 6 | !**/src/test/**/build/ 7 | 8 | ### STS ### 9 | .apt_generated 10 | .classpath 11 | .factorypath 12 | .project 13 | .settings 14 | .springBeans 15 | .sts4-cache 16 | 17 | ### IntelliJ IDEA ### 18 | .idea 19 | *.iws 20 | *.iml 21 | *.ipr 22 | out/ 23 | !**/src/main/**/out/ 24 | !**/src/test/**/out/ 25 | 26 | ### NetBeans ### 27 | /nbproject/private/ 28 | /nbbuild/ 29 | /dist/ 30 | /nbdist/ 31 | /.nb-gradle/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E10_/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E10_/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E10_/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E10_/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E10_/src/main/java/com/example/jpa/example1/Room.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.List; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class Room { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | @OneToMany(mappedBy = "room") 15 | private List userRoomRelations; 16 | } 17 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E10_/src/main/java/com/example/jpa/example1/UserAddress.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import lombok.*; 4 | 5 | import javax.persistence.*; 6 | 7 | /** 8 | * 用户地址表 9 | */ 10 | @Entity 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString(exclude = "user") 16 | public class UserAddress { 17 | @Id 18 | @GeneratedValue(strategy= GenerationType.AUTO) 19 | private Long id; 20 | private String address; 21 | @ManyToOne(cascade = CascadeType.ALL) 22 | private User user; 23 | } 24 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E10_/src/main/java/com/example/jpa/example1/UserAddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserAddressRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E10_/src/main/java/com/example/jpa/example1/UserInfoRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserInfoRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E10_/src/main/java/com/example/jpa/example1/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 | 6 | public interface UserRepository extends JpaRepository, JpaSpecificationExecutor { 7 | } 8 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E10_/src/main/java/com/example/jpa/example1/UserRoomRelation.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.Date; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UserRoomRelation { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | private Date createTime,udpateTime; 15 | @ManyToOne 16 | private Room room; 17 | @ManyToOne 18 | private User user; 19 | } 20 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E10_/src/main/java/com/example/jpa/example1/spe/SearchCriteria.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.spe; 2 | 3 | import lombok.*; 4 | /** 5 | * @author jack 6 | */ 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | public class SearchCriteria { 12 | private String key; 13 | private Operator operation; 14 | private Object value; 15 | } -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E10_/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 2 | #spring.datasource.username=root 3 | #spring.datasource.password=root 4 | #spring.jpa.generate-ddl=true 5 | spring.jpa.show-sql=true 6 | #spring.jpa.open-in-view=true 7 | spring.jackson.serialization.fail-on-empty-beans=false 8 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 9 | server.port=8089 10 | spring.jpa.hibernate.ddl-auto=create -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E10_/src/test/resources/JpaApplication.http: -------------------------------------------------------------------------------- 1 | POST /api/v1/user HTTP/1.1 2 | Host: 127.0.0.1:8080 3 | Content-Type: application/json 4 | Cache-Control: no-cache 5 | 6 | {"name":"jack","email":"123@126.com"} 7 | 8 | ####### 9 | 10 | GET http://127.0.0.1:8080/api/v1/users?size=3&page=0 11 | 12 | ### 13 | GET /users?search=name:jack,age>0 14 | Host: localhost:8089 15 | Content-Type: application/json 16 | 17 | ### 18 | 19 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E10_/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=false 2 | spring.jpa.open-in-view=false 3 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 4 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E11/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | .gradle 3 | build/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | !**/src/main/**/build/ 6 | !**/src/test/**/build/ 7 | 8 | ### STS ### 9 | .apt_generated 10 | .classpath 11 | .factorypath 12 | .project 13 | .settings 14 | .springBeans 15 | .sts4-cache 16 | 17 | ### IntelliJ IDEA ### 18 | .idea 19 | *.iws 20 | *.iml 21 | *.ipr 22 | out/ 23 | !**/src/main/**/out/ 24 | !**/src/test/**/out/ 25 | 26 | ### NetBeans ### 27 | /nbproject/private/ 28 | /nbbuild/ 29 | /dist/ 30 | /nbdist/ 31 | /.nb-gradle/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E11/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E11/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E11/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E11/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E11/src/main/java/com/example/jpa/example1/Room.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.List; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class Room { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | @OneToMany(mappedBy = "room") 15 | private List userRoomRelations; 16 | } 17 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E11/src/main/java/com/example/jpa/example1/UserAddress.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import lombok.*; 4 | 5 | import javax.persistence.*; 6 | 7 | /** 8 | * 用户地址表 9 | */ 10 | @Entity 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString(exclude = "user") 16 | public class UserAddress { 17 | @Id 18 | @GeneratedValue(strategy= GenerationType.AUTO) 19 | private Long id; 20 | private String address; 21 | @ManyToOne(cascade = CascadeType.ALL) 22 | private User user; 23 | } 24 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E11/src/main/java/com/example/jpa/example1/UserAddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserAddressRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E11/src/main/java/com/example/jpa/example1/UserInfoRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserInfoRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E11/src/main/java/com/example/jpa/example1/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import com.example.jpa.example1.customized.CustomizedUserRepository; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 6 | 7 | public interface UserRepository extends JpaRepository, JpaSpecificationExecutor, CustomizedUserRepository { 8 | } 9 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E11/src/main/java/com/example/jpa/example1/UserRoomRelation.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.Date; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UserRoomRelation { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | private Date createTime,udpateTime; 15 | @ManyToOne 16 | private Room room; 17 | @ManyToOne 18 | private User user; 19 | } 20 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E11/src/main/java/com/example/jpa/example1/customized/BaseEntity.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.customized; 2 | 3 | public abstract class BaseEntity { 4 | public abstract void setDeleted(Boolean deleted); 5 | } 6 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E11/src/main/java/com/example/jpa/example1/customized/CustomizedUserRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.customized; 2 | 3 | import com.example.jpa.example1.User; 4 | 5 | public interface CustomizedUserRepository { 6 | User logicallyDelete(User user); 7 | } 8 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E11/src/main/java/com/example/jpa/example1/spe/SearchCriteria.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.spe; 2 | 3 | import lombok.*; 4 | /** 5 | * @author jack 6 | */ 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | public class SearchCriteria { 12 | private String key; 13 | private Operator operation; 14 | private Object value; 15 | } -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E11/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 2 | #spring.datasource.username=root 3 | #spring.datasource.password=root 4 | #spring.jpa.generate-ddl=true 5 | spring.jpa.show-sql=true 6 | #spring.jpa.open-in-view=true 7 | spring.jackson.serialization.fail-on-empty-beans=false 8 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 9 | server.port=8089 10 | spring.jpa.hibernate.ddl-auto=create -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E11/src/test/java/com/example/jpa/JpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | // Map a = new LinkedHashMap(); 12 | // a.put("a","abc"); 13 | // 14 | // User user = (User) a; 15 | // System.out.println(user); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E11/src/test/resources/JpaApplication.http: -------------------------------------------------------------------------------- 1 | POST /api/v1/user HTTP/1.1 2 | Host: 127.0.0.1:8080 3 | Content-Type: application/json 4 | Cache-Control: no-cache 5 | 6 | {"name":"jack","email":"123@126.com"} 7 | 8 | ####### 9 | 10 | GET http://127.0.0.1:8080/api/v1/users?size=3&page=0 11 | 12 | ### 13 | GET /users?search=name:jack,age>0 14 | Host: localhost:8089 15 | Content-Type: application/json 16 | 17 | ### 18 | 19 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E11/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=false 2 | spring.jpa.open-in-view=false 3 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 4 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E12/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | .gradle 3 | build/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | !**/src/main/**/build/ 6 | !**/src/test/**/build/ 7 | 8 | ### STS ### 9 | .apt_generated 10 | .classpath 11 | .factorypath 12 | .project 13 | .settings 14 | .springBeans 15 | .sts4-cache 16 | 17 | ### IntelliJ IDEA ### 18 | .idea 19 | *.iws 20 | *.iml 21 | *.ipr 22 | out/ 23 | !**/src/main/**/out/ 24 | !**/src/test/**/out/ 25 | 26 | ### NetBeans ### 27 | /nbproject/private/ 28 | /nbbuild/ 29 | /dist/ 30 | /nbdist/ 31 | /.nb-gradle/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E12/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E12/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E12/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E12/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E12/src/main/java/com/example/jpa/JpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.web.servlet.config.annotation.EnableWebMvc; 6 | 7 | @SpringBootApplication 8 | @EnableWebMvc 9 | public class JpaApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(JpaApplication.class, args); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E12/src/main/java/com/example/jpa/example1/Room.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.List; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class Room { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | @OneToMany(mappedBy = "room") 15 | private List userRoomRelations; 16 | } 17 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E12/src/main/java/com/example/jpa/example1/UserAddress.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import lombok.*; 4 | 5 | import javax.persistence.*; 6 | 7 | /** 8 | * 用户地址表 9 | */ 10 | @Entity 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString(exclude = "user") 16 | public class UserAddress { 17 | @Id 18 | @GeneratedValue(strategy= GenerationType.AUTO) 19 | private Long id; 20 | private String address; 21 | @ManyToOne(cascade = CascadeType.ALL) 22 | private User user; 23 | } 24 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E12/src/main/java/com/example/jpa/example1/UserAddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserAddressRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E12/src/main/java/com/example/jpa/example1/UserInfoRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserInfoRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E12/src/main/java/com/example/jpa/example1/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 | 6 | public interface UserRepository extends JpaRepository, JpaSpecificationExecutor{ 7 | } 8 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E12/src/main/java/com/example/jpa/example1/UserRoomRelation.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.Date; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UserRoomRelation { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | private Date createTime,udpateTime; 15 | @ManyToOne 16 | private Room room; 17 | @ManyToOne 18 | private User user; 19 | } 20 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E12/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 2 | #spring.datasource.username=root 3 | #spring.datasource.password=root 4 | #spring.jpa.generate-ddl=true 5 | spring.jpa.show-sql=true 6 | #spring.jpa.open-in-view=true 7 | spring.jackson.serialization.fail-on-empty-beans=false 8 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 9 | server.port=8089 10 | spring.jpa.hibernate.ddl-auto=create 11 | spring.h2.console.enabled=true 12 | spring.h2.console.settings.web-allow-others=true -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E12/src/test/java/com/example/jpa/JpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E12/src/test/resources/JpaApplication.http: -------------------------------------------------------------------------------- 1 | POST /api/v1/user HTTP/1.1 2 | Host: 127.0.0.1:8080 3 | Content-Type: application/json 4 | Cache-Control: no-cache 5 | 6 | {"name":"jack","email":"123@126.com"} 7 | 8 | ####### 9 | 10 | GET http://127.0.0.1:8080/api/v1/users?size=3&page=0 11 | 12 | ### 13 | GET /users?search=name:jack,age>0 14 | Host: localhost:8089 15 | Content-Type: application/json 16 | 17 | ### 18 | 19 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E12/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=false 2 | spring.jpa.open-in-view=false 3 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 4 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E13/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | .gradle 3 | build/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | !**/src/main/**/build/ 6 | !**/src/test/**/build/ 7 | 8 | ### STS ### 9 | .apt_generated 10 | .classpath 11 | .factorypath 12 | .project 13 | .settings 14 | .springBeans 15 | .sts4-cache 16 | 17 | ### IntelliJ IDEA ### 18 | .idea 19 | *.iws 20 | *.iml 21 | *.ipr 22 | out/ 23 | !**/src/main/**/out/ 24 | !**/src/test/**/out/ 25 | 26 | ### NetBeans ### 27 | /nbproject/private/ 28 | /nbbuild/ 29 | /dist/ 30 | /nbdist/ 31 | /.nb-gradle/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E13/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E13/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E13/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E13/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E13/src/main/java/com/example/jpa/JpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.web.servlet.config.annotation.EnableWebMvc; 6 | 7 | @SpringBootApplication 8 | @EnableWebMvc 9 | public class JpaApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(JpaApplication.class, args); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E13/src/main/java/com/example/jpa/example1/Room.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.List; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class Room { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | @OneToMany(mappedBy = "room") 15 | private List userRoomRelations; 16 | } 17 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E13/src/main/java/com/example/jpa/example1/UserAddress.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import lombok.*; 4 | 5 | import javax.persistence.*; 6 | 7 | /** 8 | * 用户地址表 9 | */ 10 | @Entity 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString(exclude = "user") 16 | public class UserAddress { 17 | @Id 18 | @GeneratedValue(strategy= GenerationType.AUTO) 19 | private Long id; 20 | private String address; 21 | @ManyToOne(cascade = CascadeType.ALL) 22 | private User user; 23 | } 24 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E13/src/main/java/com/example/jpa/example1/UserAddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserAddressRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E13/src/main/java/com/example/jpa/example1/UserInfoRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserInfoRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E13/src/main/java/com/example/jpa/example1/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 | 6 | public interface UserRepository extends JpaRepository, JpaSpecificationExecutor{ 7 | } 8 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E13/src/main/java/com/example/jpa/example1/UserRoomRelation.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.Date; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UserRoomRelation { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | private Date createTime,udpateTime; 15 | @ManyToOne 16 | private Room room; 17 | @ManyToOne 18 | private User user; 19 | } 20 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E13/src/main/java/com/example/jpa/example1/base/UserListener.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.base; 2 | 3 | import com.example.jpa.example1.User; 4 | 5 | import javax.persistence.PrePersist; 6 | 7 | public class UserListener { 8 | @PrePersist 9 | public void prePersist(User user) { 10 | //通过一些逻辑计算年龄; 11 | user.calculationAge(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E13/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 2 | #spring.datasource.username=root 3 | #spring.datasource.password=root 4 | #spring.jpa.generate-ddl=true 5 | spring.jpa.show-sql=true 6 | #spring.jpa.open-in-view=true 7 | spring.jackson.serialization.fail-on-empty-beans=false 8 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 9 | server.port=8089 10 | spring.jpa.hibernate.ddl-auto=create 11 | spring.h2.console.enabled=true 12 | spring.h2.console.settings.web-allow-others=true -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E13/src/test/java/com/example/jpa/JpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E13/src/test/resources/JpaApplication.http: -------------------------------------------------------------------------------- 1 | POST /api/v1/user HTTP/1.1 2 | Host: 127.0.0.1:8080 3 | Content-Type: application/json 4 | Cache-Control: no-cache 5 | 6 | {"name":"jack","email":"123@126.com"} 7 | 8 | ####### 9 | 10 | GET http://127.0.0.1:8080/api/v1/users?size=3&page=0 11 | 12 | ### 13 | GET /users?search=name:jack,age>0 14 | Host: localhost:8089 15 | Content-Type: application/json 16 | 17 | ### 18 | 19 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E13/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=false 2 | spring.jpa.open-in-view=false 3 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 4 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | .gradle 3 | build/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | !**/src/main/**/build/ 6 | !**/src/test/**/build/ 7 | 8 | ### STS ### 9 | .apt_generated 10 | .classpath 11 | .factorypath 12 | .project 13 | .settings 14 | .springBeans 15 | .sts4-cache 16 | 17 | ### IntelliJ IDEA ### 18 | .idea 19 | *.iws 20 | *.iml 21 | *.ipr 22 | out/ 23 | !**/src/main/**/out/ 24 | !**/src/test/**/out/ 25 | 26 | ### NetBeans ### 27 | /nbproject/private/ 28 | /nbbuild/ 29 | /dist/ 30 | /nbdist/ 31 | /.nb-gradle/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E14/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/src/main/java/com/example/jpa/JpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.web.servlet.config.annotation.EnableWebMvc; 6 | 7 | @SpringBootApplication 8 | @EnableWebMvc 9 | public class JpaApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(JpaApplication.class, args); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/src/main/java/com/example/jpa/example1/Room.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.List; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class Room { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | @OneToMany(mappedBy = "room") 15 | private List userRoomRelations; 16 | } 17 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/src/main/java/com/example/jpa/example1/UserAddress.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import lombok.*; 4 | 5 | import javax.persistence.*; 6 | 7 | /** 8 | * 用户地址表 9 | */ 10 | @Entity 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString(exclude = "user") 16 | public class UserAddress { 17 | @Id 18 | @GeneratedValue(strategy= GenerationType.AUTO) 19 | private Long id; 20 | private String address; 21 | @ManyToOne(cascade = CascadeType.ALL) 22 | private User user; 23 | } 24 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/src/main/java/com/example/jpa/example1/UserAddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserAddressRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/src/main/java/com/example/jpa/example1/UserInfo.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import com.example.jpa.example1.base.BaseEntity; 4 | import lombok.*; 5 | 6 | import javax.persistence.*; 7 | 8 | @Entity 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString(callSuper = true) 14 | public class UserInfo extends BaseEntity { 15 | @Id 16 | @GeneratedValue(strategy= GenerationType.AUTO) 17 | private Long id; 18 | private Integer ages; 19 | private String telephone; 20 | } 21 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/src/main/java/com/example/jpa/example1/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 | 6 | public interface UserRepository extends JpaRepository, JpaSpecificationExecutor{ 7 | } 8 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/src/main/java/com/example/jpa/example1/UserRoomRelation.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.Date; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UserRoomRelation { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | private Date createTime,udpateTime; 15 | @ManyToOne 16 | private Room room; 17 | @ManyToOne 18 | private User user; 19 | } 20 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/src/main/java/com/example/jpa/example1/base/BaseEntity.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.base; 2 | 3 | import lombok.Data; 4 | 5 | import javax.persistence.*; 6 | @Data 7 | @MappedSuperclass 8 | public class BaseEntity { 9 | @Id 10 | @GeneratedValue(strategy= GenerationType.AUTO) 11 | private Long id; 12 | @Version 13 | private Integer version; 14 | } 15 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/src/main/java/com/example/jpa/example1/configuration/RetryConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.configuration; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.retry.annotation.EnableRetry; 5 | 6 | @EnableRetry 7 | @Configuration 8 | public class RetryConfiguration { 9 | } 10 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/src/main/java/com/example/jpa/example1/service/UserInfoService.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.service; 2 | 3 | import com.example.jpa.example1.UserInfo; 4 | 5 | public interface UserInfoService { 6 | /** 7 | * 根据UserId产生的一些业务计算逻辑 8 | * 9 | * @return 10 | */ 11 | UserInfo calculate(Long userId); 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 2 | #spring.datasource.username=root 3 | #spring.datasource.password=root 4 | #spring.jpa.generate-ddl=true 5 | spring.jpa.show-sql=true 6 | #spring.jpa.open-in-view=true 7 | spring.jackson.serialization.fail-on-empty-beans=false 8 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 9 | server.port=8089 10 | spring.jpa.hibernate.ddl-auto=create 11 | spring.h2.console.enabled=true 12 | spring.h2.console.settings.web-allow-others=true -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/src/test/java/com/example/jpa/JpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/src/test/resources/JpaApplication.http: -------------------------------------------------------------------------------- 1 | POST /api/v1/user HTTP/1.1 2 | Host: 127.0.0.1:8080 3 | Content-Type: application/json 4 | Cache-Control: no-cache 5 | 6 | {"name":"jack","email":"123@126.com"} 7 | 8 | ####### 9 | 10 | GET http://127.0.0.1:8080/api/v1/users?size=3&page=0 11 | 12 | ### 13 | GET /users?search=name:jack,age>0 14 | Host: localhost:8089 15 | Content-Type: application/json 16 | 17 | ### 18 | 19 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E14/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=true 2 | spring.jpa.open-in-view=false 3 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 4 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E15/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | .gradle 3 | build/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | !**/src/main/**/build/ 6 | !**/src/test/**/build/ 7 | 8 | ### STS ### 9 | .apt_generated 10 | .classpath 11 | .factorypath 12 | .project 13 | .settings 14 | .springBeans 15 | .sts4-cache 16 | 17 | ### IntelliJ IDEA ### 18 | .idea 19 | *.iws 20 | *.iml 21 | *.ipr 22 | out/ 23 | !**/src/main/**/out/ 24 | !**/src/test/**/out/ 25 | 26 | ### NetBeans ### 27 | /nbproject/private/ 28 | /nbbuild/ 29 | /dist/ 30 | /nbdist/ 31 | /.nb-gradle/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E15/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E15/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E15/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E15/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E15/src/main/java/com/example/jpa/JpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class JpaApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(JpaApplication.class, args); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E15/src/main/java/com/example/jpa/example1/Room.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.List; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class Room { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | @OneToMany(mappedBy = "room") 15 | private List userRoomRelations; 16 | } 17 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E15/src/main/java/com/example/jpa/example1/UserAddress.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import lombok.*; 4 | 5 | import javax.persistence.*; 6 | 7 | /** 8 | * 用户地址表 9 | */ 10 | @Entity 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString(exclude = "user") 16 | public class UserAddress { 17 | @Id 18 | @GeneratedValue(strategy= GenerationType.AUTO) 19 | private Long id; 20 | private String address; 21 | @ManyToOne(cascade = CascadeType.ALL) 22 | private User user; 23 | } 24 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E15/src/main/java/com/example/jpa/example1/UserAddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserAddressRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E15/src/main/java/com/example/jpa/example1/UserInfoInterface.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.web.JsonPath; 4 | import org.springframework.data.web.ProjectedPayload; 5 | 6 | @ProjectedPayload 7 | public interface UserInfoInterface { 8 | @JsonPath("$.ages") // 第一级json里面找ages字段 9 | // @JsonPath("$..ages") $..代表任意层级找ages字段 10 | Integer getAges(); 11 | @JsonPath("$.telephone") //第一级找json里面的telephone字段 12 | // @JsonPath({ "$.telephone", "$.user.telephone" }) //第一级或者user下面的telephone都可以 13 | String getTelephone(); 14 | } 15 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E15/src/main/java/com/example/jpa/example1/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 | 6 | public interface UserRepository extends JpaRepository, JpaSpecificationExecutor{ 7 | } 8 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E15/src/main/java/com/example/jpa/example1/UserRoomRelation.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.Date; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UserRoomRelation { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | private Date createTime,udpateTime; 15 | @ManyToOne 16 | private Room room; 17 | @ManyToOne 18 | private User user; 19 | } 20 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E15/src/main/java/com/example/jpa/example1/configuration/RetryConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.configuration; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.retry.annotation.EnableRetry; 5 | 6 | @EnableRetry 7 | @Configuration 8 | public class RetryConfiguration { 9 | } 10 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E15/src/main/java/com/example/jpa/example1/service/UserInfoService.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.service; 2 | 3 | import com.example.jpa.example1.UserInfo; 4 | 5 | public interface UserInfoService { 6 | /** 7 | * 根据UserId产生的一些业务计算逻辑 8 | * 9 | * @return 10 | */ 11 | UserInfo calculate(Long userId); 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E15/src/test/java/com/example/jpa/JpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E15/src/test/java/com/example/jpa/example1/UtilTest.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.beans.BeanUtils; 4 | 5 | public class UtilTest { 6 | public static void main(String[] args) { 7 | User user1 = new User(); 8 | user1.setName("jack1"); 9 | user1.setEmail("email1"); 10 | user1.setAge(1); 11 | user1.setVersion(1); 12 | User user2 = new User(); 13 | user2.setName("jack2"); 14 | user2.setVersion(2); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E15/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=true 2 | spring.jpa.open-in-view=false 3 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 4 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E16/.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | .gradle 3 | build/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | !**/src/main/**/build/ 6 | !**/src/test/**/build/ 7 | 8 | ### STS ### 9 | .apt_generated 10 | .classpath 11 | .factorypath 12 | .project 13 | .settings 14 | .springBeans 15 | .sts4-cache 16 | 17 | ### IntelliJ IDEA ### 18 | .idea 19 | *.iws 20 | *.iml 21 | *.ipr 22 | out/ 23 | !**/src/main/**/out/ 24 | !**/src/test/**/out/ 25 | 26 | ### NetBeans ### 27 | /nbproject/private/ 28 | /nbbuild/ 29 | /dist/ 30 | /nbdist/ 31 | /.nb-gradle/ 32 | 33 | ### VS Code ### 34 | .vscode/ 35 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E16/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E16/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E16/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E16/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E16/src/main/java/com/example/jpa/JpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class JpaApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(JpaApplication.class, args); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E16/src/main/java/com/example/jpa/example1/Room.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.List; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class Room { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | @OneToMany(mappedBy = "room") 15 | private List userRoomRelations; 16 | } 17 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E16/src/main/java/com/example/jpa/example1/UserAddress.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import lombok.*; 4 | 5 | import javax.persistence.*; 6 | 7 | /** 8 | * 用户地址表 9 | */ 10 | @Entity 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString(exclude = "user") 16 | public class UserAddress { 17 | @Id 18 | @GeneratedValue(strategy= GenerationType.AUTO) 19 | private Long id; 20 | private String address; 21 | @ManyToOne(cascade = CascadeType.ALL) 22 | private User user; 23 | } 24 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E16/src/main/java/com/example/jpa/example1/UserAddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserAddressRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E16/src/main/java/com/example/jpa/example1/UserInfoInterface.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.web.JsonPath; 4 | import org.springframework.data.web.ProjectedPayload; 5 | 6 | @ProjectedPayload 7 | public interface UserInfoInterface { 8 | @JsonPath("$.ages") // 第一级json里面找ages字段 9 | // @JsonPath("$..ages") $..代表任意层级找ages字段 10 | Integer getAges(); 11 | @JsonPath("$.telephone") //第一级找json里面的telephone字段 12 | // @JsonPath({ "$.telephone", "$.user.telephone" }) //第一级或者user下面的telephone都可以 13 | String getTelephone(); 14 | } 15 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E16/src/main/java/com/example/jpa/example1/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 | 6 | public interface UserRepository extends JpaRepository, JpaSpecificationExecutor{ 7 | } 8 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E16/src/main/java/com/example/jpa/example1/UserRoomRelation.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.Date; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UserRoomRelation { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | private Date createTime,udpateTime; 15 | @ManyToOne 16 | private Room room; 17 | @ManyToOne 18 | private User user; 19 | } 20 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E16/src/main/java/com/example/jpa/example1/common/MyPageRequest.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.common; 2 | 3 | import org.springframework.data.domain.PageRequest; 4 | import org.springframework.data.domain.Sort; 5 | 6 | /** 7 | * 继承父类,可以省掉很多计算page和index的逻辑 8 | */ 9 | public class MyPageRequest extends PageRequest { 10 | protected MyPageRequest(int page, int size, Sort sort) { 11 | super(page, size, sort); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E16/src/main/java/com/example/jpa/example1/common/WarpWithData.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.common; 2 | 3 | import java.lang.annotation.*; 4 | 5 | @Target({ElementType.TYPE, ElementType.METHOD}) 6 | @Retention(RetentionPolicy.RUNTIME) 7 | @Documented 8 | /** 9 | * 自定义一个注解对返回结果进行包装 10 | */ 11 | public @interface WarpWithData { 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E16/src/main/java/com/example/jpa/example1/configuration/RetryConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.configuration; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.retry.annotation.EnableRetry; 5 | 6 | @EnableRetry 7 | @Configuration 8 | public class RetryConfiguration { 9 | } 10 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E16/src/main/java/com/example/jpa/example1/service/UserInfoService.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.service; 2 | 3 | import com.example.jpa.example1.UserInfo; 4 | 5 | public interface UserInfoService { 6 | /** 7 | * 根据UserId产生的一些业务计算逻辑 8 | * 9 | * @return 10 | */ 11 | UserInfo calculate(Long userId); 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E16/src/test/java/com/example/jpa/JpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E16/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=true 2 | spring.jpa.open-in-view=false 3 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 4 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E17/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E17/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E17/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E17/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E17/src/main/java/com/example/jpa/JpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class JpaApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(JpaApplication.class, args); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E17/src/main/java/com/example/jpa/example1/Room.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.List; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class Room { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | @OneToMany(mappedBy = "room") 15 | private List userRoomRelations; 16 | } 17 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E17/src/main/java/com/example/jpa/example1/UserAddress.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import lombok.*; 4 | 5 | import javax.persistence.*; 6 | 7 | /** 8 | * 用户地址表 9 | */ 10 | @Entity 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString(exclude = "user") 16 | public class UserAddress { 17 | @Id 18 | @GeneratedValue(strategy= GenerationType.AUTO) 19 | private Long id; 20 | private String address; 21 | @ManyToOne(cascade = CascadeType.ALL) 22 | private User user; 23 | } 24 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E17/src/main/java/com/example/jpa/example1/UserAddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserAddressRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E17/src/main/java/com/example/jpa/example1/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 | 6 | public interface UserRepository extends JpaRepository, JpaSpecificationExecutor{ 7 | } 8 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E17/src/main/java/com/example/jpa/example1/UserRoomRelation.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1; 2 | import lombok.*; 3 | import javax.persistence.*; 4 | import java.util.Date; 5 | @Entity 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | public class UserRoomRelation { 11 | @Id 12 | @GeneratedValue(strategy = GenerationType.AUTO) 13 | private Long id; 14 | private Date createTime,udpateTime; 15 | @ManyToOne 16 | private Room room; 17 | @ManyToOne 18 | private User user; 19 | } 20 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E17/src/main/java/com/example/jpa/example1/common/MyPageRequest.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.common; 2 | 3 | import org.springframework.data.domain.PageRequest; 4 | import org.springframework.data.domain.Sort; 5 | 6 | /** 7 | * 继承父类,可以省掉很多计算page和index的逻辑 8 | */ 9 | public class MyPageRequest extends PageRequest { 10 | protected MyPageRequest(int page, int size, Sort sort) { 11 | super(page, size, sort); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E17/src/main/java/com/example/jpa/example1/common/WarpWithData.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.common; 2 | 3 | import java.lang.annotation.*; 4 | 5 | @Target({ElementType.TYPE, ElementType.METHOD}) 6 | @Retention(RetentionPolicy.RUNTIME) 7 | @Documented 8 | /** 9 | * 自定义一个注解对返回结果进行包装 10 | */ 11 | public @interface WarpWithData { 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E17/src/main/java/com/example/jpa/example1/configuration/RetryConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.configuration; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.retry.annotation.EnableRetry; 5 | 6 | @EnableRetry 7 | @Configuration 8 | public class RetryConfiguration { 9 | } 10 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E17/src/main/java/com/example/jpa/example1/service/UserInfoService.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.service; 2 | 3 | import com.example.jpa.example1.UserInfo; 4 | 5 | public interface UserInfoService { 6 | /** 7 | * 根据UserId产生的一些业务计算逻辑 8 | * 9 | * @return 10 | */ 11 | UserInfo calculate(Long userId); 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E17/src/test/java/com/example/jpa/JpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E17/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=true 2 | spring.jpa.open-in-view=false 3 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 4 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E18/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E18/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E18/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E18/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E18/src/main/java/com/example/jpa/JpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class JpaApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(JpaApplication.class, args); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E18/src/main/java/com/example/jpa/example1/common/MyPageRequest.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.common; 2 | 3 | import org.springframework.data.domain.PageRequest; 4 | import org.springframework.data.domain.Sort; 5 | 6 | /** 7 | * 继承父类,可以省掉很多计算page和index的逻辑 8 | */ 9 | public class MyPageRequest extends PageRequest { 10 | protected MyPageRequest(int page, int size, Sort sort) { 11 | super(page, size, sort); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E18/src/main/java/com/example/jpa/example1/common/WarpWithData.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.common; 2 | 3 | import java.lang.annotation.*; 4 | 5 | @Target({ElementType.TYPE, ElementType.METHOD}) 6 | @Retention(RetentionPolicy.RUNTIME) 7 | @Documented 8 | /** 9 | * 自定义一个注解对返回结果进行包装 10 | */ 11 | public @interface WarpWithData { 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E18/src/main/java/com/example/jpa/example1/configuration/RetryConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.configuration; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.retry.annotation.EnableRetry; 5 | 6 | @EnableRetry 7 | @Configuration 8 | public class RetryConfiguration { 9 | } 10 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E18/src/main/java/com/example/jpa/example1/configuration/RoutingDataSourceEnum.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.configuration; 2 | 3 | /** 4 | * 定义一个数据源的枚举类 5 | */ 6 | public enum RoutingDataSourceEnum { 7 | DB1, 8 | DB2; 9 | public static RoutingDataSourceEnum findByCode(String dbRouting) { 10 | for (RoutingDataSourceEnum e : values()) { 11 | if (e.name().equals(dbRouting)) { 12 | return e; 13 | } 14 | } 15 | return DB1;//没找到的情况下,默认返回数据源1 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E18/src/main/java/com/example/jpa/example1/db1/SexEnum.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.db1; 2 | 3 | public enum SexEnum { 4 | BOY,GIRL 5 | } 6 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E18/src/main/java/com/example/jpa/example1/db1/UserAddress.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.db1; 2 | 3 | import lombok.*; 4 | 5 | import javax.persistence.*; 6 | 7 | /** 8 | * 用户地址表 9 | */ 10 | @Entity 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString(exclude = "user") 16 | public class UserAddress { 17 | @Id 18 | @GeneratedValue(strategy= GenerationType.AUTO) 19 | private Long id; 20 | private String address; 21 | @ManyToOne(cascade = CascadeType.ALL) 22 | private User user; 23 | } 24 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E18/src/main/java/com/example/jpa/example1/db1/UserAddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.db1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserAddressRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E18/src/main/java/com/example/jpa/example1/db1/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.db1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 | 6 | public interface UserRepository extends JpaRepository, JpaSpecificationExecutor{ 7 | } 8 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E18/src/main/java/com/example/jpa/example1/service/UserInfoService.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.service; 2 | 3 | import com.example.jpa.example1.db2.UserInfo; 4 | 5 | public interface UserInfoService { 6 | /** 7 | * 根据UserId产生的一些业务计算逻辑 8 | * 9 | * @return 10 | */ 11 | UserInfo calculate(Long userId); 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E18/src/test/java/com/example/jpa/JpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E18/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=true 2 | spring.jpa.open-in-view=false 3 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 4 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E19/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E19/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E19/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E19/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E19/src/main/java/com/example/jpa/JpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class JpaApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(JpaApplication.class, args); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E19/src/main/java/com/example/jpa/example1/common/MyPageRequest.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.common; 2 | 3 | import org.springframework.data.domain.PageRequest; 4 | import org.springframework.data.domain.Sort; 5 | 6 | /** 7 | * 继承父类,可以省掉很多计算page和index的逻辑 8 | */ 9 | public class MyPageRequest extends PageRequest { 10 | protected MyPageRequest(int page, int size, Sort sort) { 11 | super(page, size, sort); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E19/src/main/java/com/example/jpa/example1/common/WarpWithData.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.common; 2 | 3 | import java.lang.annotation.*; 4 | 5 | @Target({ElementType.TYPE, ElementType.METHOD}) 6 | @Retention(RetentionPolicy.RUNTIME) 7 | @Documented 8 | /** 9 | * 自定义一个注解对返回结果进行包装 10 | */ 11 | public @interface WarpWithData { 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E19/src/main/java/com/example/jpa/example1/configuration/RetryConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.configuration; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.retry.annotation.EnableRetry; 5 | 6 | @EnableRetry 7 | @Configuration 8 | public class RetryConfiguration { 9 | } 10 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E19/src/main/java/com/example/jpa/example1/configuration/RoutingDataSourceEnum.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.configuration; 2 | 3 | /** 4 | * 定义一个数据源的枚举类 5 | */ 6 | public enum RoutingDataSourceEnum { 7 | DB1, 8 | DB2; 9 | public static RoutingDataSourceEnum findByCode(String dbRouting) { 10 | for (RoutingDataSourceEnum e : values()) { 11 | if (e.name().equals(dbRouting)) { 12 | return e; 13 | } 14 | } 15 | return DB1;//没找到的情况下,默认返回数据源1 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E19/src/main/java/com/example/jpa/example1/db1/SexEnum.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.db1; 2 | 3 | public enum SexEnum { 4 | BOY,GIRL 5 | } 6 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E19/src/main/java/com/example/jpa/example1/db1/UserAddress.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.db1; 2 | 3 | import lombok.*; 4 | 5 | import javax.persistence.*; 6 | 7 | /** 8 | * 用户地址表 9 | */ 10 | @Entity 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString(exclude = "user") 16 | public class UserAddress { 17 | @Id 18 | @GeneratedValue(strategy= GenerationType.AUTO) 19 | private Long id; 20 | private String address; 21 | @ManyToOne(cascade = CascadeType.ALL) 22 | private User user; 23 | } 24 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E19/src/main/java/com/example/jpa/example1/db1/UserAddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.db1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserAddressRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E19/src/main/java/com/example/jpa/example1/db1/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.db1; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 5 | 6 | public interface UserRepository extends JpaRepository, JpaSpecificationExecutor{ 7 | } 8 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E19/src/main/java/com/example/jpa/example1/service/UserInfoService.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.example1.service; 2 | 3 | import com.example.jpa.example1.db2.UserInfo; 4 | 5 | public interface UserInfoService { 6 | /** 7 | * 根据UserId产生的一些业务计算逻辑 8 | * 9 | * @return 10 | */ 11 | UserInfo calculate(Long userId); 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E19/src/test/java/com/example/jpa/JpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E19/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=true 2 | spring.jpa.open-in-view=false 3 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 4 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E20/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E20/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E20/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Nov 08 10:30:00 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E20/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'demo' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E20/src/main/java/com/example/jpa/demo/DemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class DemoApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(DemoApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E20/src/main/java/com/example/jpa/demo/config/MyAuditorAware.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.config; 2 | 3 | import org.springframework.data.domain.AuditorAware; 4 | 5 | import java.util.Optional; 6 | public class MyAuditorAware implements AuditorAware { 7 | @Override 8 | public Optional getCurrentAuditor() { 9 | return Optional.ofNullable(1); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E20/src/main/java/com/example/jpa/demo/db/UserInfo.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.db; 2 | 3 | import com.example.jpa.demo.core.BaseEntity; 4 | import lombok.*; 5 | 6 | import javax.persistence.Entity; 7 | import javax.persistence.Table; 8 | 9 | @Entity 10 | @Data 11 | @Builder 12 | @AllArgsConstructor 13 | @NoArgsConstructor 14 | @ToString(callSuper = true) 15 | @Table 16 | public class UserInfo extends BaseEntity { 17 | private Integer ages; 18 | private String lastName; 19 | private String emailAddress; 20 | private String telephone; 21 | } 22 | 23 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E20/src/main/java/com/example/jpa/demo/db/UserInfoRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.db; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserInfoRepository extends JpaRepository{ 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E20/src/main/java/com/example/jpa/demo/service/UserInfoService.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service; 2 | 3 | public interface UserInfoService { 4 | } 5 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E20/src/main/java/com/example/jpa/demo/service/UserInfoServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service; 2 | 3 | import com.example.jpa.demo.db.UserInfoRepository; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.stereotype.Component; 6 | 7 | @Component 8 | public class UserInfoServiceImpl implements UserInfoService { 9 | @Autowired 10 | private UserInfoRepository userInfoRepository; 11 | } 12 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E20/src/test/java/com/example/jpa/demo/DemoApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class DemoApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E20/src/test/resources/JpaApplication.http: -------------------------------------------------------------------------------- 1 | #### insert 2 | POST /user/info HTTP/1.1 3 | Host: 127.0.0.1:8087 4 | Content-Type: application/json 5 | Cache-Control: no-cache 6 | 7 | {"ages":10} 8 | 9 | #### update 10 | POST /user/info HTTP/1.1 11 | Host: 127.0.0.1:8087 12 | Content-Type: application/json 13 | Cache-Control: no-cache 14 | 15 | {"ages":10,"id":3,"version":0} 16 | 17 | ### get 18 | GET /user/info/2 HTTP/1.1 19 | Host: 127.0.0.1:8087 20 | Content-Type: application/json 21 | Cache-Control: no-cache 22 | 23 | ### -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E21/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E21/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E21/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Nov 08 10:30:00 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E21/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'demo' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E21/src/main/java/com/example/jpa/demo/DemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class DemoApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(DemoApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E21/src/main/java/com/example/jpa/demo/config/MyAuditorAware.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.config; 2 | 3 | import org.springframework.data.domain.AuditorAware; 4 | 5 | import java.util.Optional; 6 | public class MyAuditorAware implements AuditorAware { 7 | @Override 8 | public Optional getCurrentAuditor() { 9 | return Optional.ofNullable(1); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E21/src/main/java/com/example/jpa/demo/db/UserInfoRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.db; 2 | 3 | import org.apache.catalina.User; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.jpa.repository.Query; 6 | 7 | import java.util.List; 8 | 9 | public interface UserInfoRepository extends JpaRepository{ 10 | 11 | @Query("From UserInfo where id=2") 12 | List queryByFlushTest() ; 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E21/src/main/java/com/example/jpa/demo/service/UserInfoService.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service; 2 | 3 | public interface UserInfoService { 4 | } 5 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E21/src/main/java/com/example/jpa/demo/service/UserInfoServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service; 2 | 3 | import com.example.jpa.demo.db.UserInfoRepository; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.stereotype.Component; 6 | 7 | @Component 8 | public class UserInfoServiceImpl implements UserInfoService { 9 | @Autowired 10 | private UserInfoRepository userInfoRepository; 11 | } 12 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E21/src/test/java/com/example/jpa/demo/DemoApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class DemoApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E21/src/test/resources/JpaApplication.http: -------------------------------------------------------------------------------- 1 | #### insert 2 | POST /user/info HTTP/1.1 3 | Host: 127.0.0.1:8087 4 | Content-Type: application/json 5 | Cache-Control: no-cache 6 | 7 | {"ages":10} 8 | 9 | #### update 10 | POST /user/info HTTP/1.1 11 | Host: 127.0.0.1:8087 12 | Content-Type: application/json 13 | Cache-Control: no-cache 14 | 15 | {"ages":10,"id":3,"version":0} 16 | 17 | ### get 18 | GET /user/info/2 HTTP/1.1 19 | Host: 127.0.0.1:8087 20 | Content-Type: application/json 21 | Cache-Control: no-cache 22 | 23 | ### -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E21/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | ########### 2 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 3 | #spring.datasource.username=root 4 | #spring.datasource.password=root 5 | 6 | spring.jpa.generate-ddl=true 7 | spring.jpa.hibernate.ddl-auto=none 8 | spring.datasource.hikari.pool-name=jack-test-db-pool 9 | 10 | # hibernate所有的操作都是PreparedStatement,把sql的执行参数显示出来 11 | #logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E22/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E22/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E22/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Nov 08 10:30:00 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E22/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'demo' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E22/src/main/java/com/example/jpa/demo/DemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class DemoApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(DemoApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E22/src/main/java/com/example/jpa/demo/config/MyAuditorAware.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.config; 2 | 3 | import org.springframework.data.domain.AuditorAware; 4 | 5 | import java.util.Optional; 6 | public class MyAuditorAware implements AuditorAware { 7 | @Override 8 | public Optional getCurrentAuditor() { 9 | return Optional.ofNullable(1); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E22/src/main/java/com/example/jpa/demo/db/UserInfoRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.db; 2 | 3 | import org.apache.catalina.User; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.jpa.repository.Query; 6 | 7 | import java.util.List; 8 | 9 | public interface UserInfoRepository extends JpaRepository{ 10 | 11 | @Query("From UserInfo where id=2") 12 | List queryByFlushTest() ; 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E22/src/main/java/com/example/jpa/demo/service/UserInfoService.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service; 2 | 3 | public interface UserInfoService { 4 | } 5 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E22/src/main/java/com/example/jpa/demo/service/UserInfoServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service; 2 | 3 | import com.example.jpa.demo.db.UserInfoRepository; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.stereotype.Component; 6 | 7 | @Component 8 | public class UserInfoServiceImpl implements UserInfoService { 9 | @Autowired 10 | private UserInfoRepository userInfoRepository; 11 | } 12 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E22/src/test/java/com/example/jpa/demo/DemoApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class DemoApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E22/src/test/resources/JpaApplication.http: -------------------------------------------------------------------------------- 1 | #### insert 2 | POST /user/info HTTP/1.1 3 | Host: 127.0.0.1:8087 4 | Content-Type: application/json 5 | Cache-Control: no-cache 6 | 7 | {"ages":10} 8 | 9 | #### update 10 | POST /user/info HTTP/1.1 11 | Host: 127.0.0.1:8087 12 | Content-Type: application/json 13 | Cache-Control: no-cache 14 | 15 | {"ages":10,"id":3,"version":0} 16 | 17 | ### get 18 | GET /user/info/2 HTTP/1.1 19 | Host: 127.0.0.1:8087 20 | Content-Type: application/json 21 | Cache-Control: no-cache 22 | 23 | ### -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E22/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | ########### 2 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 3 | #spring.datasource.username=root 4 | #spring.datasource.password=root 5 | 6 | spring.jpa.generate-ddl=true 7 | spring.jpa.hibernate.ddl-auto=none 8 | spring.datasource.hikari.pool-name=jack-test-db-pool 9 | 10 | # hibernate所有的操作都是PreparedStatement,把sql的执行参数显示出来 11 | #logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E23/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E23/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E23/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Nov 08 10:30:00 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E23/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'demo' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E23/src/main/java/com/example/jpa/demo/DemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class DemoApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(DemoApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E23/src/main/java/com/example/jpa/demo/config/AsyncConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.config; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.scheduling.annotation.EnableAsync; 5 | 6 | @Configuration 7 | @EnableAsync 8 | public class AsyncConfiguration { 9 | } 10 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E23/src/main/java/com/example/jpa/demo/config/MyAuditorAware.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.config; 2 | 3 | import org.springframework.data.domain.AuditorAware; 4 | 5 | import java.util.Optional; 6 | public class MyAuditorAware implements AuditorAware { 7 | @Override 8 | public Optional getCurrentAuditor() { 9 | return Optional.ofNullable(1); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E23/src/main/java/com/example/jpa/demo/db/UserInfoRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.db; 2 | 3 | import org.apache.catalina.User; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.jpa.repository.Query; 6 | 7 | import java.util.List; 8 | 9 | public interface UserInfoRepository extends JpaRepository{ 10 | 11 | @Query("From UserInfo where id=2") 12 | List queryByFlushTest() ; 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E23/src/main/java/com/example/jpa/demo/service/UserInfoService.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service; 2 | 3 | public interface UserInfoService { 4 | /** 5 | * 模拟复杂业务方法 6 | */ 7 | public void businessUserMethod(String name); 8 | } 9 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E23/src/test/java/com/example/jpa/demo/DemoApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class DemoApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E23/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | ########### 2 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 3 | #spring.datasource.username=root 4 | #spring.datasource.password=root 5 | 6 | spring.jpa.generate-ddl=true 7 | spring.jpa.hibernate.ddl-auto=none 8 | spring.datasource.hikari.pool-name=jack-test-db-pool 9 | 10 | # hibernate所有的操作都是PreparedStatement,把sql的执行参数显示出来 11 | #logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E24/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E24/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E24/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Nov 08 10:30:00 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E24/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'demo' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E24/src/main/java/com/example/jpa/demo/DemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class DemoApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(DemoApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E24/src/main/java/com/example/jpa/demo/config/AsyncConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.config; 2 | 3 | //@Configuration 4 | //@EnableAsync 5 | public class AsyncConfiguration { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E24/src/main/java/com/example/jpa/demo/config/MyAuditorAware.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.config; 2 | 3 | import org.springframework.data.domain.AuditorAware; 4 | 5 | import java.util.Optional; 6 | public class MyAuditorAware implements AuditorAware { 7 | @Override 8 | public Optional getCurrentAuditor() { 9 | return Optional.ofNullable(1); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E24/src/main/java/com/example/jpa/demo/db/UserInfoRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.db; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.data.jpa.repository.Query; 5 | 6 | import java.util.List; 7 | 8 | public interface UserInfoRepository extends JpaRepository{ 9 | @Query("From UserInfo where id=2") 10 | List queryByFlushTest() ; 11 | } 12 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E24/src/main/java/com/example/jpa/demo/service/dto/UserInfoDto.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service.dto; 2 | 3 | import com.example.jpa.demo.db.Address; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | import java.util.List; 8 | 9 | @Data 10 | @Builder 11 | public class UserInfoDto { 12 | private String name; 13 | private List
addressList; 14 | } 15 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E24/src/test/java/com/example/jpa/demo/DemoApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class DemoApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E24/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | ########### 2 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 3 | #spring.datasource.username=root 4 | #spring.datasource.password=root 5 | 6 | spring.jpa.generate-ddl=true 7 | spring.jpa.hibernate.ddl-auto=none 8 | spring.datasource.hikari.pool-name=jack-test-db-pool 9 | 10 | # hibernate所有的操作都是PreparedStatement,把sql的执行参数显示出来 11 | #logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E25/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E25/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E25/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Nov 08 10:30:00 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E25/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'demo' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E25/src/main/java/com/example/jpa/demo/DemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class DemoApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(DemoApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E25/src/main/java/com/example/jpa/demo/config/AsyncConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.config; 2 | 3 | //@Configuration 4 | //@EnableAsync 5 | public class AsyncConfiguration { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E25/src/main/java/com/example/jpa/demo/config/MyAuditorAware.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.config; 2 | 3 | import org.springframework.data.domain.AuditorAware; 4 | 5 | import java.util.Optional; 6 | public class MyAuditorAware implements AuditorAware { 7 | @Override 8 | public Optional getCurrentAuditor() { 9 | return Optional.ofNullable(1); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E25/src/main/java/com/example/jpa/demo/db/AddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.db; 2 | 3 | import org.springframework.data.jpa.repository.EntityGraph; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | import java.util.List; 7 | 8 | public interface AddressRepository extends JpaRepository{ 9 | // List
findByUserIdIn(List userIds); 10 | @Override 11 | @EntityGraph(value = "getAllUserInfo") 12 | List
findAll(); 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E25/src/main/java/com/example/jpa/demo/service/dto/UserInfoDto.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service.dto; 2 | 3 | import com.example.jpa.demo.db.Address; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | import java.util.List; 8 | 9 | @Data 10 | @Builder 11 | public class UserInfoDto { 12 | private String name; 13 | private List
addressList; 14 | } 15 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E25/src/test/java/com/example/jpa/demo/DemoApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class DemoApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E25/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | ########### 2 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 3 | #spring.datasource.username=root 4 | #spring.datasource.password=root 5 | 6 | spring.jpa.generate-ddl=true 7 | spring.jpa.hibernate.ddl-auto=none 8 | spring.datasource.hikari.pool-name=jack-test-db-pool 9 | 10 | # hibernate所有的操作都是PreparedStatement,把sql的执行参数显示出来 11 | #logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E26/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E26/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E26/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Nov 08 10:30:00 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E26/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'demo' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E26/src/main/java/com/example/jpa/demo/DemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class DemoApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(DemoApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E26/src/main/java/com/example/jpa/demo/config/AsyncConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.config; 2 | 3 | //@Configuration 4 | //@EnableAsync 5 | public class AsyncConfiguration { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E26/src/main/java/com/example/jpa/demo/config/MyAuditorAware.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.config; 2 | 3 | import org.springframework.data.domain.AuditorAware; 4 | 5 | import java.util.Optional; 6 | public class MyAuditorAware implements AuditorAware { 7 | @Override 8 | public Optional getCurrentAuditor() { 9 | return Optional.ofNullable(1); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E26/src/main/java/com/example/jpa/demo/db/AddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.db; 2 | 3 | import org.springframework.data.jpa.repository.EntityGraph; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | import java.util.List; 7 | 8 | public interface AddressRepository extends JpaRepository{ 9 | // List
findByUserIdIn(List userIds); 10 | @Override 11 | @EntityGraph(value = "getAllUserInfo") 12 | List
findAll(); 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E26/src/main/java/com/example/jpa/demo/service/dto/UserInfoDto.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service.dto; 2 | 3 | import com.example.jpa.demo.db.Address; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | import java.util.List; 8 | 9 | @Data 10 | @Builder 11 | public class UserInfoDto { 12 | private String name; 13 | private List
addressList; 14 | } 15 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E26/src/test/java/com/example/jpa/demo/DemoApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class DemoApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E26/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | ########### 2 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 3 | #spring.datasource.username=root 4 | #spring.datasource.password=root 5 | 6 | spring.jpa.generate-ddl=true 7 | spring.jpa.hibernate.ddl-auto=none 8 | spring.datasource.hikari.pool-name=jack-test-db-pool 9 | 10 | # hibernate所有的操作都是PreparedStatement,把sql的执行参数显示出来 11 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 12 | spring.jpa.show-sql=true -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E27/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E27/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E27/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Nov 08 10:30:00 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E27/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'demo' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E27/src/main/java/com/example/jpa/demo/DemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class DemoApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(DemoApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E27/src/main/java/com/example/jpa/demo/config/MyAuditorAware.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.config; 2 | 3 | import org.springframework.data.domain.AuditorAware; 4 | 5 | import java.util.Optional; 6 | public class MyAuditorAware implements AuditorAware { 7 | @Override 8 | public Optional getCurrentAuditor() { 9 | return Optional.ofNullable(1); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E27/src/main/java/com/example/jpa/demo/db/AddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.db; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface AddressRepository extends JpaRepository{ 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E27/src/main/java/com/example/jpa/demo/service/UserInfoService.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service; 2 | 3 | public interface UserInfoService { 4 | } 5 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E27/src/main/java/com/example/jpa/demo/service/dto/UserInfoDto.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service.dto; 2 | 3 | import com.example.jpa.demo.db.Address; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | import java.util.List; 8 | 9 | @Data 10 | @Builder 11 | public class UserInfoDto { 12 | private String name; 13 | private List
addressList; 14 | } 15 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E27/src/test/java/com/example/jpa/demo/DemoApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class DemoApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E27/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | ########### 2 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 3 | #spring.datasource.username=root 4 | #spring.datasource.password=root 5 | 6 | spring.jpa.generate-ddl=true 7 | spring.jpa.hibernate.ddl-auto=none 8 | spring.datasource.hikari.pool-name=jack-test-db-pool 9 | 10 | spring.jpa.properties.hibernate.generate_statistics=true 11 | 12 | # hibernate所有的操作都是PreparedStatement,把sql的执行参数显示出来 13 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 14 | spring.jpa.show-sql=true -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E28/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E28/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E28/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Nov 08 10:30:00 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E28/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'demo' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E28/src/main/java/com/example/jpa/demo/DemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class DemoApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(DemoApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E28/src/main/java/com/example/jpa/demo/config/MyAuditorAware.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.config; 2 | 3 | import org.springframework.data.domain.AuditorAware; 4 | 5 | import java.util.Optional; 6 | public class MyAuditorAware implements AuditorAware { 7 | @Override 8 | public Optional getCurrentAuditor() { 9 | return Optional.ofNullable(1); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E28/src/main/java/com/example/jpa/demo/db/AddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.db; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface AddressRepository extends JpaRepository{ 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E28/src/main/java/com/example/jpa/demo/service/UserInfoService.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service; 2 | 3 | public interface UserInfoService { 4 | } 5 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E28/src/main/java/com/example/jpa/demo/service/dto/UserInfoDto.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service.dto; 2 | 3 | import com.example.jpa.demo.db.Address; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | import java.util.List; 8 | 9 | @Data 10 | @Builder 11 | public class UserInfoDto { 12 | private String name; 13 | private List
addressList; 14 | } 15 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E28/src/test/java/com/example/jpa/demo/DemoApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class DemoApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E28/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | ########### 2 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 3 | #spring.datasource.username=root 4 | #spring.datasource.password=root 5 | 6 | spring.jpa.generate-ddl=true 7 | spring.jpa.hibernate.ddl-auto=none 8 | spring.datasource.hikari.pool-name=jack-test-db-pool 9 | 10 | spring.jpa.properties.hibernate.generate_statistics=true 11 | 12 | # hibernate所有的操作都是PreparedStatement,把sql的执行参数显示出来 13 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 14 | spring.jpa.show-sql=true -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E29/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E29/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E29/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Nov 08 10:30:00 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E29/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'demo' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E29/src/main/java/com/example/jpa/demo/DemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class DemoApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(DemoApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E29/src/main/java/com/example/jpa/demo/config/MyAuditorAware.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.config; 2 | 3 | import org.springframework.data.domain.AuditorAware; 4 | 5 | import java.util.Optional; 6 | public class MyAuditorAware implements AuditorAware { 7 | @Override 8 | public Optional getCurrentAuditor() { 9 | return Optional.ofNullable(1); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E29/src/main/java/com/example/jpa/demo/service/UserInfoService.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service; 2 | 3 | public interface UserInfoService { 4 | } 5 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E29/src/main/java/com/example/jpa/demo/service/dto/UserInfoDto.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service.dto; 2 | 3 | import com.example.jpa.demo.db.Address; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | import java.util.List; 8 | 9 | @Data 10 | @Builder 11 | public class UserInfoDto { 12 | private String name; 13 | private List
addressList; 14 | } 15 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E29/src/test/java/com/example/jpa/demo/DemoApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class DemoApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E29/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | ########### 2 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 3 | #spring.datasource.username=root 4 | #spring.datasource.password=root 5 | 6 | spring.jpa.generate-ddl=true 7 | spring.jpa.hibernate.ddl-auto=none 8 | spring.datasource.hikari.pool-name=jack-test-db-pool 9 | 10 | spring.jpa.properties.hibernate.generate_statistics=true 11 | 12 | # hibernate所有的操作都是PreparedStatement,把sql的执行参数显示出来 13 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 14 | spring.jpa.show-sql=true -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E30/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E30/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E30/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Nov 08 10:30:00 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E30/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'demo' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E30/src/main/java/com/example/jpa/demo/DemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class DemoApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(DemoApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E30/src/main/java/com/example/jpa/demo/config/MyAuditorAware.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.config; 2 | 3 | import org.springframework.data.domain.AuditorAware; 4 | 5 | import java.util.Optional; 6 | public class MyAuditorAware implements AuditorAware { 7 | @Override 8 | public Optional getCurrentAuditor() { 9 | return Optional.ofNullable(1); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E30/src/main/java/com/example/jpa/demo/service/UserInfoService.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service; 2 | 3 | import com.example.jpa.demo.service.dto.UserInfoDto; 4 | 5 | public interface UserInfoService { 6 | UserInfoDto findByUserId(Long userId); 7 | } 8 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E30/src/main/java/com/example/jpa/demo/service/dto/UserInfoDto.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo.service.dto; 2 | 3 | import com.example.jpa.demo.db.Address; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | import java.util.List; 8 | 9 | @Data 10 | @Builder 11 | public class UserInfoDto { 12 | private String name; 13 | private Long id; 14 | private List
addressList; 15 | } 16 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E30/src/test/java/com/example/jpa/demo/DemoApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.demo; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class DemoApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E30/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | ########### 2 | #spring.datasource.url=jdbc:mysql://localhost:3306/test 3 | #spring.datasource.username=root 4 | #spring.datasource.password=root 5 | 6 | spring.jpa.generate-ddl=true 7 | spring.jpa.hibernate.ddl-auto=none 8 | spring.datasource.hikari.pool-name=jack-test-db-pool 9 | 10 | #spring.jpa.properties.hibernate.generate_statistics=true 11 | 12 | # hibernate所有的操作都是PreparedStatement,把sql的执行参数显示出来 13 | #logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 14 | spring.jpa.show-sql=true -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E31/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/E31/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E31/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E31/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'demo' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E31/src/main/java/com/example/data/es/demo/DemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.data.es.demo; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class DemoApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(DemoApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E31/src/main/java/com/example/data/es/demo/es/Author.java: -------------------------------------------------------------------------------- 1 | package com.example.data.es.demo.es; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @Builder 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | public class Author { 13 | private String name; 14 | } 15 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E31/src/main/java/com/example/data/es/demo/es/ElasticSearchConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.example.data.es.demo.es; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories; 5 | 6 | @EnableElasticsearchRepositories(basePackages = "com.example.data.es.demo.es") 7 | @Configuration 8 | public class ElasticSearchConfiguration { 9 | } 10 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E31/src/main/java/com/example/data/es/demo/es/TopicRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.data.es.demo.es; 2 | 3 | import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; 4 | 5 | import java.util.List; 6 | 7 | public interface TopicRepository extends ElasticsearchRepository { 8 | List findByTitle(String title); 9 | } 10 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E31/src/main/java/com/example/data/es/demo/jpa/JpaConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.example.data.es.demo.jpa; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.data.jpa.repository.config.EnableJpaRepositories; 5 | 6 | @EnableJpaRepositories(basePackages = "com.example.data.es.demo.jpa") 7 | @Configuration 8 | public class JpaConfiguration { 9 | } 10 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E31/src/main/java/com/example/data/es/demo/jpa/User.java: -------------------------------------------------------------------------------- 1 | package com.example.data.es.demo.jpa; 2 | 3 | import lombok.*; 4 | 5 | import javax.persistence.*; 6 | 7 | @Data 8 | @Builder 9 | @Entity 10 | @Table 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | @ToString 14 | public class User { 15 | @Id 16 | @GeneratedValue(strategy= GenerationType.AUTO) 17 | private Long id; 18 | private String name; 19 | private String email; 20 | } 21 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E31/src/main/java/com/example/data/es/demo/jpa/UserRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.data.es.demo.jpa; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/E31/src/test/java/com/example/data/es/demo/DemoApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.data.es.demo; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class DemoApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/README.md: -------------------------------------------------------------------------------- 1 | # spring data JPA 2 | 目前放置一些 拉勾教育 《Spring Data JPA原理与实战》和 机械工业出版社《Spring Data JPA:入门、实战与进阶》 https://item.jd.com/10039524638746.html 的源码(目前两本书共享一套源码)。也欢迎同学一起提交和维护; 3 | ### 强烈建议还是各位同学手敲一遍,不自己动手,知识永远是别人的,遇到问题欢迎ISSUE留言,也欢迎大家一起解答; 4 | 5 | ### 老师微信ID: A-zhangzhenhua 6 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/quick_start/README.md: -------------------------------------------------------------------------------- 1 | ## h2-console地址 2 | http://127.0.0.1:8091/h2-console/login.do?jsessionid=8e9754a59559653a8c4a9d83c0becb3b 3 | ## swagger 地址 4 | http://127.0.0.1:8091/swagger-ui/index.html 5 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/quick_start/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/quick_start/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/quick_start/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Aug 22 08:43:35 CST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/quick_start/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'jpa' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/quick_start/src/main/java/com/example/jpa/JpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class JpaApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(JpaApplication.class, args); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/quick_start/src/main/java/com/example/jpa/quick/configuration/SpringFoxConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.quick.configuration; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import springfox.documentation.swagger2.annotations.EnableSwagger2; 5 | 6 | @Configuration 7 | @EnableSwagger2 8 | public class SpringFoxConfiguration { 9 | } 10 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/quick_start/src/main/java/com/example/jpa/quick/dao/AddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.quick.dao; 2 | 3 | import com.example.jpa.quick.entity.Address; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface AddressRepository extends JpaRepository { 7 | } 8 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/quick_start/src/main/java/com/example/jpa/quick/dao/ProductionRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.quick.dao; 2 | 3 | import com.example.jpa.quick.entity.Production; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface ProductionRepository extends JpaRepository { 7 | } 8 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/quick_start/src/main/java/com/example/jpa/quick/dao/RoomRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.quick.dao; 2 | 3 | import com.example.jpa.quick.entity.Room; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | /** 7 | * @author jack 8 | */ 9 | public interface RoomRepository extends JpaRepository { 10 | } 11 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/quick_start/src/main/java/com/example/jpa/quick/dao/UserInfoRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.quick.dao; 2 | 3 | import com.example.jpa.quick.entity.UserInfo; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 6 | 7 | /** 8 | * @author jack 9 | */ 10 | public interface UserInfoRepository extends JpaRepository, JpaSpecificationExecutor{ 11 | } 12 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/quick_start/src/main/java/com/example/jpa/quick/entity/Address.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.quick.entity; 2 | 3 | import com.example.jpa.quick.core.BaseEntity; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import javax.persistence.Entity; 10 | 11 | /** 12 | * @author jack 13 | */ 14 | @Entity 15 | @Data 16 | @Builder 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | public class Address extends BaseEntity { 20 | private String city; 21 | } 22 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/quick_start/src/main/java/com/example/jpa/quick/entity/Production.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.quick.entity; 2 | 3 | import com.example.jpa.quick.core.BaseEntity; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import javax.persistence.Entity; 10 | 11 | /** 12 | * @author jack 13 | */ 14 | @Entity 15 | @Data 16 | @Builder 17 | @AllArgsConstructor 18 | @NoArgsConstructor 19 | public class Production extends BaseEntity { 20 | private String title; 21 | } 22 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/quick_start/src/main/java/com/example/jpa/quick/service/RoomService.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.quick.service; 2 | 3 | import com.example.jpa.quick.core.BaseService; 4 | import com.example.jpa.quick.entity.Room; 5 | 6 | /** 7 | * @author jack 8 | */ 9 | public interface RoomService extends BaseService { 10 | } 11 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/quick_start/src/main/java/com/example/jpa/quick/service/UserInfoService.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.quick.service; 2 | 3 | import com.example.jpa.quick.core.BaseService; 4 | import com.example.jpa.quick.entity.UserInfo; 5 | 6 | /** 7 | * @author jack 8 | */ 9 | public interface UserInfoService extends BaseService { 10 | } 11 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/quick_start/src/test/java/com/example/jpa/JpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class JpaApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/quick_start/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.show-sql=true 2 | spring.jpa.open-in-view=false 3 | logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 4 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/sharding-demo/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-data/spring-data-jpa/sharding-demo/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/sharding-demo/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/sharding-demo/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'demo' 2 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/sharding-demo/src/main/java/com/example/jpa/sharding/demo/DemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.sharding.demo; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class DemoApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(DemoApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/sharding-demo/src/main/java/com/example/jpa/sharding/demo/UserAddress.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.sharding.demo; 2 | 3 | import lombok.Data; 4 | import lombok.NoArgsConstructor; 5 | 6 | import javax.persistence.Entity; 7 | import javax.persistence.Id; 8 | 9 | @Entity 10 | @Data 11 | @NoArgsConstructor 12 | public class UserAddress { 13 | @Id 14 | private Long id; 15 | private String address; 16 | private Long userId; 17 | } 18 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/sharding-demo/src/main/java/com/example/jpa/sharding/demo/UserAddressRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.sharding.demo; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserAddressRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/sharding-demo/src/main/java/com/example/jpa/sharding/demo/UserInfoRepository.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.sharding.demo; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | import java.util.List; 6 | 7 | public interface UserInfoRepository extends JpaRepository { 8 | List findByName(String name); 9 | } 10 | -------------------------------------------------------------------------------- /spring-data/spring-data-jpa/sharding-demo/src/test/java/com/example/jpa/sharding/demo/DemoApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.jpa.sharding.demo; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class DemoApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /spring-sleuth-demo/logging-starter/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /build/ 3 | !gradle/wrapper/gradle-wrapper.jar 4 | 5 | ### STS ### 6 | .apt_generated 7 | .classpath 8 | .factorypath 9 | .project 10 | .settings 11 | .springBeans 12 | .sts4-cache 13 | 14 | ### IntelliJ IDEA ### 15 | .idea 16 | *.iws 17 | *.iml 18 | *.ipr 19 | 20 | ### NetBeans ### 21 | nbproject/private/ 22 | build/ 23 | nbbuild/ 24 | dist/ 25 | nbdist/ 26 | .nb-gradle/ -------------------------------------------------------------------------------- /spring-sleuth-demo/logging-starter/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-sleuth-demo/logging-starter/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-sleuth-demo/logging-starter/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Mar 30 17:11:43 CST 2018 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.1-all.zip 7 | -------------------------------------------------------------------------------- /spring-sleuth-demo/logging-starter/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'logging-starter' 2 | -------------------------------------------------------------------------------- /spring-sleuth-demo/logging-starter/src/main/java/com/alo7/framework/logging/starter/package-info.java: -------------------------------------------------------------------------------- 1 | package com.alo7.framework.logging.starter; -------------------------------------------------------------------------------- /spring-sleuth-demo/logging-starter/src/main/java/com/alo7/framework/tracing/jms/package-info.java: -------------------------------------------------------------------------------- 1 | package com.alo7.framework.tracing.jms; -------------------------------------------------------------------------------- /spring-sleuth-demo/logging-starter/src/test/java/com/TestApplication.java: -------------------------------------------------------------------------------- 1 | package com; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | 5 | /** 6 | * @author jarvis.fu 7 | * 8 | * Created By jarvis.fu at 上午10:41 on 2018/4/11 9 | */ 10 | 11 | @SpringBootApplication 12 | public class TestApplication { 13 | } 14 | -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbit_produce/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbit_produce/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-sleuth-demo/rabbit/rabbit_produce/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbit_produce/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbit_produce/src/main/java/com/example/rabbit_produce/RabbitProduceApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.rabbit_produce; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class RabbitProduceApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(RabbitProduceApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbit_produce/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-sleuth-demo/rabbit/rabbit_produce/src/main/resources/application.properties -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbit_produce/src/test/java/com/example/rabbit_produce/RabbitProduceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.rabbit_produce; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RabbitProduceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbitmq_consumer/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /build/ 3 | !gradle/wrapper/gradle-wrapper.jar 4 | 5 | ### STS ### 6 | .apt_generated 7 | .classpath 8 | .factorypath 9 | .project 10 | .settings 11 | .springBeans 12 | .sts4-cache 13 | 14 | ### IntelliJ IDEA ### 15 | .idea 16 | *.iws 17 | *.iml 18 | *.ipr 19 | /out/ 20 | 21 | ### NetBeans ### 22 | /nbproject/private/ 23 | /build/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbitmq_consumer/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-sleuth-demo/rabbit/rabbitmq_consumer/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbitmq_consumer/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Feb 06 12:27:20 CET 2018 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.1-bin.zip 7 | -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbitmq_consumer/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'rabbitmq_consumer' 2 | -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbitmq_consumer/src/main/java/com/example/rabbitmq_consumer/RabbitMqSenderController.java: -------------------------------------------------------------------------------- 1 | package com.example.rabbitmq_consumer; 2 | 3 | import org.springframework.web.bind.annotation.RestController; 4 | 5 | @RestController("mq/consumer") 6 | public class RabbitMqSenderController { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbitmq_consumer/src/main/java/com/example/rabbitmq_consumer/RabbitmqConsumerApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.rabbitmq_consumer; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class RabbitmqConsumerApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(RabbitmqConsumerApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbitmq_consumer/src/test/java/com/example/rabbitmq_consumer/RabbitmqConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.rabbitmq_consumer; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RabbitmqConsumerApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbitmq_sender/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /build/ 3 | !gradle/wrapper/gradle-wrapper.jar 4 | 5 | ### STS ### 6 | .apt_generated 7 | .classpath 8 | .factorypath 9 | .project 10 | .settings 11 | .springBeans 12 | .sts4-cache 13 | 14 | ### IntelliJ IDEA ### 15 | .idea 16 | *.iws 17 | *.iml 18 | *.ipr 19 | /out/ 20 | 21 | ### NetBeans ### 22 | /nbproject/private/ 23 | /build/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbitmq_sender/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangzhenhuajack/spring-boot-guide/666fb613c3a04cd12bbb0a0ec131631175a91541/spring-sleuth-demo/rabbit/rabbitmq_sender/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbitmq_sender/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Feb 06 12:27:20 CET 2018 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.1-bin.zip 7 | -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbitmq_sender/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'rabbitmq_sender' 2 | -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbitmq_sender/src/main/java/com/example/rabbitmq_sender/RabbitTemplateSender.java: -------------------------------------------------------------------------------- 1 | package com.example.rabbitmq_sender; 2 | 3 | import org.springframework.amqp.rabbit.core.RabbitTemplate; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.stereotype.Component; 6 | 7 | @Component 8 | public class RabbitTemplateSender { 9 | // @Autowired 10 | // private final RabbitTemplate rabbitTemplate; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbitmq_sender/src/main/java/com/example/rabbitmq_sender/RabbitmqSenderApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.rabbitmq_sender; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class RabbitmqSenderApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(RabbitmqSenderApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /spring-sleuth-demo/rabbit/rabbitmq_sender/src/test/java/com/example/rabbitmq_sender/RabbitmqSenderApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.rabbitmq_sender; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class RabbitmqSenderApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | --------------------------------------------------------------------------------