├── .gitignore ├── LICENSE ├── README.md ├── TODO.md ├── pom.xml ├── spring-boot-demo-activiti ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── activiti │ │ │ └── SpringBootDemoActivitiApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── xkcoding │ └── activiti │ └── SpringBootDemoActivitiApplicationTests.java ├── spring-boot-demo-actuator ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── actuator │ │ │ └── SpringBootDemoActuatorApplication.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── com │ └── xkcoding │ └── actuator │ └── SpringBootDemoActuatorApplicationTests.java ├── spring-boot-demo-admin-client ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── admin │ │ │ └── client │ │ │ ├── SpringBootDemoAdminClientApplication.java │ │ │ └── controller │ │ │ └── IndexController.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── com │ └── xkcoding │ └── admin │ └── client │ └── SpringBootDemoAdminClientApplicationTests.java ├── spring-boot-demo-admin-server ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── admin │ │ │ └── server │ │ │ └── SpringBootDemoAdminServerApplication.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── com │ └── xkcoding │ └── admin │ └── server │ └── SpringBootDemoAdminServerApplicationTests.java ├── spring-boot-demo-async ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── async │ │ │ └── SpringBootDemoAsyncApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── xkcoding │ └── async │ └── SpringBootDemoAsyncApplicationTests.java ├── spring-boot-demo-cache-ehcache ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── cache │ │ │ └── ehcache │ │ │ ├── SpringBootDemoCacheEhcacheApplication.java │ │ │ ├── entity │ │ │ └── User.java │ │ │ └── service │ │ │ ├── UserService.java │ │ │ └── impl │ │ │ └── UserServiceImpl.java │ └── resources │ │ ├── application.yml │ │ └── ehcache.xml │ └── test │ └── java │ └── com │ └── xkcoding │ └── cache │ └── ehcache │ ├── SpringBootDemoCacheEhcacheApplicationTests.java │ └── service │ └── UserServiceTest.java ├── spring-boot-demo-cache-redis ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── cache │ │ │ └── redis │ │ │ ├── SpringBootDemoCacheRedisApplication.java │ │ │ ├── config │ │ │ └── RedisConfig.java │ │ │ ├── entity │ │ │ └── User.java │ │ │ └── service │ │ │ ├── UserService.java │ │ │ └── impl │ │ │ └── UserServiceImpl.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── com │ └── xkcoding │ └── cache │ └── redis │ ├── RedisTest.java │ ├── SpringBootDemoCacheRedisApplicationTests.java │ └── service │ └── UserServiceTest.java ├── spring-boot-demo-docker ├── .gitignore ├── Dockerfile ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── docker │ │ │ ├── SpringBootDemoDockerApplication.java │ │ │ └── controller │ │ │ └── HelloController.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── com │ └── xkcoding │ └── docker │ └── SpringBootDemoDockerApplicationTests.java ├── spring-boot-demo-dubbo ├── .gitignore ├── README.md ├── pom.xml ├── spring-boot-demo-dubbo-common │ ├── .gitignore │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── xkcoding │ │ └── dubbo │ │ └── common │ │ └── service │ │ └── HelloService.java ├── spring-boot-demo-dubbo-consumer │ ├── .gitignore │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── xkcoding │ │ │ │ └── dubbo │ │ │ │ └── consumer │ │ │ │ ├── SpringBootDemoDubboConsumerApplication.java │ │ │ │ └── controller │ │ │ │ └── HelloController.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── com │ │ └── xkcoding │ │ └── dubbo │ │ └── consumer │ │ └── SpringBootDemoDubboConsumerApplicationTests.java └── spring-boot-demo-dubbo-provider │ ├── .gitignore │ ├── README.md │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── dubbo │ │ │ └── provider │ │ │ ├── SpringBootDemoDubboProviderApplication.java │ │ │ └── service │ │ │ └── HelloServiceImpl.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── com │ └── xkcoding │ └── dubbo │ └── provider │ └── SpringBootDemoDubboProviderApplicationTests.java ├── spring-boot-demo-elasticsearch ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── elasticsearch │ │ │ ├── SpringBootDemoElasticsearchApplication.java │ │ │ ├── constants │ │ │ └── EsConsts.java │ │ │ ├── model │ │ │ └── Person.java │ │ │ └── repository │ │ │ └── PersonRepository.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── com │ └── xkcoding │ └── elasticsearch │ ├── SpringBootDemoElasticsearchApplicationTests.java │ ├── repository │ └── PersonRepositoryTest.java │ └── template │ └── TemplateTest.java ├── spring-boot-demo-email ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── email │ │ │ ├── SpringBootDemoEmailApplication.java │ │ │ └── service │ │ │ ├── MailService.java │ │ │ └── impl │ │ │ └── MailServiceImpl.java │ └── resources │ │ ├── application.yml │ │ ├── static │ │ └── xkcoding.png │ │ └── templates │ │ └── welcome.html │ └── test │ └── java │ └── com │ └── xkcoding │ └── email │ ├── SpringBootDemoEmailApplicationTests.java │ └── service │ └── MailServiceTest.java ├── spring-boot-demo-exception-handler ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── exception │ │ │ └── handler │ │ │ ├── SpringBootDemoExceptionHandlerApplication.java │ │ │ ├── constant │ │ │ └── Status.java │ │ │ ├── controller │ │ │ └── TestController.java │ │ │ ├── exception │ │ │ ├── BaseException.java │ │ │ ├── JsonException.java │ │ │ └── PageException.java │ │ │ ├── handler │ │ │ └── DemoExceptionHandler.java │ │ │ └── model │ │ │ └── ApiResponse.java │ └── resources │ │ ├── application.yml │ │ └── templates │ │ └── error.html │ └── test │ └── java │ └── com │ └── xkcoding │ └── exception │ └── handler │ └── SpringBootDemoExceptionHandlerApplicationTests.java ├── spring-boot-demo-helloworld ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── helloworld │ │ │ └── SpringBootDemoHelloworldApplication.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── com │ └── xkcoding │ └── helloworld │ └── SpringBootDemoHelloworldApplicationTests.java ├── spring-boot-demo-log-aop ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── log │ │ │ └── aop │ │ │ ├── SpringBootDemoLogAopApplication.java │ │ │ ├── aspectj │ │ │ └── AopLog.java │ │ │ └── controller │ │ │ └── TestController.java │ └── resources │ │ ├── application.yml │ │ └── logback-spring.xml │ └── test │ └── java │ └── com │ └── xkcoding │ └── log │ └── aop │ └── SpringBootDemoLogAopApplicationTests.java ├── spring-boot-demo-logback ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── logback │ │ │ └── SpringBootDemoLogbackApplication.java │ └── resources │ │ ├── application.yml │ │ └── logback-spring.xml │ └── test │ └── java │ └── com │ └── xkcoding │ └── logback │ └── SpringBootDemoLogbackApplicationTests.java ├── spring-boot-demo-mongodb ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── mongodb │ │ │ └── SpringBootDemoMongodbApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── xkcoding │ └── mongodb │ └── SpringBootDemoMongodbApplicationTests.java ├── spring-boot-demo-mq-kafka ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── mq │ │ │ └── kafka │ │ │ └── SpringBootDemoMqKafkaApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── xkcoding │ └── mq │ └── kafka │ └── SpringBootDemoMqKafkaApplicationTests.java ├── spring-boot-demo-mq-rabbitmq ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── mq │ │ │ └── rabbitmq │ │ │ └── SpringBootDemoMqRabbitmqApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── xkcoding │ └── mq │ └── rabbitmq │ └── SpringBootDemoMqRabbitmqApplicationTests.java ├── spring-boot-demo-mq-rocketmq ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── mq │ │ │ └── rocketmq │ │ │ └── SpringBootDemoMqRocketmqApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── xkcoding │ └── mq │ └── rocketmq │ └── SpringBootDemoMqRocketmqApplicationTests.java ├── spring-boot-demo-neo4j ├── .gitignore ├── README.md ├── assets │ └── image-20181225150513101-5721513.png ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── neo4j │ │ │ ├── SpringBootDemoNeo4jApplication.java │ │ │ ├── config │ │ │ └── CustomIdStrategy.java │ │ │ ├── constants │ │ │ └── NeoConsts.java │ │ │ ├── model │ │ │ ├── Class.java │ │ │ ├── Lesson.java │ │ │ ├── Student.java │ │ │ └── Teacher.java │ │ │ ├── payload │ │ │ ├── ClassmateInfoGroupByLesson.java │ │ │ └── TeacherStudent.java │ │ │ ├── repository │ │ │ ├── ClassRepository.java │ │ │ ├── LessonRepository.java │ │ │ ├── StudentRepository.java │ │ │ └── TeacherRepository.java │ │ │ └── service │ │ │ └── NeoService.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── com │ └── xkcoding │ └── neo4j │ ├── Neo4jTest.java │ └── SpringBootDemoNeo4jApplicationTests.java ├── spring-boot-demo-orm-beetlsql ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── orm │ │ │ └── beetlsql │ │ │ ├── SpringBootDemoOrmBeetlsqlApplication.java │ │ │ ├── config │ │ │ └── BeetlConfig.java │ │ │ ├── dao │ │ │ └── UserDao.java │ │ │ ├── entity │ │ │ └── User.java │ │ │ └── service │ │ │ ├── UserService.java │ │ │ └── impl │ │ │ └── UserServiceImpl.java │ └── resources │ │ ├── application.yml │ │ └── db │ │ ├── data.sql │ │ └── schema.sql │ └── test │ └── java │ └── com │ └── xkcoding │ └── orm │ └── beetlsql │ ├── SpringBootDemoOrmBeetlsqlApplicationTests.java │ └── service │ └── UserServiceTest.java ├── spring-boot-demo-orm-jdbctemplate ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── orm │ │ │ └── jdbctemplate │ │ │ ├── SpringBootDemoOrmJdbctemplateApplication.java │ │ │ ├── annotation │ │ │ ├── Column.java │ │ │ ├── Ignore.java │ │ │ ├── Pk.java │ │ │ └── Table.java │ │ │ ├── constant │ │ │ └── Const.java │ │ │ ├── controller │ │ │ └── UserController.java │ │ │ ├── dao │ │ │ ├── UserDao.java │ │ │ └── base │ │ │ │ └── BaseDao.java │ │ │ ├── entity │ │ │ └── User.java │ │ │ └── service │ │ │ ├── IUserService.java │ │ │ └── impl │ │ │ └── UserServiceImpl.java │ └── resources │ │ ├── application.yml │ │ └── db │ │ ├── data.sql │ │ └── schema.sql │ └── test │ └── java │ └── com │ └── xkcoding │ └── orm │ └── jdbctemplate │ └── SpringBootDemoOrmJdbctemplateApplicationTests.java ├── spring-boot-demo-orm-jpa ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── orm │ │ │ └── jpa │ │ │ ├── SpringBootDemoOrmJpaApplication.java │ │ │ ├── config │ │ │ └── JpaConfig.java │ │ │ ├── entity │ │ │ ├── User.java │ │ │ └── base │ │ │ │ └── AbstractAuditModel.java │ │ │ └── repository │ │ │ └── UserDao.java │ └── resources │ │ ├── application.yml │ │ └── db │ │ ├── data.sql │ │ └── schema.sql │ └── test │ └── java │ └── com │ └── xkcoding │ └── orm │ └── jpa │ ├── SpringBootDemoOrmJpaApplicationTests.java │ └── repository │ └── UserDaoTest.java ├── spring-boot-demo-orm-mybatis-mapper-page ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── orm │ │ │ └── mybatis │ │ │ └── MapperAndPage │ │ │ ├── SpringBootDemoOrmMybatisMapperPageApplication.java │ │ │ ├── entity │ │ │ └── User.java │ │ │ └── mapper │ │ │ └── UserMapper.java │ └── resources │ │ ├── application.yml │ │ └── db │ │ ├── data.sql │ │ └── schema.sql │ └── test │ └── java │ └── com │ └── xkcoding │ └── orm │ └── mybatis │ └── MapperAndPage │ ├── SpringBootDemoOrmMybatisMapperPageApplicationTests.java │ └── mapper │ └── UserMapperTest.java ├── spring-boot-demo-orm-mybatis-plus ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── orm │ │ │ └── mybatis │ │ │ └── plus │ │ │ ├── SpringBootDemoOrmMybatisPlusApplication.java │ │ │ ├── config │ │ │ ├── CommonFieldHandler.java │ │ │ └── MybatisPlusConfig.java │ │ │ ├── entity │ │ │ └── User.java │ │ │ ├── mapper │ │ │ └── UserMapper.java │ │ │ └── service │ │ │ ├── UserService.java │ │ │ └── impl │ │ │ └── UserServiceImpl.java │ └── resources │ │ ├── application.yml │ │ └── db │ │ ├── data.sql │ │ └── schema.sql │ └── test │ └── java │ └── com │ └── xkcoding │ └── orm │ └── mybatis │ └── plus │ ├── SpringBootDemoOrmMybatisPlusApplicationTests.java │ └── service │ └── UserServiceTest.java ├── spring-boot-demo-orm-mybatis ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── orm │ │ │ └── mybatis │ │ │ ├── SpringBootDemoOrmMybatisApplication.java │ │ │ ├── entity │ │ │ └── User.java │ │ │ └── mapper │ │ │ └── UserMapper.java │ └── resources │ │ ├── application.yml │ │ ├── db │ │ ├── data.sql │ │ └── schema.sql │ │ └── mappers │ │ └── UserMapper.xml │ └── test │ └── java │ └── com │ └── xkcoding │ └── orm │ └── mybatis │ ├── SpringBootDemoOrmMybatisApplicationTests.java │ └── mapper │ └── UserMapperTest.java ├── spring-boot-demo-properties ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── properties │ │ │ ├── SpringBootDemoPropertiesApplication.java │ │ │ ├── controller │ │ │ └── PropertyController.java │ │ │ └── property │ │ │ ├── ApplicationProperty.java │ │ │ └── DeveloperProperty.java │ └── resources │ │ ├── META-INF │ │ └── additional-spring-configuration-metadata.json │ │ ├── application-dev.yml │ │ ├── application-prod.yml │ │ └── application.yml │ └── test │ └── java │ └── com │ └── xkcoding │ └── properties │ └── SpringBootDemoPropertiesApplicationTests.java ├── spring-boot-demo-rbac-security ├── .gitignore ├── README.md ├── pom.xml ├── sql │ └── security.sql └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── rbac │ │ │ └── security │ │ │ ├── SpringBootDemoRbacSecurityApplication.java │ │ │ ├── common │ │ │ ├── ApiResponse.java │ │ │ ├── BaseException.java │ │ │ ├── Consts.java │ │ │ ├── IStatus.java │ │ │ ├── PageResult.java │ │ │ └── Status.java │ │ │ ├── config │ │ │ ├── CustomConfig.java │ │ │ ├── IdConfig.java │ │ │ ├── IgnoreConfig.java │ │ │ ├── JwtAuthenticationFilter.java │ │ │ ├── JwtConfig.java │ │ │ ├── RbacAuthorityService.java │ │ │ ├── RedisConfig.java │ │ │ ├── SecurityConfig.java │ │ │ ├── SecurityHandlerConfig.java │ │ │ └── WebMvcConfig.java │ │ │ ├── controller │ │ │ ├── AuthController.java │ │ │ ├── MonitorController.java │ │ │ └── TestController.java │ │ │ ├── exception │ │ │ ├── SecurityException.java │ │ │ └── handler │ │ │ │ └── GlobalExceptionHandler.java │ │ │ ├── model │ │ │ ├── Permission.java │ │ │ ├── Role.java │ │ │ ├── RolePermission.java │ │ │ ├── User.java │ │ │ ├── UserRole.java │ │ │ └── unionkey │ │ │ │ ├── RolePermissionKey.java │ │ │ │ └── UserRoleKey.java │ │ │ ├── payload │ │ │ ├── LoginRequest.java │ │ │ └── PageCondition.java │ │ │ ├── repository │ │ │ ├── PermissionDao.java │ │ │ ├── RoleDao.java │ │ │ ├── RolePermissionDao.java │ │ │ ├── UserDao.java │ │ │ └── UserRoleDao.java │ │ │ ├── service │ │ │ ├── CustomUserDetailsService.java │ │ │ └── MonitorService.java │ │ │ ├── util │ │ │ ├── JwtUtil.java │ │ │ ├── PageUtil.java │ │ │ ├── RedisUtil.java │ │ │ ├── ResponseUtil.java │ │ │ └── SecurityUtil.java │ │ │ └── vo │ │ │ ├── JwtResponse.java │ │ │ ├── OnlineUser.java │ │ │ └── UserPrincipal.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── com │ └── xkcoding │ └── rbac │ └── security │ ├── SpringBootDemoRbacSecurityApplicationTests.java │ ├── repository │ ├── DataInitTest.java │ └── UserDaoTest.java │ └── util │ └── RedisUtilTest.java ├── spring-boot-demo-rbac-shiro ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── rbac │ │ │ └── shiro │ │ │ └── SpringBootDemoRbacShiroApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── xkcoding │ └── rbac │ └── shiro │ └── SpringBootDemoRbacShiroApplicationTests.java ├── spring-boot-demo-session ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── session │ │ │ ├── SpringBootDemoSessionApplication.java │ │ │ ├── config │ │ │ └── WebMvcConfig.java │ │ │ ├── constants │ │ │ └── Consts.java │ │ │ ├── controller │ │ │ └── PageController.java │ │ │ └── interceptor │ │ │ └── SessionInterceptor.java │ └── resources │ │ ├── application.yml │ │ └── templates │ │ ├── index.html │ │ └── login.html │ └── test │ └── java │ └── com │ └── xkcoding │ └── session │ └── SpringBootDemoSessionApplicationTests.java ├── spring-boot-demo-social ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── social │ │ │ └── SpringBootDemoSocialApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── xkcoding │ └── social │ └── SpringBootDemoSocialApplicationTests.java ├── spring-boot-demo-swagger-beauty ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── swagger │ │ │ └── beauty │ │ │ ├── SpringBootDemoSwaggerBeautyApplication.java │ │ │ ├── common │ │ │ └── ApiResponse.java │ │ │ ├── controller │ │ │ └── UserController.java │ │ │ └── entity │ │ │ └── User.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── com │ └── xkcoding │ └── swagger │ └── beauty │ └── SpringBootDemoSwaggerBeautyApplicationTests.java ├── spring-boot-demo-swagger ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── swagger │ │ │ ├── SpringBootDemoSwaggerApplication.java │ │ │ ├── common │ │ │ ├── ApiResponse.java │ │ │ ├── DataType.java │ │ │ └── ParamType.java │ │ │ ├── config │ │ │ └── Swagger2Config.java │ │ │ ├── controller │ │ │ └── UserController.java │ │ │ └── entity │ │ │ └── User.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── com │ └── xkcoding │ └── swagger │ └── SpringBootDemoSwaggerApplicationTests.java ├── spring-boot-demo-task-quartz ├── .gitignore ├── README.md ├── assets │ ├── image-20181126171110378-3223470.png │ ├── image-20181126214007372-3239607.png │ ├── image-20181126214109926-3239669.png │ ├── image-20181126214138641-3239698.png │ ├── image-20181126214212905-3239732.png │ └── image-20181126214250757-3239770.png ├── init │ └── dbTables │ │ ├── tables_cloudscape.sql │ │ ├── tables_cubrid.sql │ │ ├── tables_db2.sql │ │ ├── tables_db2_v72.sql │ │ ├── tables_db2_v8.sql │ │ ├── tables_db2_v95.sql │ │ ├── tables_derby.sql │ │ ├── tables_derby_previous.sql │ │ ├── tables_firebird.sql │ │ ├── tables_h2.sql │ │ ├── tables_hsqldb.sql │ │ ├── tables_hsqldb_old.sql │ │ ├── tables_informix.sql │ │ ├── tables_mysql.sql │ │ ├── tables_mysql_innodb.sql │ │ ├── tables_oracle.sql │ │ ├── tables_pointbase.sql │ │ ├── tables_postgres.sql │ │ ├── tables_sapdb.sql │ │ ├── tables_solid.sql │ │ ├── tables_sqlServer.sql │ │ └── tables_sybase.sql ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── task │ │ │ └── quartz │ │ │ ├── SpringBootDemoTaskQuartzApplication.java │ │ │ ├── common │ │ │ └── ApiResponse.java │ │ │ ├── controller │ │ │ └── JobController.java │ │ │ ├── entity │ │ │ ├── domain │ │ │ │ └── JobAndTrigger.java │ │ │ └── form │ │ │ │ └── JobForm.java │ │ │ ├── job │ │ │ ├── HelloJob.java │ │ │ ├── TestJob.java │ │ │ └── base │ │ │ │ └── BaseJob.java │ │ │ ├── mapper │ │ │ └── JobMapper.java │ │ │ ├── service │ │ │ ├── JobService.java │ │ │ └── impl │ │ │ │ └── JobServiceImpl.java │ │ │ └── util │ │ │ └── JobUtil.java │ └── resources │ │ ├── application.yml │ │ ├── mappers │ │ └── JobMapper.xml │ │ └── static │ │ └── job.html │ └── test │ └── java │ └── com │ └── xkcoding │ └── task │ └── quartz │ └── SpringBootDemoTaskQuartzApplicationTests.java ├── spring-boot-demo-task ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── task │ │ │ ├── SpringBootDemoTaskApplication.java │ │ │ ├── config │ │ │ └── TaskConfig.java │ │ │ └── job │ │ │ └── TaskJob.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── com │ └── xkcoding │ └── task │ └── SpringBootDemoTaskApplicationTests.java ├── spring-boot-demo-template-beetl ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── template │ │ │ └── beetl │ │ │ ├── SpringBootDemoTemplateBeetlApplication.java │ │ │ ├── controller │ │ │ ├── IndexController.java │ │ │ └── UserController.java │ │ │ └── model │ │ │ └── User.java │ └── resources │ │ ├── application.yml │ │ └── templates │ │ ├── common │ │ └── head.html │ │ └── page │ │ ├── index.btl │ │ └── login.btl │ └── test │ └── java │ └── com │ └── xkcoding │ └── template │ └── beetl │ └── SpringBootDemoTemplateBeetlApplicationTests.java ├── spring-boot-demo-template-enjoy ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── template │ │ │ └── enjoy │ │ │ ├── SpringBootDemoTemplateEnjoyApplication.java │ │ │ ├── config │ │ │ └── EnjoyConfig.java │ │ │ ├── controller │ │ │ ├── IndexController.java │ │ │ └── UserController.java │ │ │ └── model │ │ │ └── User.java │ └── resources │ │ ├── application.yml │ │ └── templates │ │ ├── common │ │ └── head.html │ │ └── page │ │ ├── index.html │ │ └── login.html │ └── test │ └── java │ └── com │ └── xkcoding │ └── template │ └── enjoy │ └── SpringBootDemoTemplateEnjoyApplicationTests.java ├── spring-boot-demo-template-freemarker ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── template │ │ │ └── freemarker │ │ │ ├── SpringBootDemoTemplateFreemarkerApplication.java │ │ │ ├── controller │ │ │ ├── IndexController.java │ │ │ └── UserController.java │ │ │ └── model │ │ │ └── User.java │ └── resources │ │ ├── application.yml │ │ └── templates │ │ ├── common │ │ └── head.ftl │ │ └── page │ │ ├── index.ftl │ │ └── login.ftl │ └── test │ └── java │ └── com │ └── xkcoding │ └── template │ └── freemarker │ └── SpringBootDemoTemplateFreemarkerApplicationTests.java ├── spring-boot-demo-template-thymeleaf ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── template │ │ │ └── thymeleaf │ │ │ ├── SpringBootDemoTemplateThymeleafApplication.java │ │ │ ├── controller │ │ │ ├── IndexController.java │ │ │ └── UserController.java │ │ │ └── model │ │ │ └── User.java │ └── resources │ │ ├── application.yml │ │ └── templates │ │ ├── common │ │ └── head.html │ │ └── page │ │ ├── index.html │ │ └── login.html │ └── test │ └── java │ └── com │ └── xkcoding │ └── template │ └── thymeleaf │ └── SpringBootDemoTemplateThymeleafApplicationTests.java ├── spring-boot-demo-uflo ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── uflo │ │ │ └── SpringBootDemoUfloApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── xkcoding │ └── uflo │ └── SpringBootDemoUfloApplicationTests.java ├── spring-boot-demo-upload ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── upload │ │ │ ├── SpringBootDemoUploadApplication.java │ │ │ ├── config │ │ │ └── UploadConfig.java │ │ │ ├── controller │ │ │ ├── IndexController.java │ │ │ └── UploadController.java │ │ │ └── service │ │ │ ├── IQiNiuService.java │ │ │ └── impl │ │ │ └── QiNiuServiceImpl.java │ └── resources │ │ ├── application.yml │ │ └── templates │ │ └── index.html │ └── test │ └── java │ └── com │ └── xkcoding │ └── upload │ └── SpringBootDemoUploadApplicationTests.java ├── spring-boot-demo-ureport2 ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── ureport2 │ │ │ └── SpringBootDemoUreport2Application.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── xkcoding │ └── ureport2 │ └── SpringBootDemoUreport2ApplicationTests.java ├── spring-boot-demo-urule ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── urule │ │ │ └── SpringBootDemoUruleApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── xkcoding │ └── urule │ └── SpringBootDemoUruleApplicationTests.java ├── spring-boot-demo-war ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── war │ │ │ └── SpringBootDemoWarApplication.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── com │ └── xkcoding │ └── war │ └── SpringBootDemoWarApplicationTests.java ├── spring-boot-demo-websocket-socketio ├── .gitignore ├── README.md ├── assets │ ├── image-20181219152318079-5204198.png │ └── image-20181219152330156-5204210.png ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── websocket │ │ │ └── socketio │ │ │ ├── SpringBootDemoWebsocketSocketioApplication.java │ │ │ ├── config │ │ │ ├── DbTemplate.java │ │ │ ├── Event.java │ │ │ ├── ServerConfig.java │ │ │ └── WsConfig.java │ │ │ ├── controller │ │ │ └── MessageController.java │ │ │ ├── handler │ │ │ └── MessageEventHandler.java │ │ │ ├── init │ │ │ └── ServerRunner.java │ │ │ └── payload │ │ │ ├── BroadcastMessageRequest.java │ │ │ ├── GroupMessageRequest.java │ │ │ ├── JoinRequest.java │ │ │ └── SingleMessageRequest.java │ └── resources │ │ ├── application.yml │ │ └── static │ │ ├── bootstrap.css │ │ ├── index.html │ │ └── js │ │ ├── jquery-1.10.1.min.js │ │ ├── moment.min.js │ │ └── socket.io │ │ └── socket.io.js │ └── test │ └── java │ └── com │ └── xkcoding │ └── websocket │ └── socketio │ └── SpringBootDemoWebsocketSocketioApplicationTests.java ├── spring-boot-demo-websocket ├── .gitignore ├── README.md ├── assets │ ├── image-20181217110240322-5015760.png │ ├── image-20181217110304065-5015784.png │ ├── image-20181217110328810-5015808.png │ └── image-20181217110336017-5015816.png ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── xkcoding │ │ │ └── websocket │ │ │ ├── SpringBootDemoWebsocketApplication.java │ │ │ ├── common │ │ │ └── WebSocketConsts.java │ │ │ ├── config │ │ │ └── WebSocketConfig.java │ │ │ ├── controller │ │ │ └── ServerController.java │ │ │ ├── model │ │ │ ├── Server.java │ │ │ └── server │ │ │ │ ├── Cpu.java │ │ │ │ ├── Jvm.java │ │ │ │ ├── Mem.java │ │ │ │ ├── Sys.java │ │ │ │ └── SysFile.java │ │ │ ├── payload │ │ │ ├── KV.java │ │ │ ├── ServerVO.java │ │ │ └── server │ │ │ │ ├── CpuVO.java │ │ │ │ ├── JvmVO.java │ │ │ │ ├── MemVO.java │ │ │ │ ├── SysFileVO.java │ │ │ │ └── SysVO.java │ │ │ ├── task │ │ │ └── ServerTask.java │ │ │ └── util │ │ │ ├── IpUtil.java │ │ │ └── ServerUtil.java │ └── resources │ │ ├── application.yml │ │ └── static │ │ ├── js │ │ ├── sockjs.min.js │ │ └── stomp.js │ │ └── server.html │ └── test │ └── java │ └── com │ └── xkcoding │ └── websocket │ └── SpringBootDemoWebsocketApplicationTests.java └── spring-boot-demo-zookeeper ├── .gitignore ├── README.md ├── pom.xml └── src ├── main ├── java │ └── com │ │ └── xkcoding │ │ └── zookeeper │ │ ├── SpringBootDemoZookeeperApplication.java │ │ ├── annotation │ │ ├── LockKeyParam.java │ │ └── ZooLock.java │ │ ├── aspectj │ │ └── ZooLockAspect.java │ │ └── config │ │ ├── ZkConfig.java │ │ └── props │ │ └── ZkProps.java └── resources │ └── application.yml └── test └── java └── com └── xkcoding └── zookeeper └── SpringBootDemoZookeeperApplicationTests.java /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | ### xkcoding-后端 template 3 | ### Spring Boot ### 4 | /target/ 5 | !.mvn/wrapper/maven-wrapper.jar 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | out/ 22 | gen/ 23 | 24 | ### NetBeans ### 25 | /nbproject/private/ 26 | /build/ 27 | /nbbuild/ 28 | /dist/ 29 | /nbdist/ 30 | /.nb-gradle/ 31 | 32 | ### LOGS ### 33 | logs/ 34 | *.log 35 | 36 | ### Mac OS ### 37 | .DS_Store 38 | 39 | ### VS CODE ### 40 | .vscode/ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Yangkai.Shen 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /spring-boot-demo-activiti/.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-boot-demo-activiti/src/main/java/com/xkcoding/activiti/SpringBootDemoActivitiApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.activiti; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SpringBootDemoActivitiApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SpringBootDemoActivitiApplication.class, args); 11 | } 12 | 13 | } 14 | 15 | -------------------------------------------------------------------------------- /spring-boot-demo-activiti/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-activiti/src/main/resources/application.properties -------------------------------------------------------------------------------- /spring-boot-demo-activiti/src/test/java/com/xkcoding/activiti/SpringBootDemoActivitiApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.activiti; 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 SpringBootDemoActivitiApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /spring-boot-demo-actuator/.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-boot-demo-actuator/src/main/java/com/xkcoding/actuator/SpringBootDemoActuatorApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.actuator; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动类 9 | *

