Repository: wuyouzhuguli/SpringAll
Branch: master
Commit: 614d2578d949
Files: 1050
Total size: 1.1 MB
Directory structure:
gitextract_zh464p81/
├── .gitignore
├── 01.Start-Spring-Boot/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── springboot/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── springboot/
│ └── demo/
│ └── DemoApplicationTests.java
├── 02.Spring-Boot-Config/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── springboot/
│ │ │ ├── Application.java
│ │ │ ├── bean/
│ │ │ │ ├── BlogProperties.java
│ │ │ │ ├── ConfigBean.java
│ │ │ │ └── TestConfigBean.java
│ │ │ └── controller/
│ │ │ └── IndexController.java
│ │ └── resources/
│ │ ├── application-dev.properties
│ │ ├── application-prod.properties
│ │ ├── application.properties
│ │ ├── banner.txt
│ │ └── test.properties
│ └── test/
│ └── java/
│ └── com/
│ └── springboot/
│ └── demo/
│ └── DemoApplicationTests.java
├── 03.Spring-Boot-MyBatis/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── springboot/
│ │ ├── Application.java
│ │ ├── bean/
│ │ │ └── Student.java
│ │ ├── controller/
│ │ │ └── TestController.java
│ │ ├── mapper/
│ │ │ └── StudentMapper.java
│ │ └── service/
│ │ ├── StudentService.java
│ │ └── impl/
│ │ └── StudentServiceImp.java
│ └── resources/
│ ├── application.yml
│ └── init.sql
├── 04.Spring-Boot-JdbcTemplate/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── springboot/
│ │ ├── Application.java
│ │ ├── bean/
│ │ │ └── Student.java
│ │ ├── controller/
│ │ │ └── TestController.java
│ │ ├── dao/
│ │ │ ├── StudentDao.java
│ │ │ └── impl/
│ │ │ └── StudentDaoImp.java
│ │ ├── mapper/
│ │ │ └── StudentMapper.java
│ │ └── service/
│ │ ├── StudentService.java
│ │ └── impl/
│ │ └── StudentServiceImp.java
│ └── resources/
│ ├── application.yml
│ └── init.sql
├── 05.Spring-Boot-MyBatis-MultiDataSource/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── springboot/
│ │ ├── Application.java
│ │ ├── controller/
│ │ │ └── StudentController.java
│ │ ├── datasource/
│ │ │ ├── MysqlDatasourceConfig.java
│ │ │ └── OracleDatasourceConfig.java
│ │ ├── mysqldao/
│ │ │ └── MysqlStudentMapper.java
│ │ ├── oracledao/
│ │ │ └── OracleStudentMapper.java
│ │ └── service/
│ │ ├── StudentService.java
│ │ └── impl/
│ │ └── StudentServiceImp.java
│ └── resources/
│ ├── application.yml
│ ├── mapper/
│ │ ├── mysql/
│ │ │ └── MysqlStudentMapper.xml
│ │ └── oracle/
│ │ └── OracleStudentMapper.xml
│ ├── mysql_sql.sql
│ └── oracle_sql.sql
├── 06.Spring-Boot-JdbcTemplate-MultiDataSource/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── springboot/
│ │ ├── Application.java
│ │ ├── controller/
│ │ │ └── StudentController.java
│ │ ├── dao/
│ │ │ ├── MysqlStudentDao.java
│ │ │ ├── OracleStudentDao.java
│ │ │ └── impl/
│ │ │ ├── MysqlStudentDaoImp.java
│ │ │ └── OracleStudentDaoImp.java
│ │ ├── datasource/
│ │ │ └── DataSourceConfig.java
│ │ └── service/
│ │ ├── StudentService.java
│ │ └── impl/
│ │ └── StudentServiceImp.java
│ └── resources/
│ ├── application.yml
│ ├── mysql_sql.sql
│ └── oracle_sql.sql
├── 07.Spring-Boot-AOP-Log/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── springboot/
│ │ ├── Application.java
│ │ ├── annotation/
│ │ │ └── Log.java
│ │ ├── aspect/
│ │ │ └── LogAspect.java
│ │ ├── controller/
│ │ │ └── TestController.java
│ │ ├── dao/
│ │ │ ├── SysLogDao.java
│ │ │ └── impl/
│ │ │ └── SysLogDaoImp.java
│ │ ├── domain/
│ │ │ └── SysLog.java
│ │ └── util/
│ │ ├── HttpContextUtils.java
│ │ └── IPUtils.java
│ └── resources/
│ ├── application.yml
│ └── init.sql
├── 08.Spring-Boot-Thymeleaf/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── springboot/
│ │ ├── Application.java
│ │ ├── bean/
│ │ │ └── Account.java
│ │ └── controller/
│ │ └── IndexController.java
│ └── resources/
│ ├── application.properties
│ ├── static/
│ │ └── css/
│ │ └── style.css
│ └── templates/
│ └── account.html
├── 09.Spring-Boot-Redis-Cache/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── springboot/
│ │ ├── Application.java
│ │ ├── ApplicationTest.java
│ │ ├── bean/
│ │ │ └── Student.java
│ │ ├── config/
│ │ │ └── RedisConfig.java
│ │ ├── mapper/
│ │ │ └── StudentMapper.java
│ │ └── service/
│ │ ├── StudentService.java
│ │ └── impl/
│ │ └── StudentServiceImpl.java
│ └── resources/
│ ├── application.yml
│ └── init.sql
├── 10.Spring-Boot-Ehcache-Cache/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── springboot/
│ │ ├── Application.java
│ │ ├── ApplicationTest.java
│ │ ├── bean/
│ │ │ └── Student.java
│ │ ├── mapper/
│ │ │ └── StudentMapper.java
│ │ └── service/
│ │ ├── StudentService.java
│ │ └── impl/
│ │ └── StudentServiceImpl.java
│ └── resources/
│ ├── application.yml
│ ├── ehcache.xml
│ └── init.sql
├── 11.Spring-Boot-Shiro-Authentication/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── springboot/
│ │ ├── Application.java
│ │ ├── config/
│ │ │ └── ShiroConfig.java
│ │ ├── controller/
│ │ │ └── LoginController.java
│ │ ├── dao/
│ │ │ └── UserMapper.java
│ │ ├── pojo/
│ │ │ ├── ResponseBo.java
│ │ │ └── User.java
│ │ ├── shiro/
│ │ │ └── ShiroRealm.java
│ │ └── util/
│ │ └── MD5Utils.java
│ └── resources/
│ ├── application.yml
│ ├── init.sql
│ ├── mapper/
│ │ └── UserMapper.xml
│ ├── static/
│ │ └── css/
│ │ └── login.css
│ └── templates/
│ ├── index.html
│ └── login.html
├── 12.Spring-Boot-Shiro-RememberMe/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── springboot/
│ │ ├── Application.java
│ │ ├── config/
│ │ │ └── ShiroConfig.java
│ │ ├── controller/
│ │ │ └── LoginController.java
│ │ ├── dao/
│ │ │ └── UserMapper.java
│ │ ├── pojo/
│ │ │ ├── ResponseBo.java
│ │ │ └── User.java
│ │ ├── shiro/
│ │ │ └── ShiroRealm.java
│ │ └── util/
│ │ └── MD5Utils.java
│ └── resources/
│ ├── application.yml
│ ├── init.sql
│ ├── mapper/
│ │ └── UserMapper.xml
│ ├── static/
│ │ └── css/
│ │ └── login.css
│ └── templates/
│ ├── index.html
│ └── login.html
├── 13.Spring-Boot-Shiro-Authorization/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── springboot/
│ │ ├── Application.java
│ │ ├── config/
│ │ │ └── ShiroConfig.java
│ │ ├── controller/
│ │ │ ├── LoginController.java
│ │ │ └── UserController.java
│ │ ├── dao/
│ │ │ ├── UserMapper.java
│ │ │ ├── UserPermissionMapper.java
│ │ │ └── UserRoleMapper.java
│ │ ├── handler/
│ │ │ └── GlobalExceptionHandler.java
│ │ ├── pojo/
│ │ │ ├── Permission.java
│ │ │ ├── ResponseBo.java
│ │ │ ├── Role.java
│ │ │ └── User.java
│ │ ├── shiro/
│ │ │ └── ShiroRealm.java
│ │ └── util/
│ │ └── MD5Utils.java
│ └── resources/
│ ├── application.yml
│ ├── init.sql
│ ├── mapper/
│ │ ├── UserMapper.xml
│ │ ├── UserPermissionMapper.xml
│ │ └── UserRoleMapper.xml
│ ├── static/
│ │ └── css/
│ │ └── login.css
│ └── templates/
│ ├── 403.html
│ ├── index.html
│ ├── login.html
│ └── user.html
├── 14.Spring-Boot-Shiro-Redis/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── springboot/
│ │ ├── Application.java
│ │ ├── config/
│ │ │ └── ShiroConfig.java
│ │ ├── controller/
│ │ │ ├── LoginController.java
│ │ │ └── UserController.java
│ │ ├── dao/
│ │ │ ├── UserMapper.java
│ │ │ ├── UserPermissionMapper.java
│ │ │ └── UserRoleMapper.java
│ │ ├── handler/
│ │ │ └── GlobalExceptionHandler.java
│ │ ├── pojo/
│ │ │ ├── Permission.java
│ │ │ ├── ResponseBo.java
│ │ │ ├── Role.java
│ │ │ └── User.java
│ │ ├── shiro/
│ │ │ └── ShiroRealm.java
│ │ └── util/
│ │ └── MD5Utils.java
│ └── resources/
│ ├── application.yml
│ ├── init.sql
│ ├── mapper/
│ │ ├── UserMapper.xml
│ │ ├── UserPermissionMapper.xml
│ │ └── UserRoleMapper.xml
│ ├── static/
│ │ └── css/
│ │ └── login.css
│ └── templates/
│ ├── 403.html
│ ├── index.html
│ ├── login.html
│ └── user.html
├── 15.Spring-Boot-Shiro-Ehcache/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── springboot/
│ │ ├── Application.java
│ │ ├── config/
│ │ │ └── ShiroConfig.java
│ │ ├── controller/
│ │ │ ├── LoginController.java
│ │ │ └── UserController.java
│ │ ├── dao/
│ │ │ ├── UserMapper.java
│ │ │ ├── UserPermissionMapper.java
│ │ │ └── UserRoleMapper.java
│ │ ├── handler/
│ │ │ └── GlobalExceptionHandler.java
│ │ ├── pojo/
│ │ │ ├── Permission.java
│ │ │ ├── ResponseBo.java
│ │ │ ├── Role.java
│ │ │ └── User.java
│ │ ├── shiro/
│ │ │ └── ShiroRealm.java
│ │ └── util/
│ │ └── MD5Utils.java
│ └── resources/
│ ├── application.yml
│ ├── config/
│ │ └── shiro-ehcache.xml
│ ├── init.sql
│ ├── mapper/
│ │ ├── UserMapper.xml
│ │ ├── UserPermissionMapper.xml
│ │ └── UserRoleMapper.xml
│ ├── static/
│ │ └── css/
│ │ └── login.css
│ └── templates/
│ ├── 403.html
│ ├── index.html
│ ├── login.html
│ └── user.html
├── 16.Spring-Boot-Shiro-Thymeleaf-Tag/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── springboot/
│ │ ├── Application.java
│ │ ├── config/
│ │ │ └── ShiroConfig.java
│ │ ├── controller/
│ │ │ ├── LoginController.java
│ │ │ └── UserController.java
│ │ ├── dao/
│ │ │ ├── UserMapper.java
│ │ │ ├── UserPermissionMapper.java
│ │ │ └── UserRoleMapper.java
│ │ ├── handler/
│ │ │ └── GlobalExceptionHandler.java
│ │ ├── pojo/
│ │ │ ├── Permission.java
│ │ │ ├── ResponseBo.java
│ │ │ ├── Role.java
│ │ │ └── User.java
│ │ ├── shiro/
│ │ │ └── ShiroRealm.java
│ │ └── util/
│ │ └── MD5Utils.java
│ └── resources/
│ ├── application.yml
│ ├── config/
│ │ └── shiro-ehcache.xml
│ ├── init.sql
│ ├── mapper/
│ │ ├── UserMapper.xml
│ │ ├── UserPermissionMapper.xml
│ │ └── UserRoleMapper.xml
│ ├── static/
│ │ └── css/
│ │ └── login.css
│ └── templates/
│ ├── 403.html
│ ├── index.html
│ ├── login.html
│ └── user.html
├── 17.Spring-Boot-Shiro-Session/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── springboot/
│ │ ├── Application.java
│ │ ├── config/
│ │ │ └── ShiroConfig.java
│ │ ├── controller/
│ │ │ ├── LoginController.java
│ │ │ ├── SessionController.java
│ │ │ └── UserController.java
│ │ ├── dao/
│ │ │ ├── UserMapper.java
│ │ │ ├── UserPermissionMapper.java
│ │ │ └── UserRoleMapper.java
│ │ ├── handler/
│ │ │ └── GlobalExceptionHandler.java
│ │ ├── listener/
│ │ │ └── ShiroSessionListener.java
│ │ ├── pojo/
│ │ │ ├── Permission.java
│ │ │ ├── ResponseBo.java
│ │ │ ├── Role.java
│ │ │ ├── User.java
│ │ │ └── UserOnline.java
│ │ ├── service/
│ │ │ ├── SessionService.java
│ │ │ └── impl/
│ │ │ └── SessionServiceImpl.java
│ │ ├── shiro/
│ │ │ └── ShiroRealm.java
│ │ └── util/
│ │ └── MD5Utils.java
│ └── resources/
│ ├── application.yml
│ ├── config/
│ │ └── shiro-ehcache.xml
│ ├── init.sql
│ ├── mapper/
│ │ ├── UserMapper.xml
│ │ ├── UserPermissionMapper.xml
│ │ └── UserRoleMapper.xml
│ ├── static/
│ │ ├── css/
│ │ │ └── login.css
│ │ └── js/
│ │ └── dateFormat.js
│ └── templates/
│ ├── 403.html
│ ├── index.html
│ ├── login.html
│ ├── online.html
│ └── user.html
├── 18.Spring-Boot-Jackson/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ ├── DemoApplication.java
│ │ │ ├── config/
│ │ │ │ ├── JacksonConfig.java
│ │ │ │ ├── UserDeserializer.java
│ │ │ │ └── UserSerializer.java
│ │ │ ├── controller/
│ │ │ │ └── TestJsonController.java
│ │ │ └── pojo/
│ │ │ └── User.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java
├── 19.Spring-Boot-Testing/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── demo/
│ │ │ └── springboot/
│ │ │ └── test/
│ │ │ ├── TestApplication.java
│ │ │ ├── config/
│ │ │ │ └── MyMapper.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── domain/
│ │ │ │ └── User.java
│ │ │ ├── mapper/
│ │ │ │ ├── SeqenceMapper.java
│ │ │ │ └── UserMapper.java
│ │ │ └── service/
│ │ │ ├── IService.java
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ ├── BaseService.java
│ │ │ └── UserServiceImpl.java
│ │ └── resources/
│ │ ├── application.yml
│ │ ├── config/
│ │ │ └── mybatis-config.xml
│ │ └── init.sql
│ └── test/
│ └── java/
│ └── demo/
│ └── springboot/
│ └── test/
│ └── UserControllerTest.java
├── 20.Spring-Boot-Swagger2/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── config/
│ │ │ │ ├── SwaggerConfig.java
│ │ │ │ └── WebConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ └── domain/
│ │ │ └── User.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java
├── 21.Spring-Boot-Actuator/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── springboot/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── springboot/
│ └── demo/
│ └── DemoApplicationTests.java
├── 22.Spring-Boot-Email/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── springboot/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ └── controller/
│ │ │ └── EmailController.java
│ │ └── resources/
│ │ ├── application.yml
│ │ ├── static/
│ │ │ └── file/
│ │ │ └── 项目文档.docx
│ │ └── templates/
│ │ └── emailTemplate.html
│ └── test/
│ └── java/
│ └── com/
│ └── springboot/
│ └── demo/
│ └── DemoApplicationTests.java
├── 23.Spring-Boot-Admin/
│ ├── Spring Boot Admin Client/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── example/
│ │ │ │ └── demo/
│ │ │ │ └── DemoApplication.java
│ │ │ └── resources/
│ │ │ └── application.yml
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── example/
│ │ └── demo/
│ │ └── DemoApplicationTests.java
│ └── Spring Boot Admin Server/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java
├── 24.Spring-Boot-Devtools/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── springboot/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── springboot/
│ └── demo/
│ └── DemoApplicationTests.java
├── 25.Spring-Boot-Exception/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── cc/
│ │ │ └── mrbird/
│ │ │ ├── Application.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── exception/
│ │ │ │ └── UserNotExistException.java
│ │ │ └── handler/
│ │ │ └── ControllerExceptionHandler.java
│ │ └── resources/
│ │ ├── application.properties
│ │ └── resources/
│ │ └── error/
│ │ └── 500.html
│ └── test/
│ └── java/
│ └── cc/
│ └── mrbird/
│ └── cc/
│ └── mrbird/
│ └── demo/
│ └── ApplicationTests.java
├── 26.Spring-Boot-Filter-Interceptor/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── cc/
│ │ │ └── mrbird/
│ │ │ ├── Application.java
│ │ │ ├── config/
│ │ │ │ └── WebConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── filter/
│ │ │ │ └── TimeFilter.java
│ │ │ └── interceptor/
│ │ │ └── TimeInterceptor.java
│ │ └── resources/
│ │ ├── application.properties
│ │ └── resources/
│ │ └── error/
│ │ └── 500.html
│ └── test/
│ └── java/
│ └── cc/
│ └── mrbird/
│ └── cc/
│ └── mrbird/
│ └── demo/
│ └── ApplicationTests.java
├── 27.Spring-Boot-Mapper-PageHelper/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── springboot/
│ │ ├── Application.java
│ │ ├── ApplicationTest.java
│ │ ├── bean/
│ │ │ └── User.java
│ │ ├── config/
│ │ │ └── MyMapper.java
│ │ ├── mapper/
│ │ │ ├── SeqenceMapper.java
│ │ │ └── UserMapper.java
│ │ └── service/
│ │ ├── IService.java
│ │ ├── UserService.java
│ │ └── impl/
│ │ ├── BaseService.java
│ │ └── UserServiceImpl.java
│ └── resources/
│ ├── application.yml
│ ├── mapper/
│ │ └── UserMapper.xml
│ └── mybatis-generator.xml
├── 28.Spring-Cloud-Eureka-Server-Discovery/
│ ├── Eureka-Client/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ └── controller/
│ │ │ └── TestController.java
│ │ └── resources/
│ │ └── application.yml
│ ├── Eureka-Service/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ ├── application-peer1.yml
│ │ ├── application-peer2.yml
│ │ └── application.yml
│ └── Server-Consumer/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── demo/
│ │ ├── DemoApplication.java
│ │ └── controller/
│ │ └── TestController.java
│ └── resources/
│ └── application.yml
├── 29.Spring-Cloud-Ribbon-LoadBalance/
│ ├── Eureka-Client/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── controller/
│ │ │ │ ├── TestController.java
│ │ │ │ └── UserController.java
│ │ │ └── domain/
│ │ │ └── User.java
│ │ └── resources/
│ │ └── application.yml
│ ├── Eureka-Service/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ ├── application-peer1.yml
│ │ ├── application-peer2.yml
│ │ └── application.yml
│ └── Ribbon-Consumer/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── demo/
│ │ ├── DemoApplication.java
│ │ ├── controller/
│ │ │ └── TestController.java
│ │ └── domain/
│ │ └── User.java
│ └── resources/
│ └── application.yml
├── 30.Spring-Cloud-Hystrix-Circuit-Breaker/
│ ├── Eureka-Client/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── controller/
│ │ │ │ ├── TestController.java
│ │ │ │ └── UserController.java
│ │ │ └── domain/
│ │ │ └── User.java
│ │ └── resources/
│ │ └── application.yml
│ ├── Eureka-Service/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ ├── application-peer1.yml
│ │ ├── application-peer2.yml
│ │ └── application.yml
│ └── Ribbon-Consumer/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── demo/
│ │ ├── DemoApplication.java
│ │ ├── Service/
│ │ │ └── UserService.java
│ │ ├── controller/
│ │ │ └── TestController.java
│ │ ├── domain/
│ │ │ └── User.java
│ │ └── filter/
│ │ └── HystrixRequestContextServletFilter.java
│ └── resources/
│ └── application.yml
├── 31.Spring-Cloud-Hystrix-Dashboard-Turbine/
│ ├── Eureka-Client/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── controller/
│ │ │ │ ├── TestController.java
│ │ │ │ └── UserController.java
│ │ │ └── domain/
│ │ │ └── User.java
│ │ └── resources/
│ │ └── application.yml
│ ├── Eureka-Service/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ ├── application-peer1.yml
│ │ ├── application-peer2.yml
│ │ └── application.yml
│ ├── Hystrix-Dashboard/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ └── application.yml
│ ├── Ribbon-Consumer/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── Service/
│ │ │ │ └── UserService.java
│ │ │ ├── controller/
│ │ │ │ └── TestController.java
│ │ │ ├── domain/
│ │ │ │ └── User.java
│ │ │ └── filter/
│ │ │ └── HystrixRequestContextServletFilter.java
│ │ └── resources/
│ │ └── application.yml
│ └── Turbine/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── demo/
│ │ └── DemoApplication.java
│ └── resources/
│ └── application.yml
├── 32.Spring-Cloud-Hystrix-Dashboard-Turbine-RabbitMQ/
│ ├── Eureka-Client/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── controller/
│ │ │ │ ├── TestController.java
│ │ │ │ └── UserController.java
│ │ │ └── domain/
│ │ │ └── User.java
│ │ └── resources/
│ │ └── application.yml
│ ├── Eureka-Service/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ ├── application-peer1.yml
│ │ ├── application-peer2.yml
│ │ └── application.yml
│ ├── Hystrix-Dashboard/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ └── application.yml
│ ├── Ribbon-Consumer/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── Service/
│ │ │ │ └── UserService.java
│ │ │ ├── controller/
│ │ │ │ └── TestController.java
│ │ │ ├── domain/
│ │ │ │ └── User.java
│ │ │ └── filter/
│ │ │ └── HystrixRequestContextServletFilter.java
│ │ └── resources/
│ │ └── application.yml
│ └── Turbine-Stream/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── demo/
│ │ └── DemoApplication.java
│ └── resources/
│ └── application.yml
├── 33.Spring-Cloud-Feign-Declarative-REST-Client/
│ ├── Eureka-Client/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── controller/
│ │ │ │ ├── TestController.java
│ │ │ │ └── UserController.java
│ │ │ └── domain/
│ │ │ └── User.java
│ │ └── resources/
│ │ └── application.yml
│ ├── Eureka-Service/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ ├── application-peer1.yml
│ │ ├── application-peer2.yml
│ │ └── application.yml
│ └── Feign-Consumer/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── demo/
│ │ ├── DemoApplication.java
│ │ ├── controller/
│ │ │ └── TestController.java
│ │ ├── domain/
│ │ │ └── User.java
│ │ └── service/
│ │ ├── UserService.java
│ │ └── UserServiceFallback.java
│ └── resources/
│ └── application.yml
├── 34.Start-Spring-Security/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ ├── SecurityApplication.java
│ │ ├── security/
│ │ │ └── browser/
│ │ │ └── BrowserSecurityConfig.java
│ │ └── web/
│ │ └── controller/
│ │ └── TestController.java
│ └── resources/
│ └── application.yml
├── 35.Spring-Security-Authentication/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ ├── SecurityApplication.java
│ │ ├── domain/
│ │ │ └── MyUser.java
│ │ ├── handler/
│ │ │ ├── MyAuthenticationFailureHandler.java
│ │ │ └── MyAuthenticationSucessHandler.java
│ │ ├── security/
│ │ │ └── browser/
│ │ │ ├── BrowserSecurityConfig.java
│ │ │ └── UserDetailService.java
│ │ └── web/
│ │ └── controller/
│ │ ├── BrowserSecurityController.java
│ │ └── TestController.java
│ └── resources/
│ ├── application.yml
│ └── resources/
│ ├── css/
│ │ └── login.css
│ └── login.html
├── 36.Spring-Security-ValidateCode/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ ├── SecurityApplication.java
│ │ ├── domain/
│ │ │ └── MyUser.java
│ │ ├── handler/
│ │ │ ├── MyAuthenticationFailureHandler.java
│ │ │ └── MyAuthenticationSucessHandler.java
│ │ ├── security/
│ │ │ └── browser/
│ │ │ ├── BrowserSecurityConfig.java
│ │ │ └── UserDetailService.java
│ │ ├── validate/
│ │ │ └── code/
│ │ │ ├── ImageCode.java
│ │ │ ├── ValidateCodeException.java
│ │ │ └── ValidateCodeFilter.java
│ │ └── web/
│ │ └── controller/
│ │ ├── BrowserSecurityController.java
│ │ ├── TestController.java
│ │ └── ValidateController.java
│ └── resources/
│ ├── application.yml
│ └── resources/
│ ├── css/
│ │ └── login.css
│ └── login.html
├── 37.Spring-Security-RememberMe/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ ├── SecurityApplication.java
│ │ ├── domain/
│ │ │ └── MyUser.java
│ │ ├── handler/
│ │ │ ├── MyAuthenticationFailureHandler.java
│ │ │ └── MyAuthenticationSucessHandler.java
│ │ ├── security/
│ │ │ └── browser/
│ │ │ ├── BrowserSecurityConfig.java
│ │ │ └── UserDetailService.java
│ │ ├── validate/
│ │ │ └── code/
│ │ │ ├── ImageCode.java
│ │ │ ├── ValidateCodeException.java
│ │ │ └── ValidateCodeFilter.java
│ │ └── web/
│ │ └── controller/
│ │ ├── BrowserSecurityController.java
│ │ ├── TestController.java
│ │ └── ValidateController.java
│ └── resources/
│ ├── application.yml
│ └── resources/
│ ├── css/
│ │ └── login.css
│ └── login.html
├── 38.Spring-Security-SmsCode/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ ├── SecurityApplication.java
│ │ ├── domain/
│ │ │ └── MyUser.java
│ │ ├── handler/
│ │ │ ├── MyAuthenticationFailureHandler.java
│ │ │ └── MyAuthenticationSucessHandler.java
│ │ ├── security/
│ │ │ └── browser/
│ │ │ ├── BrowserSecurityConfig.java
│ │ │ └── UserDetailService.java
│ │ ├── validate/
│ │ │ ├── code/
│ │ │ │ ├── ImageCode.java
│ │ │ │ ├── ValidateCodeException.java
│ │ │ │ └── ValidateCodeFilter.java
│ │ │ └── smscode/
│ │ │ ├── SmsAuthenticationConfig.java
│ │ │ ├── SmsAuthenticationFilter.java
│ │ │ ├── SmsAuthenticationProvider.java
│ │ │ ├── SmsAuthenticationToken.java
│ │ │ ├── SmsCode.java
│ │ │ └── SmsCodeFilter.java
│ │ └── web/
│ │ └── controller/
│ │ ├── BrowserSecurityController.java
│ │ ├── TestController.java
│ │ └── ValidateController.java
│ └── resources/
│ ├── application.yml
│ └── resources/
│ ├── css/
│ │ └── login.css
│ └── login.html
├── 39.Spring-Cloud-Zuul-Router/
│ ├── Eureka-Client/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── controller/
│ │ │ │ ├── TestController.java
│ │ │ │ └── UserController.java
│ │ │ └── domain/
│ │ │ └── User.java
│ │ └── resources/
│ │ └── application.yml
│ ├── Eureka-Service/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ ├── application-peer1.yml
│ │ ├── application-peer2.yml
│ │ └── application.yml
│ ├── Feign-Consumer/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── controller/
│ │ │ │ └── TestController.java
│ │ │ ├── domain/
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── UserServiceFallback.java
│ │ └── resources/
│ │ └── application.yml
│ └── Zuul-Gateway/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── demo/
│ │ ├── DemoApplication.java
│ │ └── filter/
│ │ └── PreSendForwardFilter.java
│ └── resources/
│ └── application.yml
├── 40.Spring-Boot-Dubbo-Zookeeper/
│ ├── common-api/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── common/
│ │ └── api/
│ │ └── HelloService.java
│ ├── pom.xml
│ ├── server-consumer/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── cc/
│ │ │ └── mrbird/
│ │ │ ├── ConsumerApplicaiton.java
│ │ │ └── consumer/
│ │ │ └── controller/
│ │ │ └── HelloController.java
│ │ └── resources/
│ │ └── application.yml
│ └── server-provider/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ ├── ProviderApplicaiton.java
│ │ └── provider/
│ │ └── service/
│ │ └── HelloServiceImpl.java
│ └── resources/
│ └── application.yml
├── 41.Spring-Cloud-Config/
│ ├── Eureka-Service/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ ├── application-peer1.yml
│ │ ├── application-peer2.yml
│ │ └── application.yml
│ ├── config-client/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── cc/
│ │ │ └── mrbird/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ └── controller/
│ │ │ └── TestController.java
│ │ └── resources/
│ │ └── bootstrap.yml
│ ├── config-server/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── cc/
│ │ │ └── mrbird/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ ├── application.yml
│ │ ├── bootstrap.yml
│ │ └── config-server.keystore
│ └── properties/
│ ├── febs-dev.yml
│ ├── febs-pro.yml
│ ├── febs-test.yml
│ └── febs.yml
├── 42.Spring-Cloud-Bus/
│ ├── Eureka-Service/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ ├── application-peer1.yml
│ │ ├── application-peer2.yml
│ │ └── application.yml
│ ├── config-client/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── cc/
│ │ │ └── mrbird/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ └── controller/
│ │ │ └── TestController.java
│ │ └── resources/
│ │ └── bootstrap.yml
│ └── config-server/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── demo/
│ │ └── DemoApplication.java
│ └── resources/
│ ├── application.yml
│ ├── bootstrap.yml
│ └── config-server.keystore
├── 43.Spring-Cloud-Sleuth/
│ ├── Eureka-Service/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ ├── application-peer1.yml
│ │ ├── application-peer2.yml
│ │ └── application.yml
│ ├── Server-Provider1/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ └── controller/
│ │ │ └── HelloController.java
│ │ └── resources/
│ │ └── application.yml
│ ├── Server-Provider2/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ └── controller/
│ │ │ └── HelloController.java
│ │ └── resources/
│ │ └── application.yml
│ └── Zipkin-Server/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── demo/
│ │ └── DemoApplication.java
│ └── resources/
│ └── application.yml
├── 44.Spring-Boot-Autoconfiguration/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── annotation/
│ │ │ │ ├── EnableHelloWorld.java
│ │ │ │ ├── FirstLevelService.java
│ │ │ │ └── SecondLevelService.java
│ │ │ ├── bootstrap/
│ │ │ │ ├── EnableAutoConfigurationBootstrap.java
│ │ │ │ ├── ServiceBootstrap.java
│ │ │ │ └── TestEnableBootstap.java
│ │ │ ├── configuration/
│ │ │ │ ├── HelloWorldAutoConfiguration.java
│ │ │ │ └── HelloWorldConfiguration.java
│ │ │ ├── selector/
│ │ │ │ └── HelloWorldImportSelector.java
│ │ │ └── service/
│ │ │ └── TestService.java
│ │ └── resources/
│ │ ├── META-INF/
│ │ │ └── spring.factories
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java
├── 45.Spring-Boot-SpringApplication/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── initializer/
│ │ │ │ ├── AfterHelloApplicationContextInitializer.java
│ │ │ │ └── HelloApplicationContextInitializer.java
│ │ │ ├── listener/
│ │ │ │ ├── AfterContextClosedEventListener.java
│ │ │ │ ├── ContextClosedEventListener.java
│ │ │ │ └── HelloApplicationRunListener.java
│ │ │ └── runner/
│ │ │ ├── HelloApplicationRunner.java
│ │ │ └── HelloCommandLineRunner.java
│ │ └── resources/
│ │ ├── META-INF/
│ │ │ └── spring.factories
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java
├── 46.Spring-Boot-Hibernate-Validator/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── controller/
│ │ │ │ └── TestController.java
│ │ │ ├── domain/
│ │ │ │ └── User.java
│ │ │ └── handler/
│ │ │ └── GlobalExceptionHandler.java
│ │ └── resources/
│ │ ├── ValidationMessages.properties
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java
├── 47.Spring-Boot-Content-Negotiation/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── config/
│ │ │ │ └── WebConfigurer.java
│ │ │ ├── controller/
│ │ │ │ └── TestController.java
│ │ │ ├── converter/
│ │ │ │ └── PropertiesHttpMessageConverter.java
│ │ │ ├── handler/
│ │ │ │ └── PropertiesHandlerMethodReturnValueHandler.java
│ │ │ └── resolver/
│ │ │ └── PropertiesHandlerMethodArgumentResolver.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java
├── 48.Spring-Boot-CORS-Support/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── config/
│ │ │ │ └── WebConfigurer.java
│ │ │ └── controller/
│ │ │ └── TestController.java
│ │ └── resources/
│ │ ├── application.properties
│ │ └── templates/
│ │ └── index.html
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java
├── 49.Spring-Boot-Async/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── config/
│ │ │ │ └── AsyncPoolConfig.java
│ │ │ ├── controller/
│ │ │ │ └── TestController.java
│ │ │ └── service/
│ │ │ └── TestService.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java
├── 50.Spring-Regist-Bean/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ ├── DemoApplication.java
│ │ └── demo/
│ │ ├── condition/
│ │ │ └── MyCondition.java
│ │ ├── config/
│ │ │ └── WebConfig.java
│ │ ├── controller/
│ │ │ └── UserController.java
│ │ ├── dao/
│ │ │ └── UserMapper.java
│ │ ├── domain/
│ │ │ ├── Apple.java
│ │ │ ├── Banana.java
│ │ │ ├── Cherry.java
│ │ │ ├── Hello.java
│ │ │ ├── Strawberry.java
│ │ │ ├── User.java
│ │ │ ├── UserDetail.java
│ │ │ └── Watermelon.java
│ │ ├── factory/
│ │ │ └── CherryFactoryBean.java
│ │ ├── filter/
│ │ │ └── MyTypeFilter.java
│ │ ├── register/
│ │ │ └── MyImportBeanDefinitionRegistrar.java
│ │ ├── selector/
│ │ │ └── MyImportSelector.java
│ │ └── service/
│ │ ├── CalculateService.java
│ │ ├── UserService.java
│ │ └── impl/
│ │ ├── Java7CalculateServiceImpl.java
│ │ └── Java8CalculateServiceImpl.java
│ └── resources/
│ └── application.properties
├── 51.Spring-Bean-Lifecycle/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ ├── DemoApplication.java
│ │ └── demo/
│ │ ├── config/
│ │ │ ├── MyBeanPostProcessor.java
│ │ │ └── WebConfig.java
│ │ └── domain/
│ │ ├── Bird.java
│ │ ├── Fish.java
│ │ └── User.java
│ └── resources/
│ └── application.properties
├── 52.Dubbo-OPS-Mointor/
│ └── spring-boot-dubbo-applicaiton/
│ ├── common-api/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── common/
│ │ └── api/
│ │ └── HelloService.java
│ ├── pom.xml
│ ├── server-consumer/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── cc/
│ │ │ └── mrbird/
│ │ │ ├── ConsumerApplicaiton.java
│ │ │ └── consumer/
│ │ │ └── controller/
│ │ │ └── HelloController.java
│ │ └── resources/
│ │ └── application.yml
│ └── server-provider/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ ├── ProviderApplicaiton.java
│ │ └── provider/
│ │ └── service/
│ │ └── HelloServiceImpl.java
│ └── resources/
│ └── application.yml
├── 53.Dubbo-High-Availability/
│ ├── common-api/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── common/
│ │ └── api/
│ │ └── HelloService.java
│ ├── pom.xml
│ ├── server-consumer/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── cc/
│ │ │ └── mrbird/
│ │ │ ├── ConsumerApplicaiton.java
│ │ │ └── consumer/
│ │ │ └── controller/
│ │ │ └── HelloController.java
│ │ └── resources/
│ │ └── application.yml
│ └── server-provider/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ ├── ProviderApplicaiton.java
│ │ └── provider/
│ │ └── service/
│ │ └── HelloServiceImpl.java
│ └── resources/
│ └── application.yml
├── 54.Spring-Boot-Kafka/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── demo/
│ │ ├── KafkaApplication.java
│ │ ├── config/
│ │ │ ├── KafkaConsumerConfig.java
│ │ │ └── KafkaProducerConfig.java
│ │ ├── controller/
│ │ │ └── SendMessageController.java
│ │ ├── domain/
│ │ │ └── Message.java
│ │ └── listener/
│ │ └── KafkaMessageListener.java
│ └── resources/
│ └── application.yml
├── 55.Spring-Cloud-Consul/
│ ├── server-consumer/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── ServerConsumerApplication.java
│ │ │ └── TestController.java
│ │ └── resources/
│ │ └── application.yml
│ └── server-proivder/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── demo/
│ │ ├── ServerProviderApplication.java
│ │ └── TestController.java
│ └── resources/
│ └── application.yml
├── 56.Spring-Boot-MongoDB-crud/
│ ├── Mongo DB crud.postman_collection.json
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── mongodb/
│ │ ├── MongodbApplication.java
│ │ ├── controller/
│ │ │ └── UserController.java
│ │ ├── dao/
│ │ │ └── UserDao.java
│ │ ├── domain/
│ │ │ └── User.java
│ │ └── service/
│ │ └── UserService.java
│ └── resources/
│ └── application.yml
├── 57.Spring-Boot-WebFlux/
│ ├── async-servlet/
│ │ ├── src/
│ │ │ ├── AsyncServlet.java
│ │ │ └── SyncServlet.java
│ │ └── web/
│ │ ├── WEB-INF/
│ │ │ └── web.xml
│ │ └── index.html
│ └── webflux/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── webflux/
│ │ ├── FluxTest.java
│ │ ├── MonoFluxTest.java
│ │ ├── MonoTest.java
│ │ ├── TestController.java
│ │ ├── ViewController.java
│ │ └── WebfluxApplication.java
│ └── resources/
│ ├── application.yml
│ └── templates/
│ └── flux.html
├── 58.Spring-Boot-WebFlux-crud/
│ ├── pom.xml
│ ├── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── webflux/
│ │ │ ├── WebfluxApplication.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── dao/
│ │ │ │ └── UserDao.java
│ │ │ ├── domain/
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ └── UserService.java
│ │ └── resources/
│ │ └── application.yml
│ └── webflux crud.postman_collection.json
├── 59.Spring-Security-SessionManager/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ ├── SecurityApplication.java
│ │ ├── domain/
│ │ │ └── MyUser.java
│ │ ├── handler/
│ │ │ ├── MyAuthenticationFailureHandler.java
│ │ │ └── MyAuthenticationSucessHandler.java
│ │ ├── security/
│ │ │ └── browser/
│ │ │ ├── BrowserSecurityConfig.java
│ │ │ └── UserDetailService.java
│ │ ├── session/
│ │ │ └── MySessionExpiredStrategy.java
│ │ ├── validate/
│ │ │ ├── code/
│ │ │ │ ├── ImageCode.java
│ │ │ │ ├── ValidateCodeException.java
│ │ │ │ └── ValidateCodeFilter.java
│ │ │ └── smscode/
│ │ │ ├── SmsAuthenticationConfig.java
│ │ │ ├── SmsAuthenticationFilter.java
│ │ │ ├── SmsAuthenticationProvider.java
│ │ │ ├── SmsAuthenticationToken.java
│ │ │ ├── SmsCode.java
│ │ │ └── SmsCodeFilter.java
│ │ └── web/
│ │ └── controller/
│ │ ├── BrowserSecurityController.java
│ │ ├── TestController.java
│ │ └── ValidateController.java
│ └── resources/
│ ├── application.yml
│ └── resources/
│ ├── css/
│ │ └── login.css
│ └── login.html
├── 60.Spring-Security-Logout/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ ├── SecurityApplication.java
│ │ ├── domain/
│ │ │ └── MyUser.java
│ │ ├── handler/
│ │ │ ├── MyAuthenticationFailureHandler.java
│ │ │ ├── MyAuthenticationSucessHandler.java
│ │ │ └── MyLogOutSuccessHandler.java
│ │ ├── security/
│ │ │ └── browser/
│ │ │ ├── BrowserSecurityConfig.java
│ │ │ └── UserDetailService.java
│ │ ├── session/
│ │ │ └── MySessionExpiredStrategy.java
│ │ ├── validate/
│ │ │ ├── code/
│ │ │ │ ├── ImageCode.java
│ │ │ │ ├── ValidateCodeException.java
│ │ │ │ └── ValidateCodeFilter.java
│ │ │ └── smscode/
│ │ │ ├── SmsAuthenticationConfig.java
│ │ │ ├── SmsAuthenticationFilter.java
│ │ │ ├── SmsAuthenticationProvider.java
│ │ │ ├── SmsAuthenticationToken.java
│ │ │ ├── SmsCode.java
│ │ │ └── SmsCodeFilter.java
│ │ └── web/
│ │ └── controller/
│ │ ├── BrowserSecurityController.java
│ │ ├── TestController.java
│ │ └── ValidateController.java
│ └── resources/
│ ├── application.yml
│ └── resources/
│ ├── css/
│ │ └── login.css
│ └── login.html
├── 61.Spring-security-Permission/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ ├── SecurityApplication.java
│ │ ├── domain/
│ │ │ └── MyUser.java
│ │ ├── handler/
│ │ │ ├── MyAuthenticationAccessDeniedHandler.java
│ │ │ ├── MyAuthenticationFailureHandler.java
│ │ │ ├── MyAuthenticationSucessHandler.java
│ │ │ └── MyLogOutSuccessHandler.java
│ │ ├── security/
│ │ │ └── browser/
│ │ │ ├── BrowserSecurityConfig.java
│ │ │ └── UserDetailService.java
│ │ ├── session/
│ │ │ └── MySessionExpiredStrategy.java
│ │ ├── validate/
│ │ │ ├── code/
│ │ │ │ ├── ImageCode.java
│ │ │ │ ├── ValidateCodeException.java
│ │ │ │ └── ValidateCodeFilter.java
│ │ │ └── smscode/
│ │ │ ├── SmsAuthenticationConfig.java
│ │ │ ├── SmsAuthenticationFilter.java
│ │ │ ├── SmsAuthenticationProvider.java
│ │ │ ├── SmsAuthenticationToken.java
│ │ │ ├── SmsCode.java
│ │ │ └── SmsCodeFilter.java
│ │ └── web/
│ │ └── controller/
│ │ ├── BrowserSecurityController.java
│ │ ├── TestController.java
│ │ └── ValidateController.java
│ └── resources/
│ ├── application.yml
│ └── resources/
│ ├── css/
│ │ └── login.css
│ └── login.html
├── 62.Spring-Boot-Shiro-JWT/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── demo/
│ │ ├── DemoApplication.java
│ │ ├── authentication/
│ │ │ ├── JWTFilter.java
│ │ │ ├── JWTToken.java
│ │ │ ├── JWTUtil.java
│ │ │ ├── ShiroConfig.java
│ │ │ └── ShiroRealm.java
│ │ ├── controller/
│ │ │ ├── LoginController.java
│ │ │ └── TestController.java
│ │ ├── domain/
│ │ │ ├── Response.java
│ │ │ └── User.java
│ │ ├── exception/
│ │ │ └── SystemException.java
│ │ ├── handler/
│ │ │ └── GlobalExceptionHandler.java
│ │ ├── properties/
│ │ │ └── SystemProperties.java
│ │ ├── runner/
│ │ │ └── PrintRunner.java
│ │ └── utils/
│ │ ├── DateUtil.java
│ │ ├── MD5Util.java
│ │ ├── SpringContextUtil.java
│ │ └── SystemUtils.java
│ └── resources/
│ ├── ValidationMessages.properties
│ ├── application.yml
│ ├── postman.json
│ └── readme.md
├── 63.Spring-Security-OAuth2-Guide/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── security/
│ │ ├── SecurityApplication.java
│ │ ├── config/
│ │ │ ├── AuthorizationServerConfig.java
│ │ │ └── ResourceServerConfig.java
│ │ ├── controller/
│ │ │ └── UserController.java
│ │ ├── domain/
│ │ │ └── MyUser.java
│ │ └── service/
│ │ └── UserDetailService.java
│ └── resources/
│ └── application.yml
├── 64.Spring-Security-OAuth2-Customize/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── security/
│ │ ├── SecurityApplication.java
│ │ ├── config/
│ │ │ ├── AuthorizationServerConfig.java
│ │ │ └── ResourceServerConfig.java
│ │ ├── controller/
│ │ │ ├── UserController.java
│ │ │ └── ValidateController.java
│ │ ├── domain/
│ │ │ └── MyUser.java
│ │ ├── handler/
│ │ │ ├── MyAuthenticationFailureHandler.java
│ │ │ └── MyAuthenticationSucessHandler.java
│ │ ├── service/
│ │ │ ├── RedisCodeService.java
│ │ │ └── UserDetailService.java
│ │ └── validate/
│ │ └── smscode/
│ │ ├── SmsAuthenticationConfig.java
│ │ ├── SmsAuthenticationFilter.java
│ │ ├── SmsAuthenticationProvider.java
│ │ ├── SmsAuthenticationToken.java
│ │ ├── SmsCode.java
│ │ └── SmsCodeFilter.java
│ └── resources/
│ └── application.yml
├── 65.Spring-Security-OAuth2-Config/
│ ├── pom.xml
│ ├── security.postman_collection.json
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── security/
│ │ ├── SecurityApplication.java
│ │ ├── config/
│ │ │ ├── AuthorizationServerConfig.java
│ │ │ ├── JWTokenConfig.java
│ │ │ ├── ResourceServerConfig.java
│ │ │ ├── SecurityConfig.java
│ │ │ └── TokenStoreConfig.java
│ │ ├── controller/
│ │ │ ├── UserController.java
│ │ │ └── ValidateController.java
│ │ ├── domain/
│ │ │ └── MyUser.java
│ │ ├── enhancer/
│ │ │ └── JWTokenEnhancer.java
│ │ ├── handler/
│ │ │ ├── MyAuthenticationFailureHandler.java
│ │ │ └── MyAuthenticationSucessHandler.java
│ │ ├── service/
│ │ │ ├── RedisCodeService.java
│ │ │ └── UserDetailService.java
│ │ └── validate/
│ │ └── smscode/
│ │ ├── SmsAuthenticationConfig.java
│ │ ├── SmsAuthenticationFilter.java
│ │ ├── SmsAuthenticationProvider.java
│ │ ├── SmsAuthenticationToken.java
│ │ ├── SmsCode.java
│ │ └── SmsCodeFilter.java
│ └── resources/
│ └── application.yml
├── 66.Spring-Security-OAuth2-SSO/
│ ├── pom.xml
│ ├── sso-application-one/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── cc/
│ │ │ └── mrbird/
│ │ │ └── sso/
│ │ │ ├── SsoApplicaitonOne.java
│ │ │ └── client/
│ │ │ ├── config/
│ │ │ │ └── WebSecurityConfigurer.java
│ │ │ └── controller/
│ │ │ └── UserController.java
│ │ └── resources/
│ │ ├── application.yml
│ │ └── static/
│ │ └── index.html
│ ├── sso-application-two/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── cc/
│ │ │ └── mrbird/
│ │ │ └── sso/
│ │ │ ├── SsoApplicaitonTwo.java
│ │ │ └── client/
│ │ │ └── controller/
│ │ │ └── UserController.java
│ │ └── resources/
│ │ ├── application.yml
│ │ └── static/
│ │ └── index.html
│ └── sso-server/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── sso/
│ │ ├── SsoServerApplication.java
│ │ └── server/
│ │ ├── config/
│ │ │ ├── SsoAuthorizationServerConfig.java
│ │ │ └── WebSecurityConfig.java
│ │ ├── domain/
│ │ │ └── MyUser.java
│ │ └── service/
│ │ └── UserDetailService.java
│ └── resources/
│ └── application.yml
├── 67.spring-batch-start/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── batch/
│ │ ├── SpringBatchStartApplication.java
│ │ ├── decider/
│ │ │ └── MyDecider.java
│ │ └── job/
│ │ ├── DeciderJobDemo.java
│ │ ├── FirstJobDemo.java
│ │ ├── FlowJobDemo.java
│ │ ├── MultiStepJobDemo.java
│ │ ├── NestedJobDemo.java
│ │ └── SplitJobDemo.java
│ └── resources/
│ └── application.yml
├── 68.spring-batch-itemreader/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── batch/
│ │ ├── SpringBatchItemreaderApplication.java
│ │ ├── entity/
│ │ │ └── TestData.java
│ │ ├── job/
│ │ │ ├── DataSourceItemReaderDemo.java
│ │ │ ├── FileItemReaderDemo.java
│ │ │ ├── JSONFileItemReaderDemo.java
│ │ │ ├── MultiFileIteamReaderDemo.java
│ │ │ ├── MySimpleItemReaderDemo.java
│ │ │ └── XmlFileItemReaderDemo.java
│ │ └── reader/
│ │ └── MySimpleIteamReader.java
│ └── resources/
│ ├── TEST.sql
│ ├── application.yml
│ ├── file
│ ├── file.json
│ ├── file.xml
│ ├── file1
│ └── file2
├── 69.spring-batch-itemwriter/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── batch/
│ │ ├── SpringBatchItemwriterApplication.java
│ │ ├── entity/
│ │ │ └── TestData.java
│ │ ├── job/
│ │ │ ├── DatabaseItemWriterDemo.java
│ │ │ ├── FileItemWriterDemo.java
│ │ │ ├── JsonFileItemWriterDemo.java
│ │ │ ├── MultiFileItemWriteDemo.java
│ │ │ └── XmlFileItemWriterDemo.java
│ │ ├── reader/
│ │ │ └── ItemReaderConfigure.java
│ │ └── writer/
│ │ └── ItemWriterConfigure.java
│ └── resources/
│ └── application.yml
├── 70.spring-batch-itemprocessor/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── batch/
│ │ ├── SpringBatchItemprocessorApplication.java
│ │ ├── entity/
│ │ │ ├── TestData.java
│ │ │ ├── job/
│ │ │ │ ├── BeanValidatingItemProcessorDemo.java
│ │ │ │ ├── CompositeItemProcessorDemo.java
│ │ │ │ ├── TestDataFilterItemProcessorDemo.java
│ │ │ │ ├── TestDataTransformItemPorcessorDemo.java
│ │ │ │ └── ValidatingItemProcessorDemo.java
│ │ │ └── reader/
│ │ │ └── ItemReaderConfigure.java
│ │ └── processor/
│ │ ├── TestDataFilterItemProcessor.java
│ │ └── TestDataTransformItemPorcessor.java
│ └── resources/
│ └── application.yml
├── 71.spring-batch-listener/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── batch/
│ │ ├── SpringBatchListenerApplication.java
│ │ ├── job/
│ │ │ ├── CompositeJobExecutionListenerJobDemo.java
│ │ │ └── ListenerTestJobDemo.java
│ │ └── listener/
│ │ ├── MyChunkListener.java
│ │ ├── MyItemProcessListener.java
│ │ ├── MyItemReaderListener.java
│ │ ├── MyItemWriterListener.java
│ │ ├── MyJobExecutionListener.java
│ │ └── MyStepExecutionListener.java
│ └── resources/
│ └── application.yml
├── 72.spring-batch-exception/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── batch/
│ │ ├── SpringBatchExceptionApplication.java
│ │ ├── exception/
│ │ │ └── MyJobExecutionException.java
│ │ ├── job/
│ │ │ ├── DefaultExceptionJobDemo.java
│ │ │ ├── RestartJobDemo.java
│ │ │ ├── RetryExceptionJobDemo.java
│ │ │ ├── SkipExceptionJobDemo.java
│ │ │ └── TransactionJobDemo.java
│ │ └── listener/
│ │ └── MySkipListener.java
│ └── resources/
│ └── application.yml
├── 73.spring-batch-launcher/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── batch/
│ │ ├── SpringBatchLauncherApplication.java
│ │ ├── configure/
│ │ │ └── JobConfigure.java
│ │ ├── controller/
│ │ │ └── JobController.java
│ │ └── job/
│ │ └── MyJob.java
│ └── resources/
│ └── application.yml
├── 74.spring-cloud-alibaba-nacos-register/
│ ├── consumer/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── cc/
│ │ │ └── mrbird/
│ │ │ └── consumer/
│ │ │ ├── ConsumerApplication.java
│ │ │ ├── configure/
│ │ │ │ └── ConsumerConfigure.java
│ │ │ └── controller/
│ │ │ └── ConsumeController.java
│ │ └── resources/
│ │ └── application.yml
│ ├── pom.xml
│ └── provider/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── provider/
│ │ ├── ProviderApplication.java
│ │ └── controller/
│ │ └── HelloController.java
│ └── resources/
│ └── application.yml
├── 75.spring-cloud-alibaba-nacos-config/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── nacos/
│ │ ├── SpringCloudAlibabaNacosConfigApplication.java
│ │ └── controller/
│ │ └── TestController.java
│ └── resources/
│ ├── application.yml
│ └── bootstrap.yml
├── 76.spring-boot-websocket-socketjs/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── socket/
│ │ ├── SpringBootWebsocketSocketjsApplication.java
│ │ ├── configure/
│ │ │ └── WebSocketServerConfigure.java
│ │ └── handler/
│ │ └── MyStringWebSocketHandler.java
│ └── resources/
│ ├── application.properties
│ └── static/
│ └── client.html
├── 77.spring-cloud-alibaba-sentinel-dashboard-guide/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── sentinel/
│ │ ├── SpringCloudAlibabaSentinelFlowControlApplication.java
│ │ ├── controller/
│ │ │ └── TestController.java
│ │ └── service/
│ │ └── HelloService.java
│ └── resources/
│ └── application.yml
├── 78.spring-cloud-alibaba-sentinelresource/
│ ├── consumer/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── cc/
│ │ │ └── mrbird/
│ │ │ └── consumer/
│ │ │ └── ConsumerApplication.java
│ │ └── resources/
│ │ └── application.yml
│ ├── pom.xml
│ └── provider/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── cc/
│ │ └── mrbird/
│ │ └── provider/
│ │ └── ProviderApplication.java
│ └── resources/
│ └── application.yml
├── LICENSE
└── readme.md
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
*/.settings/
*/target/
*/.classpath
*/.project
================================================
FILE: 01.Start-Spring-Boot/pom.xml
================================================
4.0.0
com.springboot
Start-Spring-Boot
0.0.1-SNAPSHOT
jar
Start-Spring-Boot
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
1.5.9.RELEASE
UTF-8
UTF-8
1.7
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
nexus-aliyun
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public
org.springframework.boot
spring-boot-maven-plugin
================================================
FILE: 01.Start-Spring-Boot/src/main/java/com/springboot/demo/DemoApplication.java
================================================
package com.springboot.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SpringBootApplication
public class DemoApplication {
@RequestMapping("/")
String index() {
return "hello spring boot";
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
================================================
FILE: 01.Start-Spring-Boot/src/main/resources/application.properties
================================================
================================================
FILE: 01.Start-Spring-Boot/src/test/java/com/springboot/demo/DemoApplicationTests.java
================================================
package com.springboot.demo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}
================================================
FILE: 02.Spring-Boot-Config/pom.xml
================================================
4.0.0
com.springboot
Spring-Boot-Config
0.0.1-SNAPSHOT
jar
Spring-Boot-Config
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
1.5.9.RELEASE
UTF-8
UTF-8
1.7
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
nexus-aliyun
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public
org.springframework.boot
spring-boot-maven-plugin
================================================
FILE: 02.Spring-Boot-Config/src/main/java/com/springboot/Application.java
================================================
package com.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import com.springboot.bean.ConfigBean;
import com.springboot.bean.TestConfigBean;
@SpringBootApplication
@EnableConfigurationProperties({ConfigBean.class,TestConfigBean.class})
//@ImportResource({"classpath:some-application.xml"})
public class Application {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(Application.class);
app.setAddCommandLineProperties(false);
app.run(args);
}
}
================================================
FILE: 02.Spring-Boot-Config/src/main/java/com/springboot/bean/BlogProperties.java
================================================
package com.springboot.bean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class BlogProperties {
@Value("${mrbird.blog.name}")
private String name;
@Value("${mrbird.blog.title}")
private String title;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
================================================
FILE: 02.Spring-Boot-Config/src/main/java/com/springboot/bean/ConfigBean.java
================================================
package com.springboot.bean;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix="mrbird.blog")
public class ConfigBean {
private String name;
private String title;
private String wholeTitle;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getWholeTitle() {
return wholeTitle;
}
public void setWholeTitle(String wholeTitle) {
this.wholeTitle = wholeTitle;
}
}
================================================
FILE: 02.Spring-Boot-Config/src/main/java/com/springboot/bean/TestConfigBean.java
================================================
package com.springboot.bean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
@Configuration
@ConfigurationProperties(prefix="test")
@PropertySource("classpath:test.properties")
@Component
public class TestConfigBean {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
================================================
FILE: 02.Spring-Boot-Config/src/main/java/com/springboot/controller/IndexController.java
================================================
package com.springboot.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.springboot.bean.BlogProperties;
import com.springboot.bean.ConfigBean;
import com.springboot.bean.TestConfigBean;
@RestController
public class IndexController {
@Autowired
private BlogProperties blogProperties;
@Autowired
private ConfigBean configBean;
@Autowired
private TestConfigBean testConfigBean;
@RequestMapping("/")
String index() {
return testConfigBean.getName()+","+testConfigBean.getAge();
}
}
================================================
FILE: 02.Spring-Boot-Config/src/main/resources/application-dev.properties
================================================
server.port=8080
================================================
FILE: 02.Spring-Boot-Config/src/main/resources/application-prod.properties
================================================
server.port=8081
================================================
FILE: 02.Spring-Boot-Config/src/main/resources/application.properties
================================================
mrbird.blog.name=mrbird's blog
mrbird.blog.title=Spring Boot
mrbird.blog.wholeTitle=${mrbird.blog.name}--${mrbird.blog.title}
spring.profiles.active=dev
================================================
FILE: 02.Spring-Boot-Config/src/main/resources/banner.txt
================================================
_ _ _ _ _ _
/ \ / \ / \ / \ / \ / \
( m | r | b | i | r | d )
\_/ \_/ \_/ \_/ \_/ \_/
================================================
FILE: 02.Spring-Boot-Config/src/main/resources/test.properties
================================================
test.name=KangKang
test.age=25
================================================
FILE: 02.Spring-Boot-Config/src/test/java/com/springboot/demo/DemoApplicationTests.java
================================================
package com.springboot.demo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}
================================================
FILE: 03.Spring-Boot-MyBatis/pom.xml
================================================
4.0.0
com.springboot
Spring-Boot-MyBatis
0.0.1-SNAPSHOT
jar
demo
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
1.5.9.RELEASE
UTF-8
UTF-8
1.7
org.springframework.boot
spring-boot-starter-web
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.1
org.springframework.boot
spring-boot-starter-test
test
com.oracle
ojdbc6
6.0
com.alibaba
druid-spring-boot-starter
1.1.6
org.springframework.boot
spring-boot-maven-plugin
================================================
FILE: 03.Spring-Boot-MyBatis/src/main/java/com/springboot/Application.java
================================================
package com.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
================================================
FILE: 03.Spring-Boot-MyBatis/src/main/java/com/springboot/bean/Student.java
================================================
package com.springboot.bean;
import java.io.Serializable;
public class Student implements Serializable{
private static final long serialVersionUID = -339516038496531943L;
private String sno;
private String name;
private String sex;
public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
================================================
FILE: 03.Spring-Boot-MyBatis/src/main/java/com/springboot/controller/TestController.java
================================================
package com.springboot.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.springboot.bean.Student;
import com.springboot.service.StudentService;
@RestController
public class TestController {
@Autowired
private StudentService studentService;
@RequestMapping( value = "/querystudent", method = RequestMethod.GET)
public Student queryStudentBySno(String sno) {
return this.studentService.queryStudentBySno(sno);
}
}
================================================
FILE: 03.Spring-Boot-MyBatis/src/main/java/com/springboot/mapper/StudentMapper.java
================================================
package com.springboot.mapper;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Component;
import com.springboot.bean.Student;
@Component
@Mapper
public interface StudentMapper {
@Insert("insert into student(sno,sname,ssex) values(#{sno},#{name},#{sex})")
int add(Student student);
@Update("update student set sname=#{name},ssex=#{sex} where sno=#{sno}")
int update(Student student);
@Delete("delete from student where sno=#{sno}")
int deleteBysno(String sno);
@Select("select * from student where sno=#{sno}")
@Results(id = "student",value= {
@Result(property = "sno", column = "sno", javaType = String.class),
@Result(property = "name", column = "sname", javaType = String.class),
@Result(property = "sex", column = "ssex", javaType = String.class)
})
Student queryStudentBySno(String sno);
}
================================================
FILE: 03.Spring-Boot-MyBatis/src/main/java/com/springboot/service/StudentService.java
================================================
package com.springboot.service;
import com.springboot.bean.Student;
public interface StudentService {
int add(Student student);
int update(Student student);
int deleteBysno(String sno);
Student queryStudentBySno(String sno);
}
================================================
FILE: 03.Spring-Boot-MyBatis/src/main/java/com/springboot/service/impl/StudentServiceImp.java
================================================
package com.springboot.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.springboot.bean.Student;
import com.springboot.mapper.StudentMapper;
import com.springboot.service.StudentService;
@Service("studentService")
public class StudentServiceImp implements StudentService{
@Autowired
private StudentMapper studentMapper;
@Override
public int add(Student student) {
return this.studentMapper.add(student);
}
@Override
public int update(Student student) {
return this.studentMapper.update(student);
}
@Override
public int deleteBysno(String sno) {
return this.studentMapper.deleteBysno(sno);
}
@Override
public Student queryStudentBySno(String sno) {
return this.studentMapper.queryStudentBySno(sno);
}
}
================================================
FILE: 03.Spring-Boot-MyBatis/src/main/resources/application.yml
================================================
server:
context-path: /web
spring:
datasource:
druid:
# 数据库访问配置, 使用druid数据源
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@localhost:1521:ORCL
username: test
password: 123456
# 连接池配置
initial-size: 5
min-idle: 5
max-active: 20
# 连接等待超时时间
max-wait: 30000
# 配置检测可以关闭的空闲连接间隔时间
time-between-eviction-runs-millis: 60000
# 配置连接在池中的最小生存时间
min-evictable-idle-time-millis: 300000
validation-query: select '1' from dual
test-while-idle: true
test-on-borrow: false
test-on-return: false
# 打开PSCache,并且指定每个连接上PSCache的大小
pool-prepared-statements: true
max-open-prepared-statements: 20
max-pool-prepared-statement-per-connection-size: 20
# 配置监控统计拦截的filters, 去掉后监控界面sql无法统计, 'wall'用于防火墙
filters: stat,wall
# Spring监控AOP切入点,如x.y.z.service.*,配置多个英文逗号分隔
aop-patterns: com.springboot.servie.*
# WebStatFilter配置
web-stat-filter:
enabled: true
# 添加过滤规则
url-pattern: /*
# 忽略过滤的格式
exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'
# StatViewServlet配置
stat-view-servlet:
enabled: true
# 访问路径为/druid时,跳转到StatViewServlet
url-pattern: /druid/*
# 是否能够重置数据
reset-enable: false
# 需要账号密码才能访问控制台
login-username: druid
login-password: druid123
# IP白名单
# allow: 127.0.0.1
# IP黑名单(共同存在时,deny优先于allow)
# deny: 192.168.1.218
# 配置StatFilter
filter:
stat:
log-slow-sql: true
================================================
FILE: 03.Spring-Boot-MyBatis/src/main/resources/init.sql
================================================
CREATE TABLE STUDENT (
SNO VARCHAR2(3 BYTE) NOT NULL ,
SNAME VARCHAR2(9 BYTE) NOT NULL ,
SSEX CHAR(2 BYTE) NOT NULL
);
INSERT INTO STUDENT VALUES ('001', 'KangKang', 'M ');
INSERT INTO STUDENT VALUES ('002', 'Mike', 'M ');
INSERT INTO STUDENT VALUES ('003', 'Jane', 'F ');
================================================
FILE: 04.Spring-Boot-JdbcTemplate/pom.xml
================================================
4.0.0
com.springboot
Spring-Boot-JdbcTemplate
0.0.1-SNAPSHOT
jar
demo
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
1.5.9.RELEASE
UTF-8
UTF-8
1.7
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-jdbc
org.springframework.boot
spring-boot-starter-test
test
com.oracle
ojdbc6
6.0
com.alibaba
druid-spring-boot-starter
1.1.6
nexus-aliyun
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public
org.springframework.boot
spring-boot-maven-plugin
================================================
FILE: 04.Spring-Boot-JdbcTemplate/src/main/java/com/springboot/Application.java
================================================
package com.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
================================================
FILE: 04.Spring-Boot-JdbcTemplate/src/main/java/com/springboot/bean/Student.java
================================================
package com.springboot.bean;
import java.io.Serializable;
public class Student implements Serializable{
private static final long serialVersionUID = -339516038496531943L;
private String sno;
private String name;
private String sex;
public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
================================================
FILE: 04.Spring-Boot-JdbcTemplate/src/main/java/com/springboot/controller/TestController.java
================================================
package com.springboot.controller;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.springboot.bean.Student;
import com.springboot.service.StudentService;
@RestController
public class TestController {
@Autowired
private StudentService studentService;
@RequestMapping(value = "/querystudent", method = RequestMethod.GET)
public Student queryStudentBySno(String sno) {
return this.studentService.queryStudentBySno(sno);
}
@RequestMapping(value = "/queryallstudent")
public List