10 | * 11 | * @package: com.xkcoding.actuator 12 | * @description: 启动类 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/9/29 2:27 PM 15 | * @copyright: Copyright (c)2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoActuatorApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoActuatorApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-actuator/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo 5 | # 若要访问端点信息,需要配置用户名和密码 6 | spring: 7 | security: 8 | user: 9 | name: xkcoding 10 | password: 123456 11 | management: 12 | # 端点信息接口使用的端口,为了和主系统接口使用的端口进行分离 13 | server: 14 | port: 8090 15 | servlet: 16 | context-path: /sys 17 | # 端点健康情况,默认值"never",设置为"always"可以显示硬盘使用情况和线程情况 18 | endpoint: 19 | health: 20 | show-details: always 21 | # 设置端点暴露的哪些内容,默认["health","info"],设置"*"代表暴露所有可访问的端点 22 | endpoints: 23 | web: 24 | exposure: 25 | include: '*' -------------------------------------------------------------------------------- /spring-boot-demo-actuator/src/test/java/com/xkcoding/actuator/SpringBootDemoActuatorApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.actuator; 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 SpringBootDemoActuatorApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-admin-client/.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-boot-demo-admin-client/src/main/java/com/xkcoding/admin/client/SpringBootDemoAdminClientApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.admin.client; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动类 9 | *

10 | * 11 | * @package: com.xkcoding.admin.client 12 | * @description: 启动类 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/10/8 2:16 PM 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoAdminClientApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoAdminClientApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-admin-client/src/main/java/com/xkcoding/admin/client/controller/IndexController.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.admin.client.controller; 2 | 3 | import org.springframework.web.bind.annotation.GetMapping; 4 | import org.springframework.web.bind.annotation.RestController; 5 | 6 | /** 7 | *

8 | * 首页 9 | *

10 | * 11 | * @package: com.xkcoding.admin.client.controller 12 | * @description: 首页 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/10/8 2:15 PM 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @RestController 20 | public class IndexController { 21 | @GetMapping(value = {"", "/"}) 22 | public String index() { 23 | return "This is a Spring Boot Admin Client."; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-admin-client/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo 5 | spring: 6 | application: 7 | # Spring Boot Admin展示的客户端项目名,不设置,会使用自动生成的随机id 8 | name: spring-boot-demo-admin-client 9 | boot: 10 | admin: 11 | client: 12 | # Spring Boot Admin 服务端地址 13 | url: "http://localhost:8000/admin" 14 | instance: 15 | metadata: 16 | # 客户端端点信息的安全认证信息 17 | user.name: ${spring.security.user.name} 18 | user.password: ${spring.security.user.password} 19 | security: 20 | user: 21 | name: xkcoding 22 | password: 123456 23 | management: 24 | endpoint: 25 | health: 26 | # 端点健康情况,默认值"never",设置为"always"可以显示硬盘使用情况和线程情况 27 | show-details: always 28 | endpoints: 29 | web: 30 | exposure: 31 | # 设置端点暴露的哪些内容,默认["health","info"],设置"*"代表暴露所有可访问的端点 32 | include: "*" -------------------------------------------------------------------------------- /spring-boot-demo-admin-client/src/test/java/com/xkcoding/admin/client/SpringBootDemoAdminClientApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.admin.client; 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 SpringBootDemoAdminClientApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-admin-server/.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-boot-demo-admin-server/src/main/java/com/xkcoding/admin/server/SpringBootDemoAdminServerApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.admin.server; 2 | 3 | import de.codecentric.boot.admin.server.config.EnableAdminServer; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | 7 | /** 8 | *

9 | * 启动类 10 | *

11 | * 12 | * @package: com.xkcoding.admin.server 13 | * @description: 启动类 14 | * @author: yangkai.shen 15 | * @date: Created in 2018/10/8 2:08 PM 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @EnableAdminServer 21 | @SpringBootApplication 22 | public class SpringBootDemoAdminServerApplication { 23 | 24 | public static void main(String[] args) { 25 | SpringApplication.run(SpringBootDemoAdminServerApplication.class, args); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /spring-boot-demo-admin-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8000 3 | spring: 4 | boot: 5 | admin: 6 | # 管控台上下文路径 7 | context-path: /admin -------------------------------------------------------------------------------- /spring-boot-demo-admin-server/src/test/java/com/xkcoding/admin/server/SpringBootDemoAdminServerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.admin.server; 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 SpringBootDemoAdminServerApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-async/.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-boot-demo-async/src/main/java/com/xkcoding/async/SpringBootDemoAsyncApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.async; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SpringBootDemoAsyncApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SpringBootDemoAsyncApplication.class, args); 11 | } 12 | 13 | } 14 | 15 | -------------------------------------------------------------------------------- /spring-boot-demo-async/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-async/src/main/resources/application.properties -------------------------------------------------------------------------------- /spring-boot-demo-async/src/test/java/com/xkcoding/async/SpringBootDemoAsyncApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.async; 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 SpringBootDemoAsyncApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /spring-boot-demo-cache-ehcache/.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-boot-demo-cache-ehcache/src/main/java/com/xkcoding/cache/ehcache/SpringBootDemoCacheEhcacheApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.cache.ehcache; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cache.annotation.EnableCaching; 6 | 7 | /** 8 | *

9 | * 启动类 10 | *

11 | * 12 | * @package: com.xkcoding.cache.ehcache 13 | * @description: 启动类 14 | * @author: yangkai.shen 15 | * @date: Created in 2018/11/16 17:02 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @SpringBootApplication 21 | @EnableCaching 22 | public class SpringBootDemoCacheEhcacheApplication { 23 | 24 | public static void main(String[] args) { 25 | SpringApplication.run(SpringBootDemoCacheEhcacheApplication.class, args); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /spring-boot-demo-cache-ehcache/src/main/java/com/xkcoding/cache/ehcache/entity/User.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.cache.ehcache.entity; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | *

11 | * 用户实体 12 | *

13 | * 14 | * @package: com.xkcoding.cache.ehcache.entity 15 | * @description: 用户实体 16 | * @author: yangkai.shen 17 | * @date: Created in 2018/11/16 16:53 18 | * @copyright: Copyright (c) 2018 19 | * @version: V1.0 20 | * @modified: yangkai.shen 21 | */ 22 | @Data 23 | @AllArgsConstructor 24 | @NoArgsConstructor 25 | public class User implements Serializable { 26 | private static final long serialVersionUID = 2892248514883451461L; 27 | /** 28 | * 主键id 29 | */ 30 | private Long id; 31 | /** 32 | * 姓名 33 | */ 34 | private String name; 35 | } 36 | -------------------------------------------------------------------------------- /spring-boot-demo-cache-ehcache/src/main/java/com/xkcoding/cache/ehcache/service/UserService.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.cache.ehcache.service; 2 | 3 | import com.xkcoding.cache.ehcache.entity.User; 4 | 5 | /** 6 | *

7 | * UserService 8 | *

9 | * 10 | * @package: com.xkcoding.cache.ehcache.service 11 | * @description: UserService 12 | * @author: yangkai.shen 13 | * @date: Created in 2018/11/16 16:53 14 | * @copyright: Copyright (c) 2018 15 | * @version: V1.0 16 | * @modified: yangkai.shen 17 | */ 18 | public interface UserService { 19 | /** 20 | * 保存或修改用户 21 | * 22 | * @param user 用户对象 23 | * @return 操作结果 24 | */ 25 | User saveOrUpdate(User user); 26 | 27 | /** 28 | * 获取用户 29 | * 30 | * @param id key值 31 | * @return 返回结果 32 | */ 33 | User get(Long id); 34 | 35 | /** 36 | * 删除 37 | * 38 | * @param id key值 39 | */ 40 | void delete(Long id); 41 | } 42 | -------------------------------------------------------------------------------- /spring-boot-demo-cache-ehcache/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cache: 3 | type: ehcache 4 | ehcache: 5 | config: classpath:ehcache.xml 6 | logging: 7 | level: 8 | com.xkcoding: debug -------------------------------------------------------------------------------- /spring-boot-demo-cache-ehcache/src/test/java/com/xkcoding/cache/ehcache/SpringBootDemoCacheEhcacheApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.cache.ehcache; 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 SpringBootDemoCacheEhcacheApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-cache-redis/.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-boot-demo-cache-redis/src/main/java/com/xkcoding/cache/redis/SpringBootDemoCacheRedisApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.cache.redis; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SpringBootDemoCacheRedisApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SpringBootDemoCacheRedisApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /spring-boot-demo-cache-redis/src/main/java/com/xkcoding/cache/redis/entity/User.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.cache.redis.entity; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | *

11 | * 用户实体 12 | *

13 | * 14 | * @package: com.xkcoding.cache.redis.entity 15 | * @description: 用户实体 16 | * @author: yangkai.shen 17 | * @date: Created in 2018/11/15 16:39 18 | * @copyright: Copyright (c) 2018 19 | * @version: V1.0 20 | * @modified: yangkai.shen 21 | */ 22 | @Data 23 | @AllArgsConstructor 24 | @NoArgsConstructor 25 | public class User implements Serializable { 26 | private static final long serialVersionUID = 2892248514883451461L; 27 | /** 28 | * 主键id 29 | */ 30 | private Long id; 31 | /** 32 | * 姓名 33 | */ 34 | private String name; 35 | } 36 | -------------------------------------------------------------------------------- /spring-boot-demo-cache-redis/src/main/java/com/xkcoding/cache/redis/service/UserService.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.cache.redis.service; 2 | 3 | import com.xkcoding.cache.redis.entity.User; 4 | 5 | /** 6 | *

7 | * UserService 8 | *

9 | * 10 | * @package: com.xkcoding.cache.redis.service 11 | * @description: UserService 12 | * @author: yangkai.shen 13 | * @date: Created in 2018/11/15 16:45 14 | * @copyright: Copyright (c) 2018 15 | * @version: V1.0 16 | * @modified: yangkai.shen 17 | */ 18 | public interface UserService { 19 | /** 20 | * 保存或修改用户 21 | * 22 | * @param user 用户对象 23 | * @return 操作结果 24 | */ 25 | User saveOrUpdate(User user); 26 | 27 | /** 28 | * 获取用户 29 | * 30 | * @param id key值 31 | * @return 返回结果 32 | */ 33 | User get(Long id); 34 | 35 | /** 36 | * 删除 37 | * 38 | * @param id key值 39 | */ 40 | void delete(Long id); 41 | } 42 | -------------------------------------------------------------------------------- /spring-boot-demo-cache-redis/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | redis: 3 | host: localhost 4 | # 连接超时时间(记得添加单位,Duration) 5 | timeout: 10000ms 6 | # Redis默认情况下有16个分片,这里配置具体使用的分片 7 | # database: 0 8 | lettuce: 9 | pool: 10 | # 连接池最大连接数(使用负值表示没有限制) 默认 8 11 | max-active: 8 12 | # 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1 13 | max-wait: -1ms 14 | # 连接池中的最大空闲连接 默认 8 15 | max-idle: 8 16 | # 连接池中的最小空闲连接 默认 0 17 | min-idle: 0 18 | cache: 19 | # 一般来说是不用配置的,Spring Cache 会根据依赖的包自行装配 20 | type: redis 21 | logging: 22 | level: 23 | com.xkcoding: debug 24 | -------------------------------------------------------------------------------- /spring-boot-demo-cache-redis/src/test/java/com/xkcoding/cache/redis/SpringBootDemoCacheRedisApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.cache.redis; 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 SpringBootDemoCacheRedisApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-docker/.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-boot-demo-docker/Dockerfile: -------------------------------------------------------------------------------- 1 | # 基础镜像 2 | FROM openjdk:8-jdk-alpine 3 | 4 | # 作者信息 5 | MAINTAINER "Yangkai.Shen 237497819@qq.com" 6 | 7 | # 添加一个存储空间 8 | VOLUME /tmp 9 | 10 | # 暴露8080端口 11 | EXPOSE 8080 12 | 13 | # 添加变量,如果使用dockerfile-maven-plugin,则会自动替换这里的变量内容 14 | ARG JAR_FILE=target/spring-boot-demo-docker.jar 15 | 16 | # 往容器中添加jar包 17 | ADD ${JAR_FILE} app.jar 18 | 19 | # 启动镜像自动运行程序 20 | ENTRYPOINT ["java","-Djava.security.egd=file:/dev/urandom","-jar","/app.jar"] -------------------------------------------------------------------------------- /spring-boot-demo-docker/src/main/java/com/xkcoding/docker/SpringBootDemoDockerApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.docker; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动器 9 | *

10 | * 11 | * @package: com.xkcoding.docker 12 | * @description: 启动器 13 | * @author: yangkai.shen 14 | * @date: Created in 2018-11-29 14:59 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoDockerApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoDockerApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-docker/src/main/java/com/xkcoding/docker/controller/HelloController.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.docker.controller; 2 | 3 | import org.springframework.web.bind.annotation.GetMapping; 4 | import org.springframework.web.bind.annotation.RequestMapping; 5 | import org.springframework.web.bind.annotation.RestController; 6 | 7 | /** 8 | *

9 | * Hello Controller 10 | *

11 | * 12 | * @package: com.xkcoding.docker.controller 13 | * @description: Hello Controller 14 | * @author: yangkai.shen 15 | * @date: Created in 2018-11-29 14:58 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @RestController 21 | @RequestMapping 22 | public class HelloController { 23 | @GetMapping 24 | public String hello() { 25 | return "Hello,From Docker!"; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /spring-boot-demo-docker/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo -------------------------------------------------------------------------------- /spring-boot-demo-docker/src/test/java/com/xkcoding/docker/SpringBootDemoDockerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.docker; 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 SpringBootDemoDockerApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-dubbo/.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-boot-demo-dubbo/spring-boot-demo-dubbo-common/.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-boot-demo-dubbo/spring-boot-demo-dubbo-common/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | spring-boot-demo-dubbo 7 | com.xkcoding 8 | 1.0.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | spring-boot-demo-dubbo-common 13 | 14 | 15 | UTF-8 16 | UTF-8 17 | 1.8 18 | 19 | 20 | 21 | spring-boot-demo-dubbo-common 22 | 23 | 24 | -------------------------------------------------------------------------------- /spring-boot-demo-dubbo/spring-boot-demo-dubbo-common/src/main/java/com/xkcoding/dubbo/common/service/HelloService.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.dubbo.common.service; 2 | 3 | /** 4 | *

5 | * Hello服务接口 6 | *

7 | * 8 | * @package: com.xkcoding.dubbo.common.service 9 | * @description: Hello服务接口 10 | * @author: yangkai.shen 11 | * @date: Created in 2018-12-25 16:56 12 | * @copyright: Copyright (c) 2018 13 | * @version: V1.0 14 | * @modified: yangkai.shen 15 | */ 16 | public interface HelloService { 17 | /** 18 | * 问好 19 | * 20 | * @param name 姓名 21 | * @return 问好 22 | */ 23 | String sayHello(String name); 24 | } 25 | -------------------------------------------------------------------------------- /spring-boot-demo-dubbo/spring-boot-demo-dubbo-consumer/.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-boot-demo-dubbo/spring-boot-demo-dubbo-consumer/src/main/java/com/xkcoding/dubbo/consumer/SpringBootDemoDubboConsumerApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.dubbo.consumer; 2 | 3 | import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | 7 | /** 8 | *

9 | * 启动器 10 | *

11 | * 12 | * @package: com.xkcoding.dubbo.consumer 13 | * @description: 启动器 14 | * @author: yangkai.shen 15 | * @date: Created in 2018-12-25 16:49 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @SpringBootApplication 21 | @EnableDubboConfiguration 22 | public class SpringBootDemoDubboConsumerApplication { 23 | 24 | public static void main(String[] args) { 25 | SpringApplication.run(SpringBootDemoDubboConsumerApplication.class, args); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /spring-boot-demo-dubbo/spring-boot-demo-dubbo-consumer/src/main/java/com/xkcoding/dubbo/consumer/controller/HelloController.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.dubbo.consumer.controller; 2 | 3 | import com.alibaba.dubbo.config.annotation.Reference; 4 | import com.xkcoding.dubbo.common.service.HelloService; 5 | import lombok.extern.slf4j.Slf4j; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.RequestParam; 8 | import org.springframework.web.bind.annotation.RestController; 9 | 10 | /** 11 | *

12 | * Hello服务API 13 | *

14 | * 15 | * @package: com.xkcoding.dubbo.consumer.controller 16 | * @description: Hello服务API 17 | * @author: yangkai.shen 18 | * @date: Created in 2018-12-25 17:22 19 | * @copyright: Copyright (c) 2018 20 | * @version: V1.0 21 | * @modified: yangkai.shen 22 | */ 23 | @RestController 24 | @Slf4j 25 | public class HelloController { 26 | @Reference 27 | private HelloService helloService; 28 | 29 | @GetMapping("/sayHello") 30 | public String sayHello(@RequestParam(defaultValue = "xkcoding") String name) { 31 | log.info("i'm ready to call someone......"); 32 | return helloService.sayHello(name); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-boot-demo-dubbo/spring-boot-demo-dubbo-consumer/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo 5 | 6 | spring: 7 | dubbo: 8 | application: 9 | name: spring-boot-demo-dubbo-consumer 10 | registry: zookeeper://127.0.0.1:2181 -------------------------------------------------------------------------------- /spring-boot-demo-dubbo/spring-boot-demo-dubbo-consumer/src/test/java/com/xkcoding/dubbo/consumer/SpringBootDemoDubboConsumerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.dubbo.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 SpringBootDemoDubboConsumerApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-dubbo/spring-boot-demo-dubbo-provider/.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-boot-demo-dubbo/spring-boot-demo-dubbo-provider/src/main/java/com/xkcoding/dubbo/provider/SpringBootDemoDubboProviderApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.dubbo.provider; 2 | 3 | import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | 7 | /** 8 | *

9 | * 启动器 10 | *

11 | * 12 | * @package: com.xkcoding.dubbo.provider 13 | * @description: 启动器 14 | * @author: yangkai.shen 15 | * @date: Created in 2018-12-25 16:49 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @EnableDubboConfiguration 21 | @SpringBootApplication 22 | public class SpringBootDemoDubboProviderApplication { 23 | 24 | public static void main(String[] args) { 25 | SpringApplication.run(SpringBootDemoDubboProviderApplication.class, args); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /spring-boot-demo-dubbo/spring-boot-demo-dubbo-provider/src/main/java/com/xkcoding/dubbo/provider/service/HelloServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.dubbo.provider.service; 2 | 3 | import com.alibaba.dubbo.config.annotation.Service; 4 | import com.xkcoding.dubbo.common.service.HelloService; 5 | import lombok.extern.slf4j.Slf4j; 6 | import org.springframework.stereotype.Component; 7 | 8 | /** 9 | *

10 | * Hello服务实现 11 | *

12 | * 13 | * @package: com.xkcoding.dubbo.provider.service 14 | * @description: Hello服务实现 15 | * @author: yangkai.shen 16 | * @date: Created in 2018-12-25 16:58 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | @Service 22 | @Component 23 | @Slf4j 24 | public class HelloServiceImpl implements HelloService { 25 | /** 26 | * 问好 27 | * 28 | * @param name 姓名 29 | * @return 问好 30 | */ 31 | @Override 32 | public String sayHello(String name) { 33 | log.info("someone is calling me......"); 34 | return "say hello to: " + name; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /spring-boot-demo-dubbo/spring-boot-demo-dubbo-provider/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 9090 3 | servlet: 4 | context-path: /demo 5 | 6 | spring: 7 | dubbo: 8 | application: 9 | name: spring-boot-demo-dubbo-provider 10 | registry: zookeeper://localhost:2181 -------------------------------------------------------------------------------- /spring-boot-demo-dubbo/spring-boot-demo-dubbo-provider/src/test/java/com/xkcoding/dubbo/provider/SpringBootDemoDubboProviderApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.dubbo.provider; 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 SpringBootDemoDubboProviderApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-elasticsearch/.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-boot-demo-elasticsearch/src/main/java/com/xkcoding/elasticsearch/SpringBootDemoElasticsearchApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.elasticsearch; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动类 9 | *

10 | * 11 | * @package: com.xkcoding.elasticsearch 12 | * @description: 启动类 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/10/27 22:52 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoElasticsearchApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoElasticsearchApplication.class, args); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /spring-boot-demo-elasticsearch/src/main/java/com/xkcoding/elasticsearch/constants/EsConsts.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.elasticsearch.constants; 2 | 3 | /** 4 | *

5 | * ES常量池 6 | *

7 | * 8 | * @package: com.xkcoding.elasticsearch.constants 9 | * @description: ES常量池 10 | * @author: yangkai.shen 11 | * @date: Created in 2018-12-20 17:30 12 | * @copyright: Copyright (c) 2018 13 | * @version: V1.0 14 | * @modified: yangkai.shen 15 | */ 16 | public interface EsConsts { 17 | /** 18 | * 索引名称 19 | */ 20 | String INDEX_NAME = "person"; 21 | 22 | /** 23 | * 类型名称 24 | */ 25 | String TYPE_NAME = "person"; 26 | } 27 | -------------------------------------------------------------------------------- /spring-boot-demo-elasticsearch/src/main/java/com/xkcoding/elasticsearch/repository/PersonRepository.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.elasticsearch.repository; 2 | 3 | import com.xkcoding.elasticsearch.model.Person; 4 | import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

10 | * 用户持久层 11 | *

12 | * 13 | * @package: com.xkcoding.elasticsearch.repository 14 | * @description: 用户持久层 15 | * @author: yangkai.shen 16 | * @date: Created in 2018-12-20 19:00 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | public interface PersonRepository extends ElasticsearchRepository { 22 | 23 | /** 24 | * 根据年龄区间查询 25 | * 26 | * @param min 最小值 27 | * @param max 最大值 28 | * @return 满足条件的用户列表 29 | */ 30 | List findByAgeBetween(Integer min, Integer max); 31 | } 32 | -------------------------------------------------------------------------------- /spring-boot-demo-elasticsearch/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | data: 3 | elasticsearch: 4 | cluster-name: docker-cluster 5 | cluster-nodes: localhost:9300 -------------------------------------------------------------------------------- /spring-boot-demo-elasticsearch/src/test/java/com/xkcoding/elasticsearch/SpringBootDemoElasticsearchApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.elasticsearch; 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 SpringBootDemoElasticsearchApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-email/.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-boot-demo-email/src/main/java/com/xkcoding/email/SpringBootDemoEmailApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.email; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动器 9 | *

10 | * 11 | * @package: com.xkcoding.email 12 | * @description: 启动器 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/11/4 22:38 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoEmailApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoEmailApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-email/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | mail: 3 | host: smtp.yeah.net 4 | port: 994 5 | username: hutool@yeah.net 6 | password: q1w2e3 7 | protocol: smtp 8 | test-connection: true 9 | default-encoding: UTF-8 10 | properties: 11 | mail.smtp.auth: true 12 | mail.smtp.starttls.enable: true 13 | mail.smtp.starttls.required: true 14 | mail.smtp.ssl.enable: true 15 | mail.display.sendmail: xkcoding 16 | -------------------------------------------------------------------------------- /spring-boot-demo-email/src/main/resources/static/xkcoding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-email/src/main/resources/static/xkcoding.png -------------------------------------------------------------------------------- /spring-boot-demo-email/src/test/java/com/xkcoding/email/SpringBootDemoEmailApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.email; 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 SpringBootDemoEmailApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-exception-handler/.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-boot-demo-exception-handler/src/main/java/com/xkcoding/exception/handler/SpringBootDemoExceptionHandlerApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.exception.handler; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动类 9 | *

10 | * 11 | * @package: com.xkcoding.exception.handler 12 | * @description: 启动类 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/10/2 8:49 PM 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoExceptionHandlerApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoExceptionHandlerApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-exception-handler/src/main/java/com/xkcoding/exception/handler/constant/Status.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.exception.handler.constant; 2 | 3 | import lombok.Getter; 4 | 5 | /** 6 | *

7 | * 状态码封装 8 | *

9 | * 10 | * @package: com.xkcoding.exception.handler.constant 11 | * @description: 状态码封装 12 | * @author: yangkai.shen 13 | * @date: Created in 2018/10/2 9:02 PM 14 | * @copyright: Copyright (c) 2018 15 | * @version: V1.0 16 | * @modified: yangkai.shen 17 | */ 18 | @Getter 19 | public enum Status { 20 | /** 21 | * 操作成功 22 | */ 23 | OK(200, "操作成功"), 24 | 25 | /** 26 | * 未知异常 27 | */ 28 | UNKNOWN_ERROR(500, "服务器出错啦"); 29 | /** 30 | * 状态码 31 | */ 32 | private Integer code; 33 | /** 34 | * 内容 35 | */ 36 | private String message; 37 | 38 | Status(Integer code, String message) { 39 | this.code = code; 40 | this.message = message; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /spring-boot-demo-exception-handler/src/main/java/com/xkcoding/exception/handler/exception/BaseException.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.exception.handler.exception; 2 | 3 | import com.xkcoding.exception.handler.constant.Status; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | /** 8 | *

9 | * 异常基类 10 | *

11 | * 12 | * @package: com.xkcoding.exception.handler.exception 13 | * @description: 异常基类 14 | * @author: yangkai.shen 15 | * @date: Created in 2018/10/2 9:31 PM 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @Data 21 | @EqualsAndHashCode(callSuper = true) 22 | public class BaseException extends RuntimeException { 23 | private Integer code; 24 | private String message; 25 | 26 | public BaseException(Status status) { 27 | super(status.getMessage()); 28 | this.code = status.getCode(); 29 | this.message = status.getMessage(); 30 | } 31 | 32 | public BaseException(Integer code, String message) { 33 | super(message); 34 | this.code = code; 35 | this.message = message; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /spring-boot-demo-exception-handler/src/main/java/com/xkcoding/exception/handler/exception/JsonException.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.exception.handler.exception; 2 | 3 | import com.xkcoding.exception.handler.constant.Status; 4 | import lombok.Getter; 5 | 6 | /** 7 | *

8 | * JSON异常 9 | *

10 | * 11 | * @package: com.xkcoding.exception.handler.exception 12 | * @description: JSON异常 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/10/2 9:18 PM 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @Getter 20 | public class JsonException extends BaseException { 21 | 22 | public JsonException(Status status) { 23 | super(status); 24 | } 25 | 26 | public JsonException(Integer code, String message) { 27 | super(code, message); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /spring-boot-demo-exception-handler/src/main/java/com/xkcoding/exception/handler/exception/PageException.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.exception.handler.exception; 2 | 3 | import com.xkcoding.exception.handler.constant.Status; 4 | import lombok.Getter; 5 | 6 | /** 7 | *

8 | * 页面异常 9 | *

10 | * 11 | * @package: com.xkcoding.exception.handler.exception 12 | * @description: 页面异常 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/10/2 9:18 PM 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @Getter 20 | public class PageException extends BaseException { 21 | 22 | public PageException(Status status) { 23 | super(status); 24 | } 25 | 26 | public PageException(Integer code, String message) { 27 | super(code, message); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /spring-boot-demo-exception-handler/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo 5 | spring: 6 | thymeleaf: 7 | cache: false 8 | mode: HTML 9 | encoding: UTF-8 10 | servlet: 11 | content-type: text/html -------------------------------------------------------------------------------- /spring-boot-demo-exception-handler/src/main/resources/templates/error.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 统一页面异常处理 6 | 7 | 8 |

统一页面异常处理

9 |
10 | 11 | -------------------------------------------------------------------------------- /spring-boot-demo-exception-handler/src/test/java/com/xkcoding/exception/handler/SpringBootDemoExceptionHandlerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.exception.handler; 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 SpringBootDemoExceptionHandlerApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-helloworld/.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-boot-demo-helloworld/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo -------------------------------------------------------------------------------- /spring-boot-demo-helloworld/src/test/java/com/xkcoding/helloworld/SpringBootDemoHelloworldApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.helloworld; 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 SpringBootDemoHelloworldApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-log-aop/.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-boot-demo-log-aop/src/main/java/com/xkcoding/log/aop/SpringBootDemoLogAopApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.log.aop; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动类 9 | *

10 | * 11 | * @package: com.xkcoding.log.aop 12 | * @description: 启动类 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/10/1 10:05 PM 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoLogAopApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoLogAopApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-log-aop/src/main/java/com/xkcoding/log/aop/controller/TestController.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.log.aop.controller; 2 | 3 | import cn.hutool.core.lang.Dict; 4 | import cn.hutool.core.util.StrUtil; 5 | import org.springframework.web.bind.annotation.GetMapping; 6 | import org.springframework.web.bind.annotation.RestController; 7 | 8 | /** 9 | *

10 | * 测试 Controller 11 | *

12 | * 13 | * @package: com.xkcoding.log.aop.controller 14 | * @description: 测试 Controller 15 | * @author: yangkai.shen 16 | * @date: Created in 2018/10/1 10:10 PM 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | @RestController 22 | public class TestController { 23 | 24 | /** 25 | * 测试方法 26 | * 27 | * @param who 测试参数 28 | * @return {@link Dict} 29 | */ 30 | @GetMapping("/test") 31 | public Dict test(String who) { 32 | return Dict.create().set("who", StrUtil.isBlank(who) ? "me" : who); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /spring-boot-demo-log-aop/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo 5 | -------------------------------------------------------------------------------- /spring-boot-demo-log-aop/src/test/java/com/xkcoding/log/aop/SpringBootDemoLogAopApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.log.aop; 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 SpringBootDemoLogAopApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-logback/.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-boot-demo-logback/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo 5 | -------------------------------------------------------------------------------- /spring-boot-demo-logback/src/test/java/com/xkcoding/logback/SpringBootDemoLogbackApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.logback; 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 SpringBootDemoLogbackApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-mongodb/.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-boot-demo-mongodb/src/main/java/com/xkcoding/mongodb/SpringBootDemoMongodbApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.mongodb; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SpringBootDemoMongodbApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SpringBootDemoMongodbApplication.class, args); 11 | } 12 | 13 | } 14 | 15 | -------------------------------------------------------------------------------- /spring-boot-demo-mongodb/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-mongodb/src/main/resources/application.properties -------------------------------------------------------------------------------- /spring-boot-demo-mongodb/src/test/java/com/xkcoding/mongodb/SpringBootDemoMongodbApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.mongodb; 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 SpringBootDemoMongodbApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /spring-boot-demo-mq-kafka/.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-boot-demo-mq-kafka/src/main/java/com/xkcoding/mq/kafka/SpringBootDemoMqKafkaApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.mq.kafka; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SpringBootDemoMqKafkaApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SpringBootDemoMqKafkaApplication.class, args); 11 | } 12 | 13 | } 14 | 15 | -------------------------------------------------------------------------------- /spring-boot-demo-mq-kafka/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-mq-kafka/src/main/resources/application.properties -------------------------------------------------------------------------------- /spring-boot-demo-mq-kafka/src/test/java/com/xkcoding/mq/kafka/SpringBootDemoMqKafkaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.mq.kafka; 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 SpringBootDemoMqKafkaApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /spring-boot-demo-mq-rabbitmq/.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-boot-demo-mq-rabbitmq/src/main/java/com/xkcoding/mq/rabbitmq/SpringBootDemoMqRabbitmqApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.mq.rabbitmq; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SpringBootDemoMqRabbitmqApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SpringBootDemoMqRabbitmqApplication.class, args); 11 | } 12 | 13 | } 14 | 15 | -------------------------------------------------------------------------------- /spring-boot-demo-mq-rabbitmq/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-mq-rabbitmq/src/main/resources/application.properties -------------------------------------------------------------------------------- /spring-boot-demo-mq-rabbitmq/src/test/java/com/xkcoding/mq/rabbitmq/SpringBootDemoMqRabbitmqApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.mq.rabbitmq; 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 SpringBootDemoMqRabbitmqApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /spring-boot-demo-mq-rocketmq/.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-boot-demo-mq-rocketmq/src/main/java/com/xkcoding/mq/rocketmq/SpringBootDemoMqRocketmqApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.mq.rocketmq; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SpringBootDemoMqRocketmqApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SpringBootDemoMqRocketmqApplication.class, args); 11 | } 12 | 13 | } 14 | 15 | -------------------------------------------------------------------------------- /spring-boot-demo-mq-rocketmq/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-mq-rocketmq/src/main/resources/application.properties -------------------------------------------------------------------------------- /spring-boot-demo-mq-rocketmq/src/test/java/com/xkcoding/mq/rocketmq/SpringBootDemoMqRocketmqApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.mq.rocketmq; 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 SpringBootDemoMqRocketmqApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /spring-boot-demo-neo4j/.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-boot-demo-neo4j/assets/image-20181225150513101-5721513.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-neo4j/assets/image-20181225150513101-5721513.png -------------------------------------------------------------------------------- /spring-boot-demo-neo4j/src/main/java/com/xkcoding/neo4j/SpringBootDemoNeo4jApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.neo4j; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动器 9 | *

10 | * 11 | * @package: com.xkcoding.neo4j 12 | * @description: 启动器 13 | * @author: yangkai.shen 14 | * @date: Created in 2018-12-22 23:50 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoNeo4jApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoNeo4jApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-neo4j/src/main/java/com/xkcoding/neo4j/config/CustomIdStrategy.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.neo4j.config; 2 | 3 | import cn.hutool.core.util.IdUtil; 4 | import org.neo4j.ogm.id.IdStrategy; 5 | 6 | /** 7 | *

8 | * 自定义主键策略 9 | *

10 | * 11 | * @package: com.xkcoding.neo4j.config 12 | * @description: 自定义主键策略 13 | * @author: yangkai.shen 14 | * @date: Created in 2018-12-24 14:40 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | public class CustomIdStrategy implements IdStrategy { 20 | @Override 21 | public Object generateId(Object o) { 22 | return IdUtil.fastUUID(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /spring-boot-demo-neo4j/src/main/java/com/xkcoding/neo4j/constants/NeoConsts.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.neo4j.constants; 2 | 3 | /** 4 | *

5 | * 常量池 6 | *

7 | * 8 | * @package: com.xkcoding.neo4j.constants 9 | * @description: 常量池 10 | * @author: yangkai.shen 11 | * @date: Created in 2018-12-24 14:45 12 | * @copyright: Copyright (c) 2018 13 | * @version: V1.0 14 | * @modified: yangkai.shen 15 | */ 16 | public interface NeoConsts { 17 | /** 18 | * 关系:班级拥有的学生 19 | */ 20 | String R_STUDENT_OF_CLASS = "R_STUDENT_OF_CLASS"; 21 | 22 | /** 23 | * 关系:班级的班主任 24 | */ 25 | String R_BOSS_OF_CLASS = "R_BOSS_OF_CLASS"; 26 | 27 | /** 28 | * 关系:课程的老师 29 | */ 30 | String R_TEACHER_OF_LESSON = "R_TEACHER_OF_LESSON"; 31 | 32 | /** 33 | * 关系:学生选的课 34 | */ 35 | String R_LESSON_OF_STUDENT = "R_LESSON_OF_STUDENT"; 36 | 37 | } 38 | -------------------------------------------------------------------------------- /spring-boot-demo-neo4j/src/main/java/com/xkcoding/neo4j/model/Teacher.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.neo4j.model; 2 | 3 | import com.xkcoding.neo4j.config.CustomIdStrategy; 4 | import lombok.*; 5 | import org.neo4j.ogm.annotation.GeneratedValue; 6 | import org.neo4j.ogm.annotation.Id; 7 | import org.neo4j.ogm.annotation.NodeEntity; 8 | 9 | /** 10 | *

11 | * 教师节点 12 | *

13 | * 14 | * @package: com.xkcoding.neo4j.model 15 | * @description: 教师节点 16 | * @author: yangkai.shen 17 | * @date: Created in 2018-12-24 14:54 18 | * @copyright: Copyright (c) 2018 19 | * @version: V1.0 20 | * @modified: yangkai.shen 21 | */ 22 | @Data 23 | @NoArgsConstructor 24 | @RequiredArgsConstructor(staticName = "of") 25 | @AllArgsConstructor 26 | @Builder 27 | @NodeEntity 28 | public class Teacher { 29 | /** 30 | * 主键,自定义主键策略,使用UUID生成 31 | */ 32 | @Id 33 | @GeneratedValue(strategy = CustomIdStrategy.class) 34 | private String id; 35 | 36 | /** 37 | * 教师姓名 38 | */ 39 | @NonNull 40 | private String name; 41 | } 42 | -------------------------------------------------------------------------------- /spring-boot-demo-neo4j/src/main/java/com/xkcoding/neo4j/payload/ClassmateInfoGroupByLesson.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.neo4j.payload; 2 | 3 | import com.xkcoding.neo4j.model.Student; 4 | import lombok.Data; 5 | import org.springframework.data.neo4j.annotation.QueryResult; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | *

11 | * 按照课程分组的同学关系 12 | *

13 | * 14 | * @package: com.xkcoding.neo4j.payload 15 | * @description: 按照课程分组的同学关系 16 | * @author: yangkai.shen 17 | * @date: Created in 2018-12-24 19:18 18 | * @copyright: Copyright (c) 2018 19 | * @version: V1.0 20 | * @modified: yangkai.shen 21 | */ 22 | @Data 23 | @QueryResult 24 | public class ClassmateInfoGroupByLesson { 25 | /** 26 | * 课程名称 27 | */ 28 | private String lessonName; 29 | 30 | /** 31 | * 学生信息 32 | */ 33 | private List students; 34 | } 35 | -------------------------------------------------------------------------------- /spring-boot-demo-neo4j/src/main/java/com/xkcoding/neo4j/payload/TeacherStudent.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.neo4j.payload; 2 | 3 | import com.xkcoding.neo4j.model.Student; 4 | import lombok.Data; 5 | import org.springframework.data.neo4j.annotation.QueryResult; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | *

11 | * 师生关系 12 | *

13 | * 14 | * @package: com.xkcoding.neo4j.payload 15 | * @description: 师生关系 16 | * @author: yangkai.shen 17 | * @date: Created in 2018-12-24 19:18 18 | * @copyright: Copyright (c) 2018 19 | * @version: V1.0 20 | * @modified: yangkai.shen 21 | */ 22 | @Data 23 | @QueryResult 24 | public class TeacherStudent { 25 | /** 26 | * 教师姓名 27 | */ 28 | private String teacherName; 29 | 30 | /** 31 | * 学生信息 32 | */ 33 | private List students; 34 | } 35 | -------------------------------------------------------------------------------- /spring-boot-demo-neo4j/src/main/java/com/xkcoding/neo4j/repository/ClassRepository.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.neo4j.repository; 2 | 3 | import com.xkcoding.neo4j.model.Class; 4 | import org.springframework.data.neo4j.repository.Neo4jRepository; 5 | 6 | import java.util.Optional; 7 | 8 | /** 9 | *

10 | * 班级节点Repository 11 | *

12 | * 13 | * @package: com.xkcoding.neo4j.repository 14 | * @description: 班级节点Repository 15 | * @author: yangkai.shen 16 | * @date: Created in 2018-12-24 15:05 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | public interface ClassRepository extends Neo4jRepository { 22 | /** 23 | * 根据班级名称查询班级信息 24 | * 25 | * @param name 班级名称 26 | * @return 班级信息 27 | */ 28 | Optional findByName(String name); 29 | } 30 | -------------------------------------------------------------------------------- /spring-boot-demo-neo4j/src/main/java/com/xkcoding/neo4j/repository/LessonRepository.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.neo4j.repository; 2 | 3 | import com.xkcoding.neo4j.model.Lesson; 4 | import org.springframework.data.neo4j.repository.Neo4jRepository; 5 | 6 | /** 7 | *

8 | * 课程节点Repository 9 | *

10 | * 11 | * @package: com.xkcoding.neo4j.repository 12 | * @description: 课程节点Repository 13 | * @author: yangkai.shen 14 | * @date: Created in 2018-12-24 15:05 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | public interface LessonRepository extends Neo4jRepository { 20 | } 21 | -------------------------------------------------------------------------------- /spring-boot-demo-neo4j/src/main/java/com/xkcoding/neo4j/repository/TeacherRepository.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.neo4j.repository; 2 | 3 | import com.xkcoding.neo4j.model.Teacher; 4 | import org.springframework.data.neo4j.repository.Neo4jRepository; 5 | 6 | /** 7 | *

8 | * 教师节点Repository 9 | *

10 | * 11 | * @package: com.xkcoding.neo4j.repository 12 | * @description: 教师节点Repository 13 | * @author: yangkai.shen 14 | * @date: Created in 2018-12-24 15:05 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | public interface TeacherRepository extends Neo4jRepository { 20 | } 21 | -------------------------------------------------------------------------------- /spring-boot-demo-neo4j/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | data: 3 | neo4j: 4 | uri: bolt://localhost 5 | username: neo4j 6 | password: admin 7 | open-in-view: false -------------------------------------------------------------------------------- /spring-boot-demo-neo4j/src/test/java/com/xkcoding/neo4j/SpringBootDemoNeo4jApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.neo4j; 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 SpringBootDemoNeo4jApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-beetlsql/.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-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/SpringBootDemoOrmBeetlsqlApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.beetlsql; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动类 9 | *

10 | * 11 | * @package: com.xkcoding.orm.beetlsql 12 | * @description: 启动类 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/11/14 15:47 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoOrmBeetlsqlApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoOrmBeetlsqlApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/dao/UserDao.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.beetlsql.dao; 2 | 3 | import com.xkcoding.orm.beetlsql.entity.User; 4 | import org.beetl.sql.core.mapper.BaseMapper; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | *

9 | * UserDao 10 | *

11 | * 12 | * @package: com.xkcoding.orm.beetlsql.dao 13 | * @description: UserDao 14 | * @author: yangkai.shen 15 | * @date: Created in 2018/11/14 16:18 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @Component 21 | public interface UserDao extends BaseMapper { 22 | 23 | } 24 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-beetlsql/src/main/resources/db/data.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO `orm_user`(`id`,`name`,`password`,`salt`,`email`,`phone_number`) VALUES (1, 'user_1', 'ff342e862e7c3285cdc07e56d6b8973b', '412365a109674b2dbb1981ed561a4c70', 'user1@xkcoding.com', '17300000001'); 2 | INSERT INTO `orm_user`(`id`,`name`,`password`,`salt`,`email`,`phone_number`) VALUES (2, 'user_2', '6c6bf02c8d5d3d128f34b1700cb1e32c', 'fcbdd0e8a9404a5585ea4e01d0e4d7a0', 'user2@xkcoding.com', '17300000002'); -------------------------------------------------------------------------------- /spring-boot-demo-orm-beetlsql/src/main/resources/db/schema.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS `orm_user`; 2 | CREATE TABLE `orm_user` ( 3 | `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '主键', 4 | `name` VARCHAR(32) NOT NULL UNIQUE COMMENT '用户名', 5 | `password` VARCHAR(32) NOT NULL COMMENT '加密后的密码', 6 | `salt` VARCHAR(32) NOT NULL COMMENT '加密使用的盐', 7 | `email` VARCHAR(32) NOT NULL UNIQUE COMMENT '邮箱', 8 | `phone_number` VARCHAR(15) NOT NULL UNIQUE COMMENT '手机号码', 9 | `status` INT(2) NOT NULL DEFAULT 1 COMMENT '状态,-1:逻辑删除,0:禁用,1:启用', 10 | `create_time` DATETIME NOT NULL DEFAULT NOW() COMMENT '创建时间', 11 | `last_login_time` DATETIME DEFAULT NULL COMMENT '上次登录时间', 12 | `last_update_time` DATETIME NOT NULL DEFAULT NOW() COMMENT '上次更新时间' 13 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Spring Boot Demo Orm 系列示例表'; 14 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-beetlsql/src/test/java/com/xkcoding/orm/beetlsql/SpringBootDemoOrmBeetlsqlApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.beetlsql; 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 SpringBootDemoOrmBeetlsqlApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-jdbctemplate/.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-boot-demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/SpringBootDemoOrmJdbctemplateApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.jdbctemplate; 2 | 3 | import cn.hutool.core.util.IdUtil; 4 | import cn.hutool.crypto.SecureUtil; 5 | import org.springframework.boot.SpringApplication; 6 | import org.springframework.boot.autoconfigure.SpringBootApplication; 7 | 8 | /** 9 | *

10 | * 启动类 11 | *

12 | * 13 | * @package: com.xkcoding.orm.jdbctemplate 14 | * @description: 启动类 15 | * @author: yangkai.shen 16 | * @date: Created in 2018/10/15 9:50 AM 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | @SpringBootApplication 22 | public class SpringBootDemoOrmJdbctemplateApplication { 23 | 24 | public static void main(String[] args) { 25 | SpringApplication.run(SpringBootDemoOrmJdbctemplateApplication.class, args); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/annotation/Column.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.jdbctemplate.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | *

10 | * 列注解 11 | *

12 | * 13 | * @package: com.xkcoding.orm.jdbctemplate.annotation 14 | * @description: 列注解 15 | * @author: yangkai.shen 16 | * @date: Created in 2018/10/15 11:23 AM 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | @Retention(RetentionPolicy.RUNTIME) 22 | @Target({ElementType.FIELD}) 23 | public @interface Column { 24 | /** 25 | * 列名 26 | * 27 | * @return 列名 28 | */ 29 | String name(); 30 | } 31 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/annotation/Ignore.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.jdbctemplate.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | *

10 | * 需要忽略的字段 11 | *

12 | * 13 | * @package: com.xkcoding.orm.jdbctemplate.annotation 14 | * @description: 需要忽略的字段 15 | * @author: yangkai.shen 16 | * @date: Created in 2018/10/15 1:25 PM 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | @Retention(RetentionPolicy.RUNTIME) 22 | @Target({ElementType.FIELD}) 23 | public @interface Ignore { 24 | } 25 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/annotation/Pk.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.jdbctemplate.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | *

10 | * 主键注解 11 | *

12 | * 13 | * @package: com.xkcoding.orm.jdbctemplate.annotation 14 | * @description: 主键注解 15 | * @author: yangkai.shen 16 | * @date: Created in 2018/10/15 11:23 AM 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | @Retention(RetentionPolicy.RUNTIME) 22 | @Target({ElementType.FIELD}) 23 | public @interface Pk { 24 | /** 25 | * 自增 26 | * 27 | * @return 自增主键 28 | */ 29 | boolean auto() default true; 30 | } 31 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/annotation/Table.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.jdbctemplate.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | *

10 | * 表注解 11 | *

12 | * 13 | * @package: com.xkcoding.orm.jdbctemplate.annotation 14 | * @description: 表注解 15 | * @author: yangkai.shen 16 | * @date: Created in 2018/10/15 11:23 AM 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | @Retention(RetentionPolicy.RUNTIME) 22 | @Target({ElementType.TYPE}) 23 | public @interface Table { 24 | /** 25 | * 表名 26 | * 27 | * @return 表名 28 | */ 29 | String name(); 30 | } 31 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-jdbctemplate/src/main/java/com/xkcoding/orm/jdbctemplate/constant/Const.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.jdbctemplate.constant; 2 | 3 | /** 4 | *

5 | * 常量池 6 | *

7 | * 8 | * @package: com.xkcoding.orm.jdbctemplate.constant 9 | * @description: 常量池 10 | * @author: yangkai.shen 11 | * @date: Created in 2018/10/15 10:59 AM 12 | * @copyright: Copyright (c) 2018 13 | * @version: V1.0 14 | * @modified: yangkai.shen 15 | */ 16 | public interface Const { 17 | /** 18 | * 加密盐前缀 19 | */ 20 | String SALT_PREFIX = "::SpringBootDemo::"; 21 | 22 | /** 23 | * 逗号分隔符 24 | */ 25 | String SEPARATOR_COMMA = ","; 26 | } 27 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-jdbctemplate/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo 5 | spring: 6 | datasource: 7 | url: jdbc:mysql://127.0.0.1:3306/spring-boot-demo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8 8 | username: root 9 | password: root 10 | driver-class-name: com.mysql.cj.jdbc.Driver 11 | type: com.zaxxer.hikari.HikariDataSource 12 | initialization-mode: always 13 | continue-on-error: true 14 | schema: 15 | - "classpath:db/schema.sql" 16 | data: 17 | - "classpath:db/data.sql" 18 | hikari: 19 | minimum-idle: 5 20 | connection-test-query: SELECT 1 FROM DUAL 21 | maximum-pool-size: 20 22 | auto-commit: true 23 | idle-timeout: 30000 24 | pool-name: SpringBootDemoHikariCP 25 | max-lifetime: 60000 26 | connection-timeout: 30000 27 | logging: 28 | level: 29 | com.xkcoding: debug -------------------------------------------------------------------------------- /spring-boot-demo-orm-jdbctemplate/src/main/resources/db/data.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO `orm_user`(`id`,`name`,`password`,`salt`,`email`,`phone_number`) VALUES (1, 'user_1', 'ff342e862e7c3285cdc07e56d6b8973b', '412365a109674b2dbb1981ed561a4c70', 'user1@xkcoding.com', '17300000001'); 2 | INSERT INTO `orm_user`(`id`,`name`,`password`,`salt`,`email`,`phone_number`) VALUES (2, 'user_2', '6c6bf02c8d5d3d128f34b1700cb1e32c', 'fcbdd0e8a9404a5585ea4e01d0e4d7a0', 'user2@xkcoding.com', '17300000002'); -------------------------------------------------------------------------------- /spring-boot-demo-orm-jdbctemplate/src/main/resources/db/schema.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS `orm_user`; 2 | CREATE TABLE `orm_user` ( 3 | `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '主键', 4 | `name` VARCHAR(32) NOT NULL UNIQUE COMMENT '用户名', 5 | `password` VARCHAR(32) NOT NULL COMMENT '加密后的密码', 6 | `salt` VARCHAR(32) NOT NULL COMMENT '加密使用的盐', 7 | `email` VARCHAR(32) NOT NULL UNIQUE COMMENT '邮箱', 8 | `phone_number` VARCHAR(15) NOT NULL UNIQUE COMMENT '手机号码', 9 | `status` INT(2) NOT NULL DEFAULT 1 COMMENT '状态,-1:逻辑删除,0:禁用,1:启用', 10 | `create_time` DATETIME NOT NULL DEFAULT NOW() COMMENT '创建时间', 11 | `last_login_time` DATETIME DEFAULT NULL COMMENT '上次登录时间', 12 | `last_update_time` DATETIME NOT NULL DEFAULT NOW() COMMENT '上次更新时间' 13 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Spring Boot Demo Orm 系列示例表'; 14 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-jdbctemplate/src/test/java/com/xkcoding/orm/jdbctemplate/SpringBootDemoOrmJdbctemplateApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.jdbctemplate; 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 SpringBootDemoOrmJdbctemplateApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-jpa/.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-boot-demo-orm-jpa/src/main/java/com/xkcoding/orm/jpa/SpringBootDemoOrmJpaApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.jpa; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动类 9 | *

10 | * 11 | * @package: com.xkcoding.orm.jpa 12 | * @description: 启动类 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/10/28 22:58 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoOrmJpaApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoOrmJpaApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-jpa/src/main/java/com/xkcoding/orm/jpa/repository/UserDao.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.jpa.repository; 2 | 3 | import com.xkcoding.orm.jpa.entity.User; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.stereotype.Repository; 6 | 7 | /** 8 | *

9 | * User Dao 10 | *

11 | * 12 | * @package: com.xkcoding.orm.jpa.repository 13 | * @description: User Dao 14 | * @author: yangkai.shen 15 | * @date: Created in 2018/11/7 14:07 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @Repository 21 | public interface UserDao extends JpaRepository { 22 | 23 | } 24 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-jpa/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | datasource: 3 | jdbc-url: jdbc:mysql://127.0.0.1:3306/spring-boot-demo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8 4 | username: root 5 | password: root 6 | driver-class-name: com.mysql.cj.jdbc.Driver 7 | type: com.zaxxer.hikari.HikariDataSource 8 | initialization-mode: always 9 | continue-on-error: true 10 | schema: 11 | - "classpath:db/schema.sql" 12 | data: 13 | - "classpath:db/data.sql" 14 | hikari: 15 | minimum-idle: 5 16 | connection-test-query: SELECT 1 FROM DUAL 17 | maximum-pool-size: 20 18 | auto-commit: true 19 | idle-timeout: 30000 20 | pool-name: SpringBootDemoHikariCP 21 | max-lifetime: 60000 22 | connection-timeout: 30000 23 | jpa: 24 | show-sql: true 25 | hibernate: 26 | ddl-auto: validate 27 | properties: 28 | hibernate: 29 | dialect: org.hibernate.dialect.MySQL57InnoDBDialect 30 | open-in-view: true 31 | logging: 32 | level: 33 | com.xkcoding: debug 34 | org.hibernate.SQL: debug 35 | org.hibernate.type: trace -------------------------------------------------------------------------------- /spring-boot-demo-orm-jpa/src/main/resources/db/data.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO `orm_user`(`id`,`name`,`password`,`salt`,`email`,`phone_number`) VALUES (1, 'user_1', 'ff342e862e7c3285cdc07e56d6b8973b', '412365a109674b2dbb1981ed561a4c70', 'user1@xkcoding.com', '17300000001'); 2 | INSERT INTO `orm_user`(`id`,`name`,`password`,`salt`,`email`,`phone_number`) VALUES (2, 'user_2', '6c6bf02c8d5d3d128f34b1700cb1e32c', 'fcbdd0e8a9404a5585ea4e01d0e4d7a0', 'user2@xkcoding.com', '17300000002'); -------------------------------------------------------------------------------- /spring-boot-demo-orm-jpa/src/main/resources/db/schema.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS `orm_user`; 2 | CREATE TABLE `orm_user` ( 3 | `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '主键', 4 | `name` VARCHAR(32) NOT NULL UNIQUE COMMENT '用户名', 5 | `password` VARCHAR(32) NOT NULL COMMENT '加密后的密码', 6 | `salt` VARCHAR(32) NOT NULL COMMENT '加密使用的盐', 7 | `email` VARCHAR(32) NOT NULL UNIQUE COMMENT '邮箱', 8 | `phone_number` VARCHAR(15) NOT NULL UNIQUE COMMENT '手机号码', 9 | `status` INT(2) NOT NULL DEFAULT 1 COMMENT '状态,-1:逻辑删除,0:禁用,1:启用', 10 | `create_time` DATETIME NOT NULL DEFAULT NOW() COMMENT '创建时间', 11 | `last_login_time` DATETIME DEFAULT NULL COMMENT '上次登录时间', 12 | `last_update_time` DATETIME NOT NULL DEFAULT NOW() COMMENT '上次更新时间' 13 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Spring Boot Demo Orm 系列示例表'; 14 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-jpa/src/test/java/com/xkcoding/orm/jpa/SpringBootDemoOrmJpaApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.jpa; 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 SpringBootDemoOrmJpaApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-mybatis-mapper-page/.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-boot-demo-orm-mybatis-mapper-page/src/main/java/com/xkcoding/orm/mybatis/MapperAndPage/SpringBootDemoOrmMybatisMapperPageApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.mybatis.MapperAndPage; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import tk.mybatis.spring.annotation.MapperScan; 6 | 7 | /** 8 | *

9 | * 启动器 10 | *

11 | * 12 | * @package: com.xkcoding.orm.mybatis.MapperAndPage 13 | * @description: 启动器 14 | * @author: yangkai.shen 15 | * @date: Created in 2018/11/8 13:43 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @SpringBootApplication 21 | @MapperScan(basePackages = {"com.xkcoding.orm.mybatis.MapperAndPage.mapper"}) 22 | public class SpringBootDemoOrmMybatisMapperPageApplication { 23 | 24 | public static void main(String[] args) { 25 | SpringApplication.run(SpringBootDemoOrmMybatisMapperPageApplication.class, args); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-mybatis-mapper-page/src/main/java/com/xkcoding/orm/mybatis/MapperAndPage/mapper/UserMapper.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.mybatis.MapperAndPage.mapper; 2 | 3 | import com.xkcoding.orm.mybatis.MapperAndPage.entity.User; 4 | import org.springframework.stereotype.Component; 5 | import tk.mybatis.mapper.common.Mapper; 6 | import tk.mybatis.mapper.common.MySqlMapper; 7 | 8 | /** 9 | *

10 | * UserMapper 11 | *

12 | * 13 | * @package: com.xkcoding.orm.mybatis.MapperAndPage.mapper 14 | * @description: UserMapper 15 | * @author: yangkai.shen 16 | * @date: Created in 2018/11/8 14:15 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | @Component 22 | public interface UserMapper extends Mapper, MySqlMapper { 23 | } 24 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-mybatis-mapper-page/src/main/resources/db/data.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO `orm_user`(`id`,`name`,`password`,`salt`,`email`,`phone_number`) VALUES (1, 'user_1', 'ff342e862e7c3285cdc07e56d6b8973b', '412365a109674b2dbb1981ed561a4c70', 'user1@xkcoding.com', '17300000001'); 2 | INSERT INTO `orm_user`(`id`,`name`,`password`,`salt`,`email`,`phone_number`) VALUES (2, 'user_2', '6c6bf02c8d5d3d128f34b1700cb1e32c', 'fcbdd0e8a9404a5585ea4e01d0e4d7a0', 'user2@xkcoding.com', '17300000002'); -------------------------------------------------------------------------------- /spring-boot-demo-orm-mybatis-mapper-page/src/main/resources/db/schema.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS `orm_user`; 2 | CREATE TABLE `orm_user` ( 3 | `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '主键', 4 | `name` VARCHAR(32) NOT NULL UNIQUE COMMENT '用户名', 5 | `password` VARCHAR(32) NOT NULL COMMENT '加密后的密码', 6 | `salt` VARCHAR(32) NOT NULL COMMENT '加密使用的盐', 7 | `email` VARCHAR(32) NOT NULL UNIQUE COMMENT '邮箱', 8 | `phone_number` VARCHAR(15) NOT NULL UNIQUE COMMENT '手机号码', 9 | `status` INT(2) NOT NULL DEFAULT 1 COMMENT '状态,-1:逻辑删除,0:禁用,1:启用', 10 | `create_time` DATETIME NOT NULL DEFAULT NOW() COMMENT '创建时间', 11 | `last_login_time` DATETIME DEFAULT NULL COMMENT '上次登录时间', 12 | `last_update_time` DATETIME NOT NULL DEFAULT NOW() COMMENT '上次更新时间' 13 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Spring Boot Demo Orm 系列示例表'; 14 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-mybatis-mapper-page/src/test/java/com/xkcoding/orm/mybatis/MapperAndPage/SpringBootDemoOrmMybatisMapperPageApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.mybatis.MapperAndPage; 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 SpringBootDemoOrmMybatisMapperPageApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-mybatis-plus/.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-boot-demo-orm-mybatis-plus/src/main/java/com/xkcoding/orm/mybatis/plus/SpringBootDemoOrmMybatisPlusApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.mybatis.plus; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | 7 | /** 8 | *

9 | * 启动器 10 | *

11 | * 12 | * @package: com.xkcoding.orm.mybatis.plus 13 | * @description: 启动器 14 | * @author: yangkai.shen 15 | * @date: Created in 2018/11/8 16:48 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @SpringBootApplication 21 | public class SpringBootDemoOrmMybatisPlusApplication { 22 | 23 | public static void main(String[] args) { 24 | SpringApplication.run(SpringBootDemoOrmMybatisPlusApplication.class, args); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-mybatis-plus/src/main/java/com/xkcoding/orm/mybatis/plus/mapper/UserMapper.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.mybatis.plus.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import com.xkcoding.orm.mybatis.plus.entity.User; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | *

9 | * UserMapper 10 | *

11 | * 12 | * @package: com.xkcoding.orm.mybatis.plus.mapper 13 | * @description: UserMapper 14 | * @author: yangkai.shen 15 | * @date: Created in 2018/11/8 16:57 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @Component 21 | public interface UserMapper extends BaseMapper { 22 | } 23 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-mybatis-plus/src/main/java/com/xkcoding/orm/mybatis/plus/service/UserService.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.mybatis.plus.service; 2 | 3 | import com.baomidou.mybatisplus.extension.service.IService; 4 | import com.xkcoding.orm.mybatis.plus.entity.User; 5 | 6 | /** 7 | *

8 | * User Service 9 | *

10 | * 11 | * @package: com.xkcoding.orm.mybatis.plus.service 12 | * @description: User Service 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/11/8 18:10 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | public interface UserService extends IService { 20 | } 21 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-mybatis-plus/src/main/java/com/xkcoding/orm/mybatis/plus/service/impl/UserServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.mybatis.plus.service.impl; 2 | 3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 4 | import com.xkcoding.orm.mybatis.plus.entity.User; 5 | import com.xkcoding.orm.mybatis.plus.mapper.UserMapper; 6 | import com.xkcoding.orm.mybatis.plus.service.UserService; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | *

11 | * User Service 12 | *

13 | * 14 | * @package: com.xkcoding.orm.mybatis.plus.service.impl 15 | * @description: User Service 16 | * @author: yangkai.shen 17 | * @date: Created in 2018/11/8 18:10 18 | * @copyright: Copyright (c) 2018 19 | * @version: V1.0 20 | * @modified: yangkai.shen 21 | */ 22 | @Service 23 | public class UserServiceImpl extends ServiceImpl implements UserService { 24 | } 25 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-mybatis-plus/src/main/resources/db/data.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO `orm_user`(`id`,`name`,`password`,`salt`,`email`,`phone_number`) VALUES (1, 'user_1', 'ff342e862e7c3285cdc07e56d6b8973b', '412365a109674b2dbb1981ed561a4c70', 'user1@xkcoding.com', '17300000001'); 2 | INSERT INTO `orm_user`(`id`,`name`,`password`,`salt`,`email`,`phone_number`) VALUES (2, 'user_2', '6c6bf02c8d5d3d128f34b1700cb1e32c', 'fcbdd0e8a9404a5585ea4e01d0e4d7a0', 'user2@xkcoding.com', '17300000002'); -------------------------------------------------------------------------------- /spring-boot-demo-orm-mybatis-plus/src/main/resources/db/schema.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS `orm_user`; 2 | CREATE TABLE `orm_user` ( 3 | `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '主键', 4 | `name` VARCHAR(32) NOT NULL UNIQUE COMMENT '用户名', 5 | `password` VARCHAR(32) NOT NULL COMMENT '加密后的密码', 6 | `salt` VARCHAR(32) NOT NULL COMMENT '加密使用的盐', 7 | `email` VARCHAR(32) NOT NULL UNIQUE COMMENT '邮箱', 8 | `phone_number` VARCHAR(15) NOT NULL UNIQUE COMMENT '手机号码', 9 | `status` INT(2) NOT NULL DEFAULT 1 COMMENT '状态,-1:逻辑删除,0:禁用,1:启用', 10 | `create_time` DATETIME NOT NULL DEFAULT NOW() COMMENT '创建时间', 11 | `last_login_time` DATETIME DEFAULT NULL COMMENT '上次登录时间', 12 | `last_update_time` DATETIME NOT NULL DEFAULT NOW() COMMENT '上次更新时间' 13 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Spring Boot Demo Orm 系列示例表'; 14 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-mybatis-plus/src/test/java/com/xkcoding/orm/mybatis/plus/SpringBootDemoOrmMybatisPlusApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.mybatis.plus; 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 SpringBootDemoOrmMybatisPlusApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-mybatis/.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-boot-demo-orm-mybatis/src/main/java/com/xkcoding/orm/mybatis/SpringBootDemoOrmMybatisApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.mybatis; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | 7 | /** 8 | *

9 | * 启动类 10 | *

11 | * 12 | * @package: com.xkcoding.orm.mybatis 13 | * @description: 启动类 14 | * @author: yangkai.shen 15 | * @date: Created in 2018/11/8 10:52 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @MapperScan(basePackages = {"com.xkcoding.orm.mybatis.mapper"}) 21 | @SpringBootApplication 22 | public class SpringBootDemoOrmMybatisApplication { 23 | 24 | public static void main(String[] args) { 25 | SpringApplication.run(SpringBootDemoOrmMybatisApplication.class, args); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-mybatis/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | datasource: 3 | url: jdbc:mysql://127.0.0.1:3306/spring-boot-demo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8 4 | username: root 5 | password: root 6 | driver-class-name: com.mysql.cj.jdbc.Driver 7 | type: com.zaxxer.hikari.HikariDataSource 8 | initialization-mode: always 9 | continue-on-error: true 10 | schema: 11 | - "classpath:db/schema.sql" 12 | data: 13 | - "classpath:db/data.sql" 14 | hikari: 15 | minimum-idle: 5 16 | connection-test-query: SELECT 1 FROM DUAL 17 | maximum-pool-size: 20 18 | auto-commit: true 19 | idle-timeout: 30000 20 | pool-name: SpringBootDemoHikariCP 21 | max-lifetime: 60000 22 | connection-timeout: 30000 23 | logging: 24 | level: 25 | com.xkcoding: debug 26 | com.xkcoding.orm.mybatis.mapper: trace 27 | mybatis: 28 | configuration: 29 | # 下划线转驼峰 30 | map-underscore-to-camel-case: true 31 | mapper-locations: classpath:mappers/*.xml 32 | type-aliases-package: com.xkcoding.orm.mybatis.entity 33 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-mybatis/src/main/resources/db/data.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO `orm_user`(`id`,`name`,`password`,`salt`,`email`,`phone_number`) VALUES (1, 'user_1', 'ff342e862e7c3285cdc07e56d6b8973b', '412365a109674b2dbb1981ed561a4c70', 'user1@xkcoding.com', '17300000001'); 2 | INSERT INTO `orm_user`(`id`,`name`,`password`,`salt`,`email`,`phone_number`) VALUES (2, 'user_2', '6c6bf02c8d5d3d128f34b1700cb1e32c', 'fcbdd0e8a9404a5585ea4e01d0e4d7a0', 'user2@xkcoding.com', '17300000002'); -------------------------------------------------------------------------------- /spring-boot-demo-orm-mybatis/src/main/resources/db/schema.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS `orm_user`; 2 | CREATE TABLE `orm_user` ( 3 | `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '主键', 4 | `name` VARCHAR(32) NOT NULL UNIQUE COMMENT '用户名', 5 | `password` VARCHAR(32) NOT NULL COMMENT '加密后的密码', 6 | `salt` VARCHAR(32) NOT NULL COMMENT '加密使用的盐', 7 | `email` VARCHAR(32) NOT NULL UNIQUE COMMENT '邮箱', 8 | `phone_number` VARCHAR(15) NOT NULL UNIQUE COMMENT '手机号码', 9 | `status` INT(2) NOT NULL DEFAULT 1 COMMENT '状态,-1:逻辑删除,0:禁用,1:启用', 10 | `create_time` DATETIME NOT NULL DEFAULT NOW() COMMENT '创建时间', 11 | `last_login_time` DATETIME DEFAULT NULL COMMENT '上次登录时间', 12 | `last_update_time` DATETIME NOT NULL DEFAULT NOW() COMMENT '上次更新时间' 13 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Spring Boot Demo Orm 系列示例表'; 14 | -------------------------------------------------------------------------------- /spring-boot-demo-orm-mybatis/src/test/java/com/xkcoding/orm/mybatis/SpringBootDemoOrmMybatisApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.orm.mybatis; 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 SpringBootDemoOrmMybatisApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-properties/.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-boot-demo-properties/src/main/java/com/xkcoding/properties/SpringBootDemoPropertiesApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.properties; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动类 9 | *

10 | * 11 | * @package: com.xkcoding.properties 12 | * @description: 启动类 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/9/29 10:48 AM 15 | * @copyright: Copyright (c)2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoPropertiesApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoPropertiesApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-properties/src/main/java/com/xkcoding/properties/property/ApplicationProperty.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.properties.property; 2 | 3 | import lombok.Data; 4 | import org.springframework.beans.factory.annotation.Value; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | *

9 | * 项目配置 10 | *

11 | * 12 | * @package: com.xkcoding.properties.property 13 | * @description: 项目配置 14 | * @author: yangkai.shen 15 | * @date: Created in 2018/9/29 10:50 AM 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @Data 21 | @Component 22 | public class ApplicationProperty { 23 | @Value("${application.name}") 24 | private String name; 25 | @Value("${application.version}") 26 | private String version; 27 | } 28 | -------------------------------------------------------------------------------- /spring-boot-demo-properties/src/main/java/com/xkcoding/properties/property/DeveloperProperty.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.properties.property; 2 | 3 | import lombok.Data; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | *

9 | * 开发人员配置信息 10 | *

11 | * 12 | * @package: com.xkcoding.properties.property 13 | * @description: 开发人员配置信息 14 | * @author: yangkai.shen 15 | * @date: Created in 2018/9/29 10:51 AM 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @Data 21 | @ConfigurationProperties(prefix = "developer") 22 | @Component 23 | public class DeveloperProperty { 24 | private String name; 25 | private String website; 26 | private String qq; 27 | private String phoneNumber; 28 | } 29 | -------------------------------------------------------------------------------- /spring-boot-demo-properties/src/main/resources/META-INF/additional-spring-configuration-metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "properties": [ 3 | { 4 | "name": "application.name", 5 | "description": "Default value is artifactId in pom.xml.", 6 | "type": "java.lang.String" 7 | }, 8 | { 9 | "name": "application.version", 10 | "description": "Default value is version in pom.xml.", 11 | "type": "java.lang.String" 12 | }, 13 | { 14 | "name": "developer.name", 15 | "description": "The Developer Name.", 16 | "type": "java.lang.String" 17 | }, 18 | { 19 | "name": "developer.website", 20 | "description": "The Developer Website.", 21 | "type": "java.lang.String" 22 | }, 23 | { 24 | "name": "developer.qq", 25 | "description": "The Developer QQ Number.", 26 | "type": "java.lang.String" 27 | }, 28 | { 29 | "name": "developer.phone-number", 30 | "description": "The Developer Phone Number.", 31 | "type": "java.lang.String" 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /spring-boot-demo-properties/src/main/resources/application-dev.yml: -------------------------------------------------------------------------------- 1 | application: 2 | name: dev环境 @artifactId@ 3 | version: dev环境 @version@ 4 | developer: 5 | name: dev环境 xkcoding 6 | website: dev环境 http://xkcoding.com 7 | qq: dev环境 237497819 8 | phone-number: dev环境 17326075631 -------------------------------------------------------------------------------- /spring-boot-demo-properties/src/main/resources/application-prod.yml: -------------------------------------------------------------------------------- 1 | application: 2 | name: prod环境 @artifactId@ 3 | version: prod环境 @version@ 4 | developer: 5 | name: prod环境 xkcoding 6 | website: prod环境 http://xkcoding.com 7 | qq: prod环境 237497819 8 | phone-number: prod环境 17326075631 -------------------------------------------------------------------------------- /spring-boot-demo-properties/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo 5 | spring: 6 | profiles: 7 | active: prod -------------------------------------------------------------------------------- /spring-boot-demo-properties/src/test/java/com/xkcoding/properties/SpringBootDemoPropertiesApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.properties; 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 SpringBootDemoPropertiesApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/.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-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/SpringBootDemoRbacSecurityApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动器 9 | *

10 | * 11 | * @package: com.xkcoding.rbac.security 12 | * @description: 启动器 13 | * @author: yangkai.shen 14 | * @date: Created in 2018-12-10 11:28 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoRbacSecurityApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoRbacSecurityApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/common/IStatus.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.common; 2 | 3 | /** 4 | *

5 | * REST API 错误码接口 6 | *

7 | * 8 | * @package: com.xkcoding.rbac.security.common 9 | * @description: REST API 错误码接口 10 | * @author: yangkai.shen 11 | * @date: Created in 2018-12-07 14:35 12 | * @copyright: Copyright (c) 2018 13 | * @version: V1.0 14 | * @modified: yangkai.shen 15 | */ 16 | public interface IStatus { 17 | 18 | /** 19 | * 状态码 20 | * 21 | * @return 状态码 22 | */ 23 | Integer getCode(); 24 | 25 | /** 26 | * 返回信息 27 | * 28 | * @return 返回信息 29 | */ 30 | String getMessage(); 31 | 32 | } -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/common/PageResult.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.common; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.io.Serializable; 8 | import java.util.List; 9 | 10 | /** 11 | *

12 | * 通用分页参数返回 13 | *

14 | * 15 | * @package: com.xkcoding.rbac.security.common 16 | * @description: 通用分页参数返回 17 | * @author: yangkai.shen 18 | * @date: Created in 2018-12-11 20:26 19 | * @copyright: Copyright (c) 2018 20 | * @version: V1.0 21 | * @modified: yangkai.shen 22 | */ 23 | @Data 24 | @NoArgsConstructor 25 | @AllArgsConstructor 26 | public class PageResult implements Serializable { 27 | private static final long serialVersionUID = 3420391142991247367L; 28 | 29 | /** 30 | * 当前页数据 31 | */ 32 | private List rows; 33 | 34 | /** 35 | * 总条数 36 | */ 37 | private Long total; 38 | 39 | public static PageResult of(List rows, Long total) { 40 | return new PageResult<>(rows, total); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/config/CustomConfig.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.config; 2 | 3 | import lombok.Data; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | 6 | /** 7 | *

8 | * 自定义配置 9 | *

10 | * 11 | * @package: com.xkcoding.rbac.security.config 12 | * @description: 自定义配置 13 | * @author: yangkai.shen 14 | * @date: Created in 2018-12-13 10:56 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @ConfigurationProperties(prefix = "custom.config") 20 | @Data 21 | public class CustomConfig { 22 | /** 23 | * 不需要拦截的地址 24 | */ 25 | private IgnoreConfig ignores; 26 | } 27 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/config/IdConfig.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.config; 2 | 3 | import cn.hutool.core.lang.Snowflake; 4 | import cn.hutool.core.util.IdUtil; 5 | import org.springframework.context.annotation.Bean; 6 | import org.springframework.context.annotation.Configuration; 7 | 8 | /** 9 | *

10 | * 雪花主键生成器 11 | *

12 | * 13 | * @package: com.xkcoding.rbac.security.config 14 | * @description: 雪花主键生成器 15 | * @author: yangkai.shen 16 | * @date: Created in 2018-12-10 11:28 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | @Configuration 22 | public class IdConfig { 23 | /** 24 | * 雪花生成器 25 | */ 26 | @Bean 27 | public Snowflake snowflake() { 28 | return IdUtil.createSnowflake(1, 1); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/config/JwtConfig.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.config; 2 | 3 | import lombok.Data; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | 6 | /** 7 | *

8 | * JWT 配置 9 | *

10 | * 11 | * @package: com.xkcoding.rbac.security.config 12 | * @description: JWT 配置 13 | * @author: yangkai.shen 14 | * @date: Created in 2018-12-07 13:42 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @ConfigurationProperties(prefix = "jwt.config") 20 | @Data 21 | public class JwtConfig { 22 | /** 23 | * jwt 加密 key,默认值:xkcoding. 24 | */ 25 | private String key = "xkcoding"; 26 | 27 | /** 28 | * jwt 过期时间,默认值:600000 {@code 10 分钟}. 29 | */ 30 | private Long ttl = 600000L; 31 | 32 | /** 33 | * 开启 记住我 之后 jwt 过期时间,默认值 604800000 {@code 7 天} 34 | */ 35 | private Long remember = 604800000L; 36 | } 37 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/config/SecurityHandlerConfig.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.config; 2 | 3 | import com.xkcoding.rbac.security.common.Status; 4 | import com.xkcoding.rbac.security.util.ResponseUtil; 5 | import org.springframework.context.annotation.Bean; 6 | import org.springframework.context.annotation.Configuration; 7 | import org.springframework.security.web.access.AccessDeniedHandler; 8 | 9 | /** 10 | *

11 | * Security 结果处理配置 12 | *

13 | * 14 | * @package: com.xkcoding.rbac.security.config 15 | * @description: Security 结果处理配置 16 | * @author: yangkai.shen 17 | * @date: Created in 2018-12-07 17:31 18 | * @copyright: Copyright (c) 2018 19 | * @version: V1.0 20 | * @modified: yangkai.shen 21 | */ 22 | @Configuration 23 | public class SecurityHandlerConfig { 24 | 25 | @Bean 26 | public AccessDeniedHandler accessDeniedHandler() { 27 | return (request, response, accessDeniedException) -> ResponseUtil.renderJson(response, Status.ACCESS_DENIED, null); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/config/WebMvcConfig.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.config; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.web.servlet.config.annotation.CorsRegistry; 5 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; 6 | 7 | /** 8 | *

9 | * MVC配置 10 | *

11 | * 12 | * @package: com.xkcoding.rbac.security.config 13 | * @description: MVC配置 14 | * @author: yangkai.shen 15 | * @date: Created in 2018-12-10 16:09 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @Configuration 21 | public class WebMvcConfig implements WebMvcConfigurer { 22 | 23 | private static final long MAX_AGE_SECS = 3600; 24 | 25 | @Override 26 | public void addCorsMappings(CorsRegistry registry) { 27 | registry.addMapping("/**") 28 | .allowedOrigins("*") 29 | .allowedMethods("HEAD", "OPTIONS", "GET", "POST", "PUT", "PATCH", "DELETE") 30 | .maxAge(MAX_AGE_SECS); 31 | } 32 | } -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/controller/TestController.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.controller; 2 | 3 | import com.xkcoding.rbac.security.common.ApiResponse; 4 | import lombok.extern.slf4j.Slf4j; 5 | import org.springframework.web.bind.annotation.*; 6 | 7 | /** 8 | *

9 | * 测试Controller 10 | *

11 | * 12 | * @package: com.xkcoding.rbac.security.controller 13 | * @description: 测试Controller 14 | * @author: yangkai.shen 15 | * @date: Created in 2018-12-10 15:44 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @Slf4j 21 | @RestController 22 | @RequestMapping("/test") 23 | public class TestController { 24 | @GetMapping 25 | public ApiResponse list() { 26 | log.info("测试列表查询"); 27 | return ApiResponse.ofMessage("测试列表查询"); 28 | } 29 | 30 | @PostMapping 31 | public ApiResponse add() { 32 | log.info("测试列表添加"); 33 | return ApiResponse.ofMessage("测试列表添加"); 34 | } 35 | 36 | @PutMapping("/{id}") 37 | public ApiResponse update(@PathVariable Long id) { 38 | log.info("测试列表修改"); 39 | return ApiResponse.ofSuccess("测试列表修改"); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/exception/SecurityException.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.exception; 2 | 3 | import com.xkcoding.rbac.security.common.BaseException; 4 | import com.xkcoding.rbac.security.common.Status; 5 | import lombok.Data; 6 | import lombok.EqualsAndHashCode; 7 | 8 | /** 9 | *

10 | * 全局异常 11 | *

12 | * 13 | * @package: com.xkcoding.rbac.security.exception 14 | * @description: 全局异常 15 | * @author: yangkai.shen 16 | * @date: Created in 2018-12-10 17:24 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | @EqualsAndHashCode(callSuper = true) 22 | @Data 23 | public class SecurityException extends BaseException { 24 | public SecurityException(Status status) { 25 | super(status); 26 | } 27 | 28 | public SecurityException(Status status, Object data) { 29 | super(status, data); 30 | } 31 | 32 | public SecurityException(Integer code, String message) { 33 | super(code, message); 34 | } 35 | 36 | public SecurityException(Integer code, String message, Object data) { 37 | super(code, message, data); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/model/Role.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.model; 2 | 3 | import lombok.Data; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Entity; 7 | import javax.persistence.Id; 8 | import javax.persistence.Table; 9 | 10 | /** 11 | *

12 | * 角色 13 | *

14 | * 15 | * @package: com.xkcoding.rbac.security.model 16 | * @description: 角色 17 | * @author: yangkai.shen 18 | * @date: Created in 2018-12-07 15:45 19 | * @copyright: Copyright (c) 2018 20 | * @version: V1.0 21 | * @modified: yangkai.shen 22 | */ 23 | @Data 24 | @Entity 25 | @Table(name = "sec_role") 26 | public class Role { 27 | /** 28 | * 主键 29 | */ 30 | @Id 31 | private Long id; 32 | 33 | /** 34 | * 角色名 35 | */ 36 | private String name; 37 | 38 | /** 39 | * 描述 40 | */ 41 | private String description; 42 | 43 | /** 44 | * 创建时间 45 | */ 46 | @Column(name = "create_time") 47 | private Long createTime; 48 | 49 | /** 50 | * 更新时间 51 | */ 52 | @Column(name = "update_time") 53 | private Long updateTime; 54 | } 55 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/model/RolePermission.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.model; 2 | 3 | import com.xkcoding.rbac.security.model.unionkey.RolePermissionKey; 4 | import lombok.Data; 5 | 6 | import javax.persistence.EmbeddedId; 7 | import javax.persistence.Entity; 8 | import javax.persistence.Table; 9 | 10 | /** 11 | *

12 | * 角色-权限 13 | *

14 | * 15 | * @package: com.xkcoding.rbac.security.model 16 | * @description: 角色-权限 17 | * @author: yangkai.shen 18 | * @date: Created in 2018-12-10 13:46 19 | * @copyright: Copyright (c) 2018 20 | * @version: V1.0 21 | * @modified: yangkai.shen 22 | */ 23 | @Data 24 | @Entity 25 | @Table(name = "sec_role_permission") 26 | public class RolePermission { 27 | /** 28 | * 主键 29 | */ 30 | @EmbeddedId 31 | private RolePermissionKey id; 32 | } 33 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/model/UserRole.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.model; 2 | 3 | import com.xkcoding.rbac.security.model.unionkey.UserRoleKey; 4 | import lombok.Data; 5 | 6 | import javax.persistence.EmbeddedId; 7 | import javax.persistence.Entity; 8 | import javax.persistence.Table; 9 | 10 | /** 11 | *

12 | * 用户角色关联 13 | *

14 | * 15 | * @package: com.xkcoding.rbac.security.model 16 | * @description: 用户角色关联 17 | * @author: yangkai.shen 18 | * @date: Created in 2018-12-10 11:18 19 | * @copyright: Copyright (c) 2018 20 | * @version: V1.0 21 | * @modified: yangkai.shen 22 | */ 23 | @Data 24 | @Entity 25 | @Table(name = "sec_user_role") 26 | public class UserRole { 27 | /** 28 | * 主键 29 | */ 30 | @EmbeddedId 31 | private UserRoleKey id; 32 | } 33 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/model/unionkey/RolePermissionKey.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.model.unionkey; 2 | 3 | import lombok.Data; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Embeddable; 7 | import java.io.Serializable; 8 | 9 | /** 10 | *

11 | * 角色-权限联合主键 12 | *

13 | * 14 | * @package: com.xkcoding.rbac.security.model.unionkey 15 | * @description: 角色-权限联合主键 16 | * @author: yangkai.shen 17 | * @date: Created in 2018-12-10 13:47 18 | * @copyright: Copyright (c) 2018 19 | * @version: V1.0 20 | * @modified: yangkai.shen 21 | */ 22 | @Data 23 | @Embeddable 24 | public class RolePermissionKey implements Serializable { 25 | private static final long serialVersionUID = 6850974328279713855L; 26 | 27 | /** 28 | * 角色id 29 | */ 30 | @Column(name = "role_id") 31 | private Long roleId; 32 | 33 | /** 34 | * 权限id 35 | */ 36 | @Column(name = "permission_id") 37 | private Long permissionId; 38 | } 39 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/model/unionkey/UserRoleKey.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.model.unionkey; 2 | 3 | import lombok.Data; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Embeddable; 7 | import java.io.Serializable; 8 | 9 | /** 10 | *

11 | * 用户-角色联合主键 12 | *

13 | * 14 | * @package: com.xkcoding.rbac.security.model.unionkey 15 | * @description: 用户-角色联合主键 16 | * @author: yangkai.shen 17 | * @date: Created in 2018-12-10 11:20 18 | * @copyright: Copyright (c) 2018 19 | * @version: V1.0 20 | * @modified: yangkai.shen 21 | */ 22 | @Embeddable 23 | @Data 24 | public class UserRoleKey implements Serializable { 25 | private static final long serialVersionUID = 5633412144183654743L; 26 | 27 | /** 28 | * 用户id 29 | */ 30 | @Column(name = "user_id") 31 | private Long userId; 32 | 33 | /** 34 | * 角色id 35 | */ 36 | @Column(name = "role_id") 37 | private Long roleId; 38 | } 39 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/payload/LoginRequest.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.payload; 2 | 3 | import lombok.Data; 4 | 5 | import javax.validation.constraints.NotBlank; 6 | 7 | /** 8 | *

9 | * 登录请求参数 10 | *

11 | * 12 | * @package: com.xkcoding.rbac.security.payload 13 | * @description: 登录请求参数 14 | * @author: yangkai.shen 15 | * @date: Created in 2018-12-10 15:52 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @Data 21 | public class LoginRequest { 22 | 23 | /** 24 | * 用户名或邮箱或手机号 25 | */ 26 | @NotBlank(message = "用户名不能为空") 27 | private String usernameOrEmailOrPhone; 28 | 29 | /** 30 | * 密码 31 | */ 32 | @NotBlank(message = "密码不能为空") 33 | private String password; 34 | 35 | /** 36 | * 记住我 37 | */ 38 | private Boolean rememberMe = false; 39 | 40 | } 41 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/payload/PageCondition.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.payload; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | *

7 | * 分页请求参数 8 | *

9 | * 10 | * @package: com.xkcoding.rbac.security.payload 11 | * @description: 分页请求参数 12 | * @author: yangkai.shen 13 | * @date: Created in 2018-12-12 18:05 14 | * @copyright: Copyright (c) 2018 15 | * @version: V1.0 16 | * @modified: yangkai.shen 17 | */ 18 | @Data 19 | public class PageCondition { 20 | /** 21 | * 当前页码 22 | */ 23 | private Integer currentPage; 24 | 25 | /** 26 | * 每页条数 27 | */ 28 | private Integer pageSize; 29 | 30 | } 31 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/repository/RolePermissionDao.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.repository; 2 | 3 | import com.xkcoding.rbac.security.model.RolePermission; 4 | import com.xkcoding.rbac.security.model.unionkey.RolePermissionKey; 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 7 | 8 | /** 9 | *

10 | * 角色-权限 DAO 11 | *

12 | * 13 | * @package: com.xkcoding.rbac.security.repository 14 | * @description: 角色-权限 DAO 15 | * @author: yangkai.shen 16 | * @date: Created in 2018-12-10 13:45 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | public interface RolePermissionDao extends JpaRepository, JpaSpecificationExecutor { 22 | } 23 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/repository/UserRoleDao.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.repository; 2 | 3 | import com.xkcoding.rbac.security.model.UserRole; 4 | import com.xkcoding.rbac.security.model.unionkey.UserRoleKey; 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 7 | 8 | /** 9 | *

10 | * 用户角色 DAO 11 | *

12 | * 13 | * @package: com.xkcoding.rbac.security.repository 14 | * @description: 用户角色 DAO 15 | * @author: yangkai.shen 16 | * @date: Created in 2018-12-10 11:24 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | public interface UserRoleDao extends JpaRepository, JpaSpecificationExecutor { 22 | 23 | } 24 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/main/java/com/xkcoding/rbac/security/vo/JwtResponse.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security.vo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | *

9 | * JWT 响应返回 10 | *

11 | * 12 | * @package: com.xkcoding.rbac.security.vo 13 | * @description: JWT 响应返回 14 | * @author: yangkai.shen 15 | * @date: Created in 2018-12-10 16:01 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @Data 21 | @NoArgsConstructor 22 | @AllArgsConstructor 23 | public class JwtResponse { 24 | /** 25 | * token 字段 26 | */ 27 | private String token; 28 | /** 29 | * token类型 30 | */ 31 | private String tokenType = "Bearer"; 32 | 33 | public JwtResponse(String token) { 34 | this.token = token; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-security/src/test/java/com/xkcoding/rbac/security/SpringBootDemoRbacSecurityApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.security; 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 SpringBootDemoRbacSecurityApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-shiro/.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-boot-demo-rbac-shiro/src/main/java/com/xkcoding/rbac/shiro/SpringBootDemoRbacShiroApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.shiro; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SpringBootDemoRbacShiroApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SpringBootDemoRbacShiroApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /spring-boot-demo-rbac-shiro/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-rbac-shiro/src/main/resources/application.properties -------------------------------------------------------------------------------- /spring-boot-demo-rbac-shiro/src/test/java/com/xkcoding/rbac/shiro/SpringBootDemoRbacShiroApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.rbac.shiro; 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 SpringBootDemoRbacShiroApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-session/.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-boot-demo-session/src/main/java/com/xkcoding/session/SpringBootDemoSessionApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.session; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动类 9 | *

10 | * 11 | * @package: com.xkcoding.session 12 | * @description: 启动类 13 | * @author: yangkai.shen 14 | * @date: Created in 2018-12-19 19:35 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoSessionApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoSessionApplication.class, args); 24 | } 25 | 26 | } 27 | 28 | -------------------------------------------------------------------------------- /spring-boot-demo-session/src/main/java/com/xkcoding/session/constants/Consts.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.session.constants; 2 | 3 | /** 4 | *

5 | * 常量池 6 | *

7 | * 8 | * @package: com.xkcoding.session.constants 9 | * @description: 常量池 10 | * @author: yangkai.shen 11 | * @date: Created in 2018-12-19 19:42 12 | * @copyright: Copyright (c) 2018 13 | * @version: V1.0 14 | * @modified: yangkai.shen 15 | */ 16 | public interface Consts { 17 | /** 18 | * session保存的key 19 | */ 20 | String SESSION_KEY = "key:session:token"; 21 | } 22 | -------------------------------------------------------------------------------- /spring-boot-demo-session/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo 5 | spring: 6 | session: 7 | store-type: redis 8 | redis: 9 | flush-mode: immediate 10 | namespace: "spring:session" 11 | redis: 12 | host: localhost 13 | port: 6379 14 | # 连接超时时间(记得添加单位,Duration) 15 | timeout: 10000ms 16 | # Redis默认情况下有16个分片,这里配置具体使用的分片 17 | # database: 0 18 | lettuce: 19 | pool: 20 | # 连接池最大连接数(使用负值表示没有限制) 默认 8 21 | max-active: 8 22 | # 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1 23 | max-wait: -1ms 24 | # 连接池中的最大空闲连接 默认 8 25 | max-idle: 8 26 | # 连接池中的最小空闲连接 默认 0 27 | min-idle: 0 -------------------------------------------------------------------------------- /spring-boot-demo-session/src/main/resources/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | spring-boot-demo-session 6 | 7 | 8 | token的值:

9 | 10 | -------------------------------------------------------------------------------- /spring-boot-demo-session/src/main/resources/templates/login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | spring-boot-demo-session 6 | 7 | 8 |

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /spring-boot-demo-session/src/test/java/com/xkcoding/session/SpringBootDemoSessionApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.session; 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 SpringBootDemoSessionApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /spring-boot-demo-social/.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-boot-demo-social/src/main/java/com/xkcoding/social/SpringBootDemoSocialApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.social; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SpringBootDemoSocialApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SpringBootDemoSocialApplication.class, args); 11 | } 12 | 13 | } 14 | 15 | -------------------------------------------------------------------------------- /spring-boot-demo-social/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-social/src/main/resources/application.properties -------------------------------------------------------------------------------- /spring-boot-demo-social/src/test/java/com/xkcoding/social/SpringBootDemoSocialApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.social; 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 SpringBootDemoSocialApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /spring-boot-demo-swagger-beauty/.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-boot-demo-swagger-beauty/src/main/java/com/xkcoding/swagger/beauty/SpringBootDemoSwaggerBeautyApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.swagger.beauty; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动器 9 | *

10 | * 11 | * @package: com.xkcoding.swagger.beauty 12 | * @description: 启动器 13 | * @author: yangkai.shen 14 | * @date: Created in 2018-11-28 11:18 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoSwaggerBeautyApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoSwaggerBeautyApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-swagger-beauty/src/test/java/com/xkcoding/swagger/beauty/SpringBootDemoSwaggerBeautyApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.swagger.beauty; 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 SpringBootDemoSwaggerBeautyApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-swagger/.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-boot-demo-swagger/src/main/java/com/xkcoding/swagger/SpringBootDemoSwaggerApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.swagger; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动器 9 | *

10 | * 11 | * @package: com.xkcoding.swagger 12 | * @description: 启动器 13 | * @author: yangkai.shen 14 | * @date: Created in 2018-11-29 13:25 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoSwaggerApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoSwaggerApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-swagger/src/main/java/com/xkcoding/swagger/common/DataType.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.swagger.common; 2 | 3 | /** 4 | *

5 | * 方便在 @ApiImplicitParam 的 dataType 属性使用 6 | *

7 | * 8 | * @package: com.xkcoding.swagger.common 9 | * @description: 方便在 @ApiImplicitParam 的 dataType 属性使用 10 | * @author: yangkai.shen 11 | * @date: Created in 2018-11-29 13:23 12 | * @copyright: Copyright (c) 2018 13 | * @version: V1.0 14 | * @modified: yangkai.shen 15 | */ 16 | public final class DataType { 17 | 18 | public final static String STRING = "String"; 19 | public final static String INT = "int"; 20 | public final static String LONG = "long"; 21 | public final static String DOUBLE = "double"; 22 | public final static String FLOAT = "float"; 23 | public final static String BYTE = "byte"; 24 | public final static String BOOLEAN = "boolean"; 25 | public final static String ARRAY = "array"; 26 | public final static String BINARY = "binary"; 27 | public final static String DATETIME = "dateTime"; 28 | public final static String PASSWORD = "password"; 29 | 30 | } -------------------------------------------------------------------------------- /spring-boot-demo-swagger/src/main/java/com/xkcoding/swagger/common/ParamType.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.swagger.common; 2 | 3 | /** 4 | *

5 | * 方便在 @ApiImplicitParam 的 paramType 属性使用 6 | *

7 | * 8 | * @package: com.xkcoding.swagger.common 9 | * @description: 方便在 @ApiImplicitParam 的 paramType 属性使用 10 | * @author: yangkai.shen 11 | * @date: Created in 2018-11-29 13:24 12 | * @copyright: Copyright (c) 2018 13 | * @version: V1.0 14 | * @modified: yangkai.shen 15 | */ 16 | public final class ParamType { 17 | 18 | public final static String QUERY = "query"; 19 | public final static String HEADER = "header"; 20 | public final static String PATH = "path"; 21 | public final static String BODY = "body"; 22 | public final static String FORM = "form"; 23 | 24 | } -------------------------------------------------------------------------------- /spring-boot-demo-swagger/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo -------------------------------------------------------------------------------- /spring-boot-demo-swagger/src/test/java/com/xkcoding/swagger/SpringBootDemoSwaggerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.swagger; 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 SpringBootDemoSwaggerApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-task-quartz/.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-boot-demo-task-quartz/assets/image-20181126171110378-3223470.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-task-quartz/assets/image-20181126171110378-3223470.png -------------------------------------------------------------------------------- /spring-boot-demo-task-quartz/assets/image-20181126214007372-3239607.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-task-quartz/assets/image-20181126214007372-3239607.png -------------------------------------------------------------------------------- /spring-boot-demo-task-quartz/assets/image-20181126214109926-3239669.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-task-quartz/assets/image-20181126214109926-3239669.png -------------------------------------------------------------------------------- /spring-boot-demo-task-quartz/assets/image-20181126214138641-3239698.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-task-quartz/assets/image-20181126214138641-3239698.png -------------------------------------------------------------------------------- /spring-boot-demo-task-quartz/assets/image-20181126214212905-3239732.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-task-quartz/assets/image-20181126214212905-3239732.png -------------------------------------------------------------------------------- /spring-boot-demo-task-quartz/assets/image-20181126214250757-3239770.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-task-quartz/assets/image-20181126214250757-3239770.png -------------------------------------------------------------------------------- /spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/SpringBootDemoTaskQuartzApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.task.quartz; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import tk.mybatis.spring.annotation.MapperScan; 6 | 7 | /** 8 | *

9 | * 启动器 10 | *

11 | * 12 | * @package: com.xkcoding.task.quartz 13 | * @description: 启动器 14 | * @author: yangkai.shen 15 | * @date: Created in 2018/11/23 20:33 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @MapperScan(basePackages = {"com.xkcoding.task.quartz.mapper"}) 21 | @SpringBootApplication 22 | public class SpringBootDemoTaskQuartzApplication { 23 | 24 | public static void main(String[] args) { 25 | SpringApplication.run(SpringBootDemoTaskQuartzApplication.class, args); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/entity/form/JobForm.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.task.quartz.entity.form; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | 6 | import javax.validation.constraints.NotBlank; 7 | 8 | /** 9 | *

10 | * 定时任务详情 11 | *

12 | * 13 | * @package: com.xkcoding.task.quartz.entity.form 14 | * @description: 定时任务详情 15 | * @author: yangkai.shen 16 | * @date: Created in 2018-11-26 13:42 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | @Data 22 | @Accessors(chain = true) 23 | public class JobForm { 24 | /** 25 | * 定时任务全类名 26 | */ 27 | @NotBlank(message = "类名不能为空") 28 | private String jobClassName; 29 | /** 30 | * 任务组名 31 | */ 32 | @NotBlank(message = "任务组名不能为空") 33 | private String jobGroupName; 34 | /** 35 | * 定时任务cron表达式 36 | */ 37 | @NotBlank(message = "cron表达式不能为空") 38 | private String cronExpression; 39 | } 40 | -------------------------------------------------------------------------------- /spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/job/HelloJob.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.task.quartz.job; 2 | 3 | import cn.hutool.core.date.DateUtil; 4 | import com.xkcoding.task.quartz.job.base.BaseJob; 5 | import lombok.extern.slf4j.Slf4j; 6 | import org.quartz.JobExecutionContext; 7 | 8 | /** 9 | *

10 | * Hello Job 11 | *

12 | * 13 | * @package: com.xkcoding.task.quartz.job 14 | * @description: Hello Job 15 | * @author: yangkai.shen 16 | * @date: Created in 2018-11-26 13:22 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | @Slf4j 22 | public class HelloJob implements BaseJob { 23 | 24 | @Override 25 | public void execute(JobExecutionContext context) { 26 | log.error("Hello Job 执行时间: {}", DateUtil.now()); 27 | } 28 | } -------------------------------------------------------------------------------- /spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/job/TestJob.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.task.quartz.job; 2 | 3 | import cn.hutool.core.date.DateUtil; 4 | import com.xkcoding.task.quartz.job.base.BaseJob; 5 | import lombok.extern.slf4j.Slf4j; 6 | import org.quartz.JobExecutionContext; 7 | 8 | /** 9 | *

10 | * Test Job 11 | *

12 | * 13 | * @package: com.xkcoding.task.quartz.job 14 | * @description: Test Job 15 | * @author: yangkai.shen 16 | * @date: Created in 2018-11-26 13:22 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | @Slf4j 22 | public class TestJob implements BaseJob { 23 | 24 | @Override 25 | public void execute(JobExecutionContext context) { 26 | log.error("Test Job 执行时间: {}", DateUtil.now()); 27 | } 28 | } -------------------------------------------------------------------------------- /spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/mapper/JobMapper.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.task.quartz.mapper; 2 | 3 | import com.xkcoding.task.quartz.entity.domain.JobAndTrigger; 4 | import org.springframework.stereotype.Component; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | *

10 | * Job Mapper 11 | *

12 | * 13 | * @package: com.xkcoding.task.quartz.mapper 14 | * @description: Job Mapper 15 | * @author: yangkai.shen 16 | * @date: Created in 2018-11-26 15:12 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | @Component 22 | public interface JobMapper { 23 | /** 24 | * 查询定时作业和触发器列表 25 | * 26 | * @return 定时作业和触发器列表 27 | */ 28 | List list(); 29 | } 30 | -------------------------------------------------------------------------------- /spring-boot-demo-task-quartz/src/main/java/com/xkcoding/task/quartz/util/JobUtil.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.task.quartz.util; 2 | 3 | import com.xkcoding.task.quartz.job.base.BaseJob; 4 | 5 | /** 6 | *

7 | * 定时任务反射工具类 8 | *

9 | * 10 | * @package: com.xkcoding.task.quartz.util 11 | * @description: 定时任务反射工具类 12 | * @author: yangkai.shen 13 | * @date: Created in 2018-11-26 13:33 14 | * @copyright: Copyright (c) 2018 15 | * @version: V1.0 16 | * @modified: yangkai.shen 17 | */ 18 | public class JobUtil { 19 | /** 20 | * 根据全类名获取Job实例 21 | * 22 | * @param classname Job全类名 23 | * @return {@link BaseJob} 实例 24 | * @throws Exception 泛型获取异常 25 | */ 26 | public static BaseJob getClass(String classname) throws Exception { 27 | Class clazz = Class.forName(classname); 28 | return (BaseJob) clazz.newInstance(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /spring-boot-demo-task-quartz/src/test/java/com/xkcoding/task/quartz/SpringBootDemoTaskQuartzApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.task.quartz; 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 SpringBootDemoTaskQuartzApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-task/.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-boot-demo-task/src/main/java/com/xkcoding/task/SpringBootDemoTaskApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.task; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动器 9 | *

10 | * 11 | * @package: com.xkcoding.task 12 | * @description: 启动器 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/11/22 19:00 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoTaskApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoTaskApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-task/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo 5 | # 下面的配置等同于 TaskConfig 6 | #spring: 7 | # task: 8 | # scheduling: 9 | # pool: 10 | # size: 20 11 | # thread-name-prefix: Job-Thread- -------------------------------------------------------------------------------- /spring-boot-demo-task/src/test/java/com/xkcoding/task/SpringBootDemoTaskApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.task; 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 SpringBootDemoTaskApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-template-beetl/.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-boot-demo-template-beetl/src/main/java/com/xkcoding/template/beetl/SpringBootDemoTemplateBeetlApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.template.beetl; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动类 9 | *

10 | * 11 | * @package: com.xkcoding.template.beetl 12 | * @description: 启动类 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/10/10 11:17 AM 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoTemplateBeetlApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoTemplateBeetlApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-template-beetl/src/main/java/com/xkcoding/template/beetl/model/User.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.template.beetl.model; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | *

7 | * 用户 model 8 | *

9 | * 10 | * @package: com.xkcoding.template.beetl.model 11 | * @description: 用户 model 12 | * @author: yangkai.shen 13 | * @date: Created in 2018/10/10 11:18 AM 14 | * @copyright: Copyright (c) 2018 15 | * @version: V1.0 16 | * @modified: yangkai.shen 17 | */ 18 | @Data 19 | public class User { 20 | private String name; 21 | private String password; 22 | } 23 | -------------------------------------------------------------------------------- /spring-boot-demo-template-beetl/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo -------------------------------------------------------------------------------- /spring-boot-demo-template-beetl/src/main/resources/templates/common/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | spring-boot-demo-template-beetl 7 | 8 | 9 | -------------------------------------------------------------------------------- /spring-boot-demo-template-beetl/src/main/resources/templates/page/index.btl: -------------------------------------------------------------------------------- 1 | 2 | 3 | <% include("/common/head.html"){} %> 4 | 5 |
6 | 欢迎登录,${user.name}! 7 |
8 | 9 | -------------------------------------------------------------------------------- /spring-boot-demo-template-beetl/src/main/resources/templates/page/login.btl: -------------------------------------------------------------------------------- 1 | 2 | 3 | <% include("/common/head.html"){} %> 4 | 5 |
6 |
7 | 用户名 8 | 密码 9 | 10 |
11 |
12 | 13 | -------------------------------------------------------------------------------- /spring-boot-demo-template-beetl/src/test/java/com/xkcoding/template/beetl/SpringBootDemoTemplateBeetlApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.template.beetl; 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 SpringBootDemoTemplateBeetlApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-template-enjoy/.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-boot-demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/SpringBootDemoTemplateEnjoyApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.template.enjoy; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动类 9 | *

10 | * 11 | * @package: com.xkcoding.template.enjoy 12 | * @description: 启动类 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/10/11 2:06 PM 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoTemplateEnjoyApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoTemplateEnjoyApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-template-enjoy/src/main/java/com/xkcoding/template/enjoy/model/User.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.template.enjoy.model; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | *

7 | * 用户 model 8 | *

9 | * 10 | * @package: com.xkcoding.template.enjoy.model 11 | * @description: 用户 model 12 | * @author: yangkai.shen 13 | * @date: Created in 2018/10/11 2:21 PM 14 | * @copyright: Copyright (c) 2018 15 | * @version: V1.0 16 | * @modified: yangkai.shen 17 | */ 18 | @Data 19 | public class User { 20 | private String name; 21 | private String password; 22 | } 23 | -------------------------------------------------------------------------------- /spring-boot-demo-template-enjoy/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo -------------------------------------------------------------------------------- /spring-boot-demo-template-enjoy/src/main/resources/templates/common/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | spring-boot-demo-template-enjoy 7 | 8 | 9 | -------------------------------------------------------------------------------- /spring-boot-demo-template-enjoy/src/main/resources/templates/page/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | #include("/common/head.html") 4 | 5 |
6 | 欢迎登录,#(user.name)! 7 |
8 | 9 | -------------------------------------------------------------------------------- /spring-boot-demo-template-enjoy/src/main/resources/templates/page/login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | #include("/common/head.html") 4 | 5 |
6 |
7 | 用户名 8 | 密码 9 | 10 |
11 |
12 | 13 | -------------------------------------------------------------------------------- /spring-boot-demo-template-enjoy/src/test/java/com/xkcoding/template/enjoy/SpringBootDemoTemplateEnjoyApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.template.enjoy; 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 SpringBootDemoTemplateEnjoyApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-template-freemarker/.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-boot-demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/SpringBootDemoTemplateFreemarkerApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.template.freemarker; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动类 9 | *

10 | * 11 | * @package: com.xkcoding.template.freemarker 12 | * @description: 启动类 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/10/9 3:17 PM 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoTemplateFreemarkerApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoTemplateFreemarkerApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-template-freemarker/src/main/java/com/xkcoding/template/freemarker/model/User.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.template.freemarker.model; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | *

7 | * 用户 model 8 | *

9 | * 10 | * @package: com.xkcoding.template.freemarker.model 11 | * @description: 用户 model 12 | * @author: yangkai.shen 13 | * @date: Created in 2018/10/9 3:06 PM 14 | * @copyright: Copyright (c) 2018 15 | * @version: V1.0 16 | * @modified: yangkai.shen 17 | */ 18 | @Data 19 | public class User { 20 | private String name; 21 | private String password; 22 | } 23 | -------------------------------------------------------------------------------- /spring-boot-demo-template-freemarker/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo 5 | spring: 6 | freemarker: 7 | suffix: .ftl 8 | cache: false 9 | charset: UTF-8 -------------------------------------------------------------------------------- /spring-boot-demo-template-freemarker/src/main/resources/templates/common/head.ftl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | spring-boot-template-freemarker 7 | -------------------------------------------------------------------------------- /spring-boot-demo-template-freemarker/src/main/resources/templates/page/index.ftl: -------------------------------------------------------------------------------- 1 | 2 | 3 | <#include "../common/head.ftl"> 4 | 5 |
6 | 欢迎登录,${user.name}! 7 |
8 | 9 | -------------------------------------------------------------------------------- /spring-boot-demo-template-freemarker/src/main/resources/templates/page/login.ftl: -------------------------------------------------------------------------------- 1 | 2 | 3 | <#include "../common/head.ftl"> 4 | 5 |
6 |
7 | 用户名 8 | 密码 9 | 10 |
11 |
12 | 13 | -------------------------------------------------------------------------------- /spring-boot-demo-template-freemarker/src/test/java/com/xkcoding/template/freemarker/SpringBootDemoTemplateFreemarkerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.template.freemarker; 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 SpringBootDemoTemplateFreemarkerApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-template-thymeleaf/.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-boot-demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/SpringBootDemoTemplateThymeleafApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.template.thymeleaf; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动类 9 | *

10 | * 11 | * @package: com.xkcoding.template.thymeleaf 12 | * @description: 启动类 13 | * @author: yangkai.shen 14 | * @date: Created in 2018/10/10 10:10 AM 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoTemplateThymeleafApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoTemplateThymeleafApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-template-thymeleaf/src/main/java/com/xkcoding/template/thymeleaf/model/User.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.template.thymeleaf.model; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | *

7 | * 用户 model 8 | *

9 | * 10 | * @package: com.xkcoding.template.thymeleaf.model 11 | * @description: 用户 model 12 | * @author: yangkai.shen 13 | * @date: Created in 2018/10/10 10:11 AM 14 | * @copyright: Copyright (c) 2018 15 | * @version: V1.0 16 | * @modified: yangkai.shen 17 | */ 18 | @Data 19 | public class User { 20 | private String name; 21 | private String password; 22 | } 23 | -------------------------------------------------------------------------------- /spring-boot-demo-template-thymeleaf/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo 5 | spring: 6 | thymeleaf: 7 | mode: HTML 8 | encoding: UTF-8 9 | servlet: 10 | content-type: text/html 11 | cache: false -------------------------------------------------------------------------------- /spring-boot-demo-template-thymeleaf/src/main/resources/templates/common/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | spring-boot-demo-template-thymeleaf 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /spring-boot-demo-template-thymeleaf/src/main/resources/templates/page/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |
6 | 欢迎登录,! 7 |
8 | 9 | -------------------------------------------------------------------------------- /spring-boot-demo-template-thymeleaf/src/main/resources/templates/page/login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |
6 |
7 | 用户名 8 | 密码 9 | 10 |
11 |
12 | 13 | -------------------------------------------------------------------------------- /spring-boot-demo-template-thymeleaf/src/test/java/com/xkcoding/template/thymeleaf/SpringBootDemoTemplateThymeleafApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.template.thymeleaf; 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 SpringBootDemoTemplateThymeleafApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-uflo/.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-boot-demo-uflo/src/main/java/com/xkcoding/uflo/SpringBootDemoUfloApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.uflo; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SpringBootDemoUfloApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SpringBootDemoUfloApplication.class, args); 11 | } 12 | 13 | } 14 | 15 | -------------------------------------------------------------------------------- /spring-boot-demo-uflo/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-uflo/src/main/resources/application.properties -------------------------------------------------------------------------------- /spring-boot-demo-uflo/src/test/java/com/xkcoding/uflo/SpringBootDemoUfloApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.uflo; 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 SpringBootDemoUfloApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /spring-boot-demo-upload/.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-boot-demo-upload/src/main/java/com/xkcoding/upload/SpringBootDemoUploadApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.upload; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动类 9 | *

10 | * 11 | * @package: com.xkcoding.upload 12 | * @description: 启动类 13 | * @author: shenyangkai 14 | * @date: Created in 2018/10/20 21:23 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: shenyangkai 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoUploadApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoUploadApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-upload/src/main/java/com/xkcoding/upload/controller/IndexController.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.upload.controller; 2 | 3 | import org.springframework.stereotype.Controller; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | 6 | /** 7 | *

8 | * 首页Controller 9 | *

10 | * 11 | * @package: com.xkcoding.upload.controller 12 | * @description: 首页Controller 13 | * @author: shenyangkai 14 | * @date: Created in 2018/10/20 21:22 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: shenyangkai 18 | */ 19 | @Controller 20 | public class IndexController { 21 | @GetMapping("") 22 | public String index() { 23 | return "index"; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-upload/src/main/java/com/xkcoding/upload/service/IQiNiuService.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.upload.service; 2 | 3 | import com.qiniu.common.QiniuException; 4 | import com.qiniu.http.Response; 5 | 6 | import java.io.File; 7 | 8 | /** 9 | *

10 | * 七牛云上传Service 11 | *

12 | * 13 | * @package: com.xkcoding.upload.service 14 | * @description: 七牛云上传Service 15 | * @author: yangkai.shen 16 | * @date: Created in 2018/11/6 17:21 17 | * @copyright: Copyright (c) 2018 18 | * @version: V1.0 19 | * @modified: yangkai.shen 20 | */ 21 | public interface IQiNiuService { 22 | /** 23 | * 七牛云上传文件 24 | * 25 | * @param file 文件 26 | * @return 七牛上传Response 27 | * @throws QiniuException 七牛异常 28 | */ 29 | Response uploadFile(File file) throws QiniuException; 30 | } 31 | -------------------------------------------------------------------------------- /spring-boot-demo-upload/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo 5 | qiniu: 6 | ## 此处填写你自己的七牛云 access key 7 | accessKey: 8 | ## 此处填写你自己的七牛云 secret key 9 | secretKey: 10 | ## 此处填写你自己的七牛云 bucket 11 | bucket: 12 | ## 此处填写你自己的七牛云 域名 13 | prefix: 14 | spring: 15 | servlet: 16 | multipart: 17 | enabled: true 18 | location: /Users/yangkai.shen/Documents/code/back-end/spring-boot-demo/spring-boot-demo-upload/tmp 19 | file-size-threshold: 5MB 20 | max-file-size: 20MB -------------------------------------------------------------------------------- /spring-boot-demo-upload/src/test/java/com/xkcoding/upload/SpringBootDemoUploadApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.upload; 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 SpringBootDemoUploadApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-ureport2/.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-boot-demo-ureport2/src/main/java/com/xkcoding/ureport2/SpringBootDemoUreport2Application.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.ureport2; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SpringBootDemoUreport2Application { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SpringBootDemoUreport2Application.class, args); 11 | } 12 | 13 | } 14 | 15 | -------------------------------------------------------------------------------- /spring-boot-demo-ureport2/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-ureport2/src/main/resources/application.properties -------------------------------------------------------------------------------- /spring-boot-demo-ureport2/src/test/java/com/xkcoding/ureport2/SpringBootDemoUreport2ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.ureport2; 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 SpringBootDemoUreport2ApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /spring-boot-demo-urule/.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-boot-demo-urule/src/main/java/com/xkcoding/urule/SpringBootDemoUruleApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.urule; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SpringBootDemoUruleApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SpringBootDemoUruleApplication.class, args); 11 | } 12 | 13 | } 14 | 15 | -------------------------------------------------------------------------------- /spring-boot-demo-urule/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-urule/src/main/resources/application.properties -------------------------------------------------------------------------------- /spring-boot-demo-urule/src/test/java/com/xkcoding/urule/SpringBootDemoUruleApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.urule; 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 SpringBootDemoUruleApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /spring-boot-demo-war/.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-boot-demo-war/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo -------------------------------------------------------------------------------- /spring-boot-demo-war/src/test/java/com/xkcoding/war/SpringBootDemoWarApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.war; 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 SpringBootDemoWarApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-websocket-socketio/.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-boot-demo-websocket-socketio/assets/image-20181219152318079-5204198.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-websocket-socketio/assets/image-20181219152318079-5204198.png -------------------------------------------------------------------------------- /spring-boot-demo-websocket-socketio/assets/image-20181219152330156-5204210.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-websocket-socketio/assets/image-20181219152330156-5204210.png -------------------------------------------------------------------------------- /spring-boot-demo-websocket-socketio/src/main/java/com/xkcoding/websocket/socketio/SpringBootDemoWebsocketSocketioApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.websocket.socketio; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动器 9 | *

10 | * 11 | * @package: com.xkcoding.websocket.socketio 12 | * @description: 启动器 13 | * @author: yangkai.shen 14 | * @date: Created in 2018-12-12 13:59 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoWebsocketSocketioApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoWebsocketSocketioApplication.class, args); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-demo-websocket-socketio/src/main/java/com/xkcoding/websocket/socketio/config/Event.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.websocket.socketio.config; 2 | 3 | /** 4 | *

5 | * 事件常量 6 | *

7 | * 8 | * @package: com.xkcoding.websocket.socketio.config 9 | * @description: 事件常量 10 | * @author: yangkai.shen 11 | * @date: Created in 2018-12-18 19:36 12 | * @copyright: Copyright (c) 2018 13 | * @version: V1.0 14 | * @modified: yangkai.shen 15 | */ 16 | public interface Event { 17 | /** 18 | * 聊天事件 19 | */ 20 | String CHAT = "chat" ; 21 | 22 | /** 23 | * 广播消息 24 | */ 25 | String BROADCAST = "broadcast" ; 26 | 27 | /** 28 | * 群聊 29 | */ 30 | String GROUP = "group" ; 31 | 32 | /** 33 | * 加入群聊 34 | */ 35 | String JOIN = "join" ; 36 | 37 | } 38 | -------------------------------------------------------------------------------- /spring-boot-demo-websocket-socketio/src/main/java/com/xkcoding/websocket/socketio/config/WsConfig.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.websocket.socketio.config; 2 | 3 | import lombok.Data; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | 6 | /** 7 | *

8 | * WebSocket配置类 9 | *

10 | * 11 | * @package: com.xkcoding.websocket.socketio.config 12 | * @description: WebSocket配置类 13 | * @author: yangkai.shen 14 | * @date: Created in 2018-12-18 16:41 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @ConfigurationProperties(prefix = "ws.server") 20 | @Data 21 | public class WsConfig { 22 | /** 23 | * 端口号 24 | */ 25 | private Integer port; 26 | 27 | /** 28 | * host 29 | */ 30 | private String host; 31 | } 32 | -------------------------------------------------------------------------------- /spring-boot-demo-websocket-socketio/src/main/java/com/xkcoding/websocket/socketio/init/ServerRunner.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.websocket.socketio.init; 2 | 3 | import com.corundumstudio.socketio.SocketIOServer; 4 | import lombok.extern.slf4j.Slf4j; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.boot.CommandLineRunner; 7 | import org.springframework.stereotype.Component; 8 | 9 | /** 10 | *

11 | * websocket服务器启动 12 | *

13 | * 14 | * @package: com.xkcoding.websocket.socketio.init 15 | * @description: websocket服务器启动 16 | * @author: yangkai.shen 17 | * @date: Created in 2018-12-18 17:07 18 | * @copyright: Copyright (c) 2018 19 | * @version: V1.0 20 | * @modified: yangkai.shen 21 | */ 22 | @Component 23 | @Slf4j 24 | public class ServerRunner implements CommandLineRunner { 25 | @Autowired 26 | private SocketIOServer server; 27 | 28 | @Override 29 | public void run(String... args) { 30 | server.start(); 31 | log.info("websocket 服务器启动成功。。。"); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /spring-boot-demo-websocket-socketio/src/main/java/com/xkcoding/websocket/socketio/payload/BroadcastMessageRequest.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.websocket.socketio.payload; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | *

7 | * 广播消息载荷 8 | *

9 | * 10 | * @package: com.xkcoding.websocket.socketio.payload 11 | * @description: 广播消息载荷 12 | * @author: yangkai.shen 13 | * @date: Created in 2018-12-18 20:01 14 | * @copyright: Copyright (c) 2018 15 | * @version: V1.0 16 | * @modified: yangkai.shen 17 | */ 18 | @Data 19 | public class BroadcastMessageRequest { 20 | /** 21 | * 消息内容 22 | */ 23 | private String message; 24 | } 25 | -------------------------------------------------------------------------------- /spring-boot-demo-websocket-socketio/src/main/java/com/xkcoding/websocket/socketio/payload/GroupMessageRequest.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.websocket.socketio.payload; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | *

7 | * 群聊消息载荷 8 | *

9 | * 10 | * @package: com.xkcoding.websocket.socketio.payload 11 | * @description: 群聊消息载荷 12 | * @author: yangkai.shen 13 | * @date: Created in 2018-12-18 16:59 14 | * @copyright: Copyright (c) 2018 15 | * @version: V1.0 16 | * @modified: yangkai.shen 17 | */ 18 | @Data 19 | public class GroupMessageRequest { 20 | /** 21 | * 消息发送方用户id 22 | */ 23 | private String fromUid; 24 | 25 | /** 26 | * 群组id 27 | */ 28 | private String groupId; 29 | 30 | /** 31 | * 消息内容 32 | */ 33 | private String message; 34 | } 35 | -------------------------------------------------------------------------------- /spring-boot-demo-websocket-socketio/src/main/java/com/xkcoding/websocket/socketio/payload/JoinRequest.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.websocket.socketio.payload; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | *

7 | * 加群载荷 8 | *

9 | * 10 | * @package: com.xkcoding.websocket.socketio.payload 11 | * @description: 加群载荷 12 | * @author: yangkai.shen 13 | * @date: Created in 2018-12-19 13:36 14 | * @copyright: Copyright (c) 2018 15 | * @version: V1.0 16 | * @modified: yangkai.shen 17 | */ 18 | @Data 19 | public class JoinRequest { 20 | /** 21 | * 用户id 22 | */ 23 | private String userId; 24 | 25 | /** 26 | * 群名称 27 | */ 28 | private String groupId; 29 | } 30 | -------------------------------------------------------------------------------- /spring-boot-demo-websocket-socketio/src/main/java/com/xkcoding/websocket/socketio/payload/SingleMessageRequest.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.websocket.socketio.payload; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | *

7 | * 私聊消息载荷 8 | *

9 | * 10 | * @package: com.xkcoding.websocket.socketio.payload 11 | * @description: 私聊消息载荷 12 | * @author: yangkai.shen 13 | * @date: Created in 2018-12-18 17:02 14 | * @copyright: Copyright (c) 2018 15 | * @version: V1.0 16 | * @modified: yangkai.shen 17 | */ 18 | @Data 19 | public class SingleMessageRequest { 20 | /** 21 | * 消息发送方用户id 22 | */ 23 | private String fromUid; 24 | 25 | /** 26 | * 消息接收方用户id 27 | */ 28 | private String toUid; 29 | 30 | /** 31 | * 消息内容 32 | */ 33 | private String message; 34 | } 35 | -------------------------------------------------------------------------------- /spring-boot-demo-websocket-socketio/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo 5 | ws: 6 | server: 7 | port: 8081 8 | host: localhost -------------------------------------------------------------------------------- /spring-boot-demo-websocket-socketio/src/test/java/com/xkcoding/websocket/socketio/SpringBootDemoWebsocketSocketioApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.websocket.socketio; 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 SpringBootDemoWebsocketSocketioApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-demo-websocket/.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-boot-demo-websocket/assets/image-20181217110240322-5015760.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-websocket/assets/image-20181217110240322-5015760.png -------------------------------------------------------------------------------- /spring-boot-demo-websocket/assets/image-20181217110304065-5015784.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-websocket/assets/image-20181217110304065-5015784.png -------------------------------------------------------------------------------- /spring-boot-demo-websocket/assets/image-20181217110328810-5015808.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-websocket/assets/image-20181217110328810-5015808.png -------------------------------------------------------------------------------- /spring-boot-demo-websocket/assets/image-20181217110336017-5015816.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiangsongHB/spring-boot-demo/d364ee0deddaaaa0d130821b4e425c1430901dbb/spring-boot-demo-websocket/assets/image-20181217110336017-5015816.png -------------------------------------------------------------------------------- /spring-boot-demo-websocket/src/main/java/com/xkcoding/websocket/SpringBootDemoWebsocketApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.websocket; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.scheduling.annotation.EnableScheduling; 6 | 7 | /** 8 | *

9 | * 启动器 10 | *

11 | * 12 | * @package: com.xkcoding.websocket 13 | * @description: 启动器 14 | * @author: yangkai.shen 15 | * @date: Created in 2018-12-14 14:58 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @SpringBootApplication 21 | @EnableScheduling 22 | public class SpringBootDemoWebsocketApplication { 23 | 24 | public static void main(String[] args) { 25 | SpringApplication.run(SpringBootDemoWebsocketApplication.class, args); 26 | } 27 | 28 | } 29 | 30 | -------------------------------------------------------------------------------- /spring-boot-demo-websocket/src/main/java/com/xkcoding/websocket/common/WebSocketConsts.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.websocket.common; 2 | 3 | /** 4 | *

5 | * WebSocket常量 6 | *

7 | * 8 | * @package: com.xkcoding.websocket.common 9 | * @description: WebSocket常量 10 | * @author: yangkai.shen 11 | * @date: Created in 2018-12-14 16:01 12 | * @copyright: Copyright (c) 2018 13 | * @version: V1.0 14 | * @modified: yangkai.shen 15 | */ 16 | public interface WebSocketConsts { 17 | String PUSH_SERVER = "/topic/server"; 18 | } 19 | -------------------------------------------------------------------------------- /spring-boot-demo-websocket/src/main/java/com/xkcoding/websocket/payload/KV.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.websocket.payload; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | *

9 | * 键值匹配 10 | *

11 | * 12 | * @package: com.xkcoding.websocket.payload 13 | * @description: 键值匹配 14 | * @author: yangkai.shen 15 | * @date: Created in 2018-12-14 17:41 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @Data 21 | @AllArgsConstructor 22 | @NoArgsConstructor 23 | public class KV { 24 | /** 25 | * 键 26 | */ 27 | private String key; 28 | 29 | /** 30 | * 值 31 | */ 32 | private Object value; 33 | } 34 | -------------------------------------------------------------------------------- /spring-boot-demo-websocket/src/main/java/com/xkcoding/websocket/payload/server/MemVO.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.websocket.payload.server; 2 | 3 | import com.google.common.collect.Lists; 4 | import com.xkcoding.websocket.model.server.Mem; 5 | import com.xkcoding.websocket.payload.KV; 6 | import lombok.Data; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | *

12 | * 內存相关信息实体VO 13 | *

14 | * 15 | * @package: com.xkcoding.websocket.payload.server 16 | * @description: 內存相关信息实体VO 17 | * @author: yangkai.shen 18 | * @date: Created in 2018-12-14 17:28 19 | * @copyright: Copyright (c) 2018 20 | * @version: V1.0 21 | * @modified: yangkai.shen 22 | */ 23 | @Data 24 | public class MemVO { 25 | List data = Lists.newArrayList(); 26 | 27 | public static MemVO create(Mem mem) { 28 | MemVO vo = new MemVO(); 29 | vo.data.add(new KV("内存总量", mem.getTotal() + "G")); 30 | vo.data.add(new KV("已用内存", mem.getUsed() + "G")); 31 | vo.data.add(new KV("剩余内存", mem.getFree() + "G")); 32 | vo.data.add(new KV("使用率", mem.getUsage() + "%")); 33 | return vo; 34 | } 35 | } -------------------------------------------------------------------------------- /spring-boot-demo-websocket/src/main/java/com/xkcoding/websocket/payload/server/SysVO.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.websocket.payload.server; 2 | 3 | import com.google.common.collect.Lists; 4 | import com.xkcoding.websocket.model.server.Sys; 5 | import com.xkcoding.websocket.payload.KV; 6 | import lombok.Data; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | *

12 | * 系统相关信息实体VO 13 | *

14 | * 15 | * @package: com.xkcoding.websocket.payload.server 16 | * @description: 系统相关信息实体VO 17 | * @author: yangkai.shen 18 | * @date: Created in 2018-12-14 17:28 19 | * @copyright: Copyright (c) 2018 20 | * @version: V1.0 21 | * @modified: yangkai.shen 22 | */ 23 | @Data 24 | public class SysVO { 25 | List data = Lists.newArrayList(); 26 | 27 | public static SysVO create(Sys sys) { 28 | SysVO vo = new SysVO(); 29 | vo.data.add(new KV("服务器名称", sys.getComputerName())); 30 | vo.data.add(new KV("服务器Ip", sys.getComputerIp())); 31 | vo.data.add(new KV("项目路径", sys.getUserDir())); 32 | vo.data.add(new KV("操作系统", sys.getOsName())); 33 | vo.data.add(new KV("系统架构", sys.getOsArch())); 34 | return vo; 35 | } 36 | } -------------------------------------------------------------------------------- /spring-boot-demo-websocket/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo -------------------------------------------------------------------------------- /spring-boot-demo-websocket/src/test/java/com/xkcoding/websocket/SpringBootDemoWebsocketApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.websocket; 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 SpringBootDemoWebsocketApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /spring-boot-demo-zookeeper/.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-boot-demo-zookeeper/src/main/java/com/xkcoding/zookeeper/SpringBootDemoZookeeperApplication.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.zookeeper; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | /** 7 | *

8 | * 启动器 9 | *

10 | * 11 | * @package: com.xkcoding.zookeeper 12 | * @description: 启动器 13 | * @author: yangkai.shen 14 | * @date: Created in 2018-12-27 14:51 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @SpringBootApplication 20 | public class SpringBootDemoZookeeperApplication { 21 | 22 | public static void main(String[] args) { 23 | SpringApplication.run(SpringBootDemoZookeeperApplication.class, args); 24 | } 25 | 26 | } 27 | 28 | -------------------------------------------------------------------------------- /spring-boot-demo-zookeeper/src/main/java/com/xkcoding/zookeeper/annotation/LockKeyParam.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.zookeeper.annotation; 2 | 3 | import java.lang.annotation.*; 4 | 5 | /** 6 | *

7 | * 分布式锁动态key注解,配置之后key的值会动态获取参数内容 8 | *

9 | * 10 | * @package: com.xkcoding.zookeeper.annotation 11 | * @description: 分布式锁动态key注解,配置之后key的值会动态获取参数内容 12 | * @author: yangkai.shen 13 | * @date: Created in 2018-12-27 14:17 14 | * @copyright: Copyright (c) 2018 15 | * @version: V1.0 16 | * @modified: yangkai.shen 17 | */ 18 | @Target({ElementType.PARAMETER}) 19 | @Retention(RetentionPolicy.RUNTIME) 20 | @Documented 21 | @Inherited 22 | public @interface LockKeyParam { 23 | /** 24 | * 如果动态key在user对象中,那么就需要设置fields的值为user对象中的属性名可以为多个,基本类型则不需要设置该值 25 | *

例1:public void count(@LockKeyParam({"id"}) User user) 26 | *

例2:public void count(@LockKeyParam({"id","userName"}) User user) 27 | *

例3:public void count(@LockKeyParam String userId) 28 | */ 29 | String[] fields() default {}; 30 | } 31 | -------------------------------------------------------------------------------- /spring-boot-demo-zookeeper/src/main/java/com/xkcoding/zookeeper/annotation/ZooLock.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.zookeeper.annotation; 2 | 3 | import java.lang.annotation.*; 4 | import java.util.concurrent.TimeUnit; 5 | 6 | /** 7 | *

8 | * 基于Zookeeper的分布式锁注解 9 | * 在需要加锁的方法上打上该注解后,AOP会帮助你统一管理这个方法的锁 10 | *

11 | * 12 | * @package: com.xkcoding.zookeeper.annotation 13 | * @description: 基于Zookeeper的分布式锁注解,在需要加锁的方法上打上该注解后,AOP会帮助你统一管理这个方法的锁 14 | * @author: yangkai.shen 15 | * @date: Created in 2018-12-27 14:11 16 | * @copyright: Copyright (c) 2018 17 | * @version: V1.0 18 | * @modified: yangkai.shen 19 | */ 20 | @Target({ElementType.METHOD}) 21 | @Retention(RetentionPolicy.RUNTIME) 22 | @Documented 23 | @Inherited 24 | public @interface ZooLock { 25 | /** 26 | * 分布式锁的键 27 | */ 28 | String key(); 29 | 30 | /** 31 | * 锁释放时间,默认五秒 32 | */ 33 | long timeout() default 5 * 1000; 34 | 35 | /** 36 | * 时间格式,默认:毫秒 37 | */ 38 | TimeUnit timeUnit() default TimeUnit.MILLISECONDS; 39 | } 40 | -------------------------------------------------------------------------------- /spring-boot-demo-zookeeper/src/main/java/com/xkcoding/zookeeper/config/props/ZkProps.java: -------------------------------------------------------------------------------- 1 | package com.xkcoding.zookeeper.config.props; 2 | 3 | import lombok.Data; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | 6 | /** 7 | *

8 | * Zookeeper 配置项 9 | *

10 | * 11 | * @package: com.xkcoding.zookeeper.config.props 12 | * @description: Zookeeper 配置项 13 | * @author: yangkai.shen 14 | * @date: Created in 2018-12-27 14:47 15 | * @copyright: Copyright (c) 2018 16 | * @version: V1.0 17 | * @modified: yangkai.shen 18 | */ 19 | @Data 20 | @ConfigurationProperties(prefix = "zk") 21 | public class ZkProps { 22 | /** 23 | * 连接地址 24 | */ 25 | private String url; 26 | 27 | /** 28 | * 超时时间(毫秒),默认1000 29 | */ 30 | private int timeout = 1000; 31 | 32 | /** 33 | * 重试次数,默认3 34 | */ 35 | private int retry = 3; 36 | } 37 | -------------------------------------------------------------------------------- /spring-boot-demo-zookeeper/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /demo 5 | 6 | zk: 7 | url: 127.0.0.1:2181 8 | timeout: 1000 9 | retry: 3 10 | --------------------------------------------------------------------------------