gitextract_zg6va71p/ ├── #### wujun个人开发作品集(持续更新)###.md ├── .claude/ │ └── settings.local.json ├── .gitignore ├── README.md ├── doc/ │ ├── #### wujun个人开发作品集(持续更新)###.md │ ├── Devops/ │ │ ├── CentOS使用yum安装jdk.md │ │ ├── Centos下如何安装MySQL5.7.md │ │ ├── Docker cp 命令.md │ │ ├── Dockerfile │ │ ├── docker 安装 mysql5.7.md │ │ ├── docker 搭建Mysql集群.md │ │ ├── docker.md │ │ ├── docker安装Redis并设置密码.md │ │ └── 部署文档 │ ├── 部署文档 │ └── 重置master分支.md ├── java_project_template/ │ ├── jun_api_service_admin/ │ │ ├── Dockerfile │ │ ├── dependencies.txt │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── ApiServiceApplication.java │ │ └── resources/ │ │ ├── application-dev.yml │ │ ├── application.yml │ │ ├── logback-spring.xml │ │ └── templates/ │ │ └── biztest/ │ │ └── list.html │ ├── jun_api_service_demo/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── company/ │ │ │ │ └── project/ │ │ │ │ ├── Application.java │ │ │ │ ├── configurer/ │ │ │ │ │ ├── LoginInterceptor.java │ │ │ │ │ ├── MyBatisPlusConfig.java │ │ │ │ │ ├── SwaggerConfiguration.java │ │ │ │ │ └── WebMvcConfigurer.java │ │ │ │ ├── core/ │ │ │ │ │ ├── ApplicationContextUtil.java │ │ │ │ │ ├── Result.java │ │ │ │ │ ├── ResultCode.java │ │ │ │ │ ├── ResultGenerator.java │ │ │ │ │ └── ServiceException.java │ │ │ │ ├── dao/ │ │ │ │ │ └── UserMapper.java │ │ │ │ ├── model/ │ │ │ │ │ └── User.java │ │ │ │ ├── service/ │ │ │ │ │ ├── IUserService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── UserServiceImpl.java │ │ │ │ ├── utils/ │ │ │ │ │ ├── JwtUtils.java │ │ │ │ │ └── MD5Utils.java │ │ │ │ └── web/ │ │ │ │ └── UserController.java │ │ │ └── resources/ │ │ │ ├── application-dev.yml │ │ │ ├── application-prod.yml │ │ │ ├── application-test.yml │ │ │ ├── application.yml │ │ │ ├── banner.txt │ │ │ └── mapper/ │ │ │ └── UserMapper.xml │ │ └── test/ │ │ ├── java/ │ │ │ ├── CodeGenerator.java │ │ │ └── com/ │ │ │ └── company/ │ │ │ └── project/ │ │ │ └── Tester.java │ │ └── resources/ │ │ ├── templates/ │ │ │ └── controller.java.ftl │ │ └── user.sql │ ├── jun_api_service_main/ │ │ ├── doc/ │ │ │ └── user.sql │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── system/ │ │ │ │ ├── ApiServiceApplication.java │ │ │ │ ├── configurer/ │ │ │ │ │ ├── LoginInterceptor.java │ │ │ │ │ └── WebMvcConfigurer.java │ │ │ │ ├── core/ │ │ │ │ │ ├── Result.java │ │ │ │ │ ├── ResultCode.java │ │ │ │ │ ├── ResultGenerator.java │ │ │ │ │ └── ServiceException.java │ │ │ │ ├── mapper/ │ │ │ │ │ └── UserMapper.java │ │ │ │ ├── model/ │ │ │ │ │ └── User.java │ │ │ │ ├── service/ │ │ │ │ │ ├── HttpSessionService.java │ │ │ │ │ ├── IUserService.java │ │ │ │ │ ├── RedisService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── UserServiceImpl.java │ │ │ │ ├── utils/ │ │ │ │ │ ├── ImageCodeUtil.java │ │ │ │ │ └── MD5Utils.java │ │ │ │ └── web/ │ │ │ │ └── UserController.java │ │ │ └── resources/ │ │ │ ├── application-sqlite.yml │ │ │ ├── application-test.yml │ │ │ └── application.yml │ │ └── test/ │ │ ├── java/ │ │ │ ├── CodeGenerator.java │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── system/ │ │ │ └── Tester.java │ │ └── resources/ │ │ └── templates/ │ │ └── controller.java.ftl │ ├── jun_api_service_simple/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── project/ │ │ │ │ ├── QixingApplication.java │ │ │ │ └── config/ │ │ │ │ ├── GlobalRequestBodyAdvice2.java │ │ │ │ ├── MetaObjectHandlerConfig2.java │ │ │ │ ├── MyBatisPlusConfig2.java │ │ │ │ ├── RedisCacheConfig2.java │ │ │ │ ├── ResourcesConfig2.java │ │ │ │ ├── SwaggerConfiguration2.java │ │ │ │ ├── ThymeleafConfigration2.java │ │ │ │ ├── WebMvcConfig.java │ │ │ │ └── interceptor/ │ │ │ │ ├── MyInterceptor2.java │ │ │ │ └── MybatisExecutor2.java │ │ │ └── resources/ │ │ │ ├── application-dev.yml │ │ │ ├── application.yml │ │ │ ├── config.properties │ │ │ ├── files/ │ │ │ │ └── tree.sql │ │ │ ├── logback-spring.xml │ │ │ ├── qiniu.properties │ │ │ └── templates/ │ │ │ └── code-generator/ │ │ │ ├── beetlsql/ │ │ │ │ ├── beetlcontroller.ftl │ │ │ │ ├── beetlentity.ftl │ │ │ │ └── beetlmd.ftl │ │ │ ├── common-mapper/ │ │ │ │ ├── tkentity.ftl │ │ │ │ └── tkmapper.ftl │ │ │ ├── controller.ftl │ │ │ ├── dao.ftl │ │ │ ├── jdbc-template/ │ │ │ │ ├── jtdao.ftl │ │ │ │ └── jtdaoimpl.ftl │ │ │ ├── jpa/ │ │ │ │ ├── entity.ftl │ │ │ │ ├── jpacontroller.ftl │ │ │ │ └── repository.ftl │ │ │ ├── model.ftl │ │ │ ├── mybatis/ │ │ │ │ ├── controller.ftl │ │ │ │ ├── mapper.ftl │ │ │ │ ├── mapper2.ftl │ │ │ │ ├── model.ftl │ │ │ │ ├── mybatis.ftl │ │ │ │ ├── service.ftl │ │ │ │ └── service_impl.ftl │ │ │ ├── mybatis-plus/ │ │ │ │ ├── pluscontroller.ftl │ │ │ │ ├── plusentity.ftl │ │ │ │ ├── plusmapper.ftl │ │ │ │ └── plusservice.ftl │ │ │ ├── mybatis-plus-single/ │ │ │ │ ├── controller.java.ftl │ │ │ │ ├── dto.java.ftl │ │ │ │ ├── edit.html.ftl │ │ │ │ ├── entity.java.ftl │ │ │ │ ├── list.html.ftl │ │ │ │ ├── list.html.v1.ftl │ │ │ │ ├── list.html.vm.ftl │ │ │ │ ├── mapper.java.ftl │ │ │ │ ├── menu.sql.ftl │ │ │ │ ├── service.impl.java.ftl │ │ │ │ ├── service.java.ftl │ │ │ │ └── vo.java.ftl │ │ │ ├── mybatis-plus-v2/ │ │ │ │ ├── plus-controller.ftl │ │ │ │ ├── plus-dto.ftl │ │ │ │ ├── plus-entity.ftl │ │ │ │ ├── plus-mapper.ftl │ │ │ │ ├── plus-service.ftl │ │ │ │ ├── plus-serviceimpl.ftl │ │ │ │ ├── plus-vo.ftl │ │ │ │ └── pluscontroller.ftl │ │ │ ├── mybatis.ftl │ │ │ ├── renren-fast/ │ │ │ │ ├── menu-sql.ftl │ │ │ │ ├── rr-controller.ftl │ │ │ │ ├── rr-dao.ftl │ │ │ │ ├── rr-daoxml.ftl │ │ │ │ ├── rr-entity.ftl │ │ │ │ ├── rr-service.ftl │ │ │ │ ├── vue-edit.ftl │ │ │ │ └── vue-list.ftl │ │ │ ├── service.ftl │ │ │ ├── service_impl.ftl │ │ │ ├── ui/ │ │ │ │ ├── bootstrap-ui.ftl │ │ │ │ ├── element-ui.ftl │ │ │ │ ├── layui-edit.ftl │ │ │ │ ├── layui-list.ftl │ │ │ │ └── swagger-ui.ftl │ │ │ └── util/ │ │ │ ├── beanutil.ftl │ │ │ ├── json.ftl │ │ │ ├── sql.ftl │ │ │ ├── swagger-yml.ftl │ │ │ └── xml.ftl │ │ └── test/ │ │ └── java/ │ │ └── CodeGenerator.java │ ├── maven_javaproject/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── teamplate/ │ │ │ │ └── App.java │ │ │ └── resources/ │ │ │ └── applicationContext.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── teamplate/ │ │ └── AppTest.java │ ├── pom.xml │ ├── springboot-api-jwt/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── company/ │ │ │ │ └── project/ │ │ │ │ ├── Application.java │ │ │ │ ├── configurer/ │ │ │ │ │ ├── LoginInterceptor.java │ │ │ │ │ ├── MyBatisPlusConfig.java │ │ │ │ │ ├── SwaggerConfiguration.java │ │ │ │ │ └── WebMvcConfigurer.java │ │ │ │ ├── core/ │ │ │ │ │ ├── ApplicationContextUtil.java │ │ │ │ │ ├── Result.java │ │ │ │ │ ├── ResultCode.java │ │ │ │ │ ├── ResultGenerator.java │ │ │ │ │ └── ServiceException.java │ │ │ │ ├── dao/ │ │ │ │ │ └── UserMapper.java │ │ │ │ ├── model/ │ │ │ │ │ └── User.java │ │ │ │ ├── service/ │ │ │ │ │ ├── IUserService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── UserServiceImpl.java │ │ │ │ ├── utils/ │ │ │ │ │ ├── JwtUtils.java │ │ │ │ │ └── MD5Utils.java │ │ │ │ └── web/ │ │ │ │ └── UserController.java │ │ │ └── resources/ │ │ │ ├── application-dev.yml │ │ │ ├── application-prod.yml │ │ │ ├── application-test.yml │ │ │ ├── application.yml │ │ │ ├── banner.txt │ │ │ └── mapper/ │ │ │ └── UserMapper.xml │ │ └── test/ │ │ ├── java/ │ │ │ ├── CodeGenerator.java │ │ │ └── com/ │ │ │ └── company/ │ │ │ └── project/ │ │ │ └── Tester.java │ │ └── resources/ │ │ ├── templates/ │ │ │ └── controller.java.ftl │ │ └── user.sql │ ├── springboot-api-session/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── company/ │ │ │ │ └── project/ │ │ │ │ ├── Application.java │ │ │ │ ├── configurer/ │ │ │ │ │ ├── LoginInterceptor.java │ │ │ │ │ ├── MyBatisPlusConfig.java │ │ │ │ │ ├── SwaggerConfiguration.java │ │ │ │ │ └── WebMvcConfigurer.java │ │ │ │ ├── core/ │ │ │ │ │ ├── ApplicationContextUtil.java │ │ │ │ │ ├── Result.java │ │ │ │ │ ├── ResultCode.java │ │ │ │ │ ├── ResultGenerator.java │ │ │ │ │ └── ServiceException.java │ │ │ │ ├── dao/ │ │ │ │ │ └── UserMapper.java │ │ │ │ ├── model/ │ │ │ │ │ └── User.java │ │ │ │ ├── service/ │ │ │ │ │ ├── HttpSessionService.java │ │ │ │ │ ├── IUserService.java │ │ │ │ │ ├── RedisService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── UserServiceImpl.java │ │ │ │ ├── utils/ │ │ │ │ │ ├── ImageCodeUtil.java │ │ │ │ │ └── MD5Utils.java │ │ │ │ └── web/ │ │ │ │ └── UserController.java │ │ │ └── resources/ │ │ │ ├── application-dev.yml │ │ │ ├── application-prod.yml │ │ │ ├── application-test.yml │ │ │ ├── application.yml │ │ │ ├── banner.txt │ │ │ └── mapper/ │ │ │ └── UserMapper.xml │ │ └── test/ │ │ ├── java/ │ │ │ ├── CodeGenerator.java │ │ │ └── com/ │ │ │ └── company/ │ │ │ └── project/ │ │ │ └── Tester.java │ │ └── resources/ │ │ ├── templates/ │ │ │ └── controller.java.ftl │ │ └── user.sql │ ├── springboot-api-v2/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── company/ │ │ │ │ └── project/ │ │ │ │ ├── Application.java │ │ │ │ ├── configurer/ │ │ │ │ │ ├── LoginInterceptor.java │ │ │ │ │ ├── MyBatisPlusConfig.java │ │ │ │ │ ├── SwaggerConfiguration.java │ │ │ │ │ └── WebMvcConfigurer.java │ │ │ │ ├── core/ │ │ │ │ │ ├── ApplicationContextUtil.java │ │ │ │ │ ├── Result.java │ │ │ │ │ ├── ResultCode.java │ │ │ │ │ ├── ResultGenerator.java │ │ │ │ │ └── ServiceException.java │ │ │ │ ├── dao/ │ │ │ │ │ └── UserMapper.java │ │ │ │ ├── model/ │ │ │ │ │ └── User.java │ │ │ │ ├── service/ │ │ │ │ │ ├── HttpSessionService.java │ │ │ │ │ ├── IUserService.java │ │ │ │ │ ├── RedisService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── UserServiceImpl.java │ │ │ │ ├── utils/ │ │ │ │ │ ├── ImageCodeUtil.java │ │ │ │ │ ├── JwtUtils.java │ │ │ │ │ └── MD5Utils.java │ │ │ │ └── web/ │ │ │ │ └── UserController.java │ │ │ └── resources/ │ │ │ ├── application-dev.yml │ │ │ ├── application-prod.yml │ │ │ ├── application-test.yml │ │ │ ├── application.yml │ │ │ ├── banner.txt │ │ │ └── mapper/ │ │ │ └── UserMapper.xml │ │ └── test/ │ │ ├── java/ │ │ │ ├── CodeGenerator.java │ │ │ └── com/ │ │ │ └── company/ │ │ │ └── project/ │ │ │ └── Tester.java │ │ └── resources/ │ │ ├── templates/ │ │ │ └── controller.java.ftl │ │ └── user.sql │ ├── springboot_api_simple/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ ├── company/ │ │ │ │ │ └── project/ │ │ │ │ │ ├── Application.java │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── LoginInterceptor.java │ │ │ │ │ │ ├── MyBatisPlusConfig.java │ │ │ │ │ │ ├── SwaggerConfiguration.java │ │ │ │ │ │ └── WebMvcConfigurer.java │ │ │ │ │ ├── core/ │ │ │ │ │ │ ├── HttpSessionService.java │ │ │ │ │ │ ├── RedisService.java │ │ │ │ │ │ └── ResultCode.java │ │ │ │ │ ├── dao/ │ │ │ │ │ │ └── UserMapper.java │ │ │ │ │ ├── model/ │ │ │ │ │ │ └── User.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── IUserService.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ └── UserServiceImpl.java │ │ │ │ │ ├── utils/ │ │ │ │ │ │ ├── ImageCodeUtil.java │ │ │ │ │ │ └── MD5Utils.java │ │ │ │ │ └── web/ │ │ │ │ │ └── UserController.java │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── common/ │ │ │ │ ├── Result.java │ │ │ │ └── exception/ │ │ │ │ ├── BusinessException.java │ │ │ │ └── code/ │ │ │ │ ├── BaseResponseCode.java │ │ │ │ └── ResponseCodeInterface.java │ │ │ └── resources/ │ │ │ ├── application-dev.yml │ │ │ ├── application-prod.yml │ │ │ ├── application-test.yml │ │ │ ├── application.yml │ │ │ ├── banner.txt │ │ │ └── mapper/ │ │ │ └── UserMapper.xml │ │ └── test/ │ │ ├── java/ │ │ │ ├── CodeGenerator.java │ │ │ └── com/ │ │ │ └── company/ │ │ │ └── project/ │ │ │ └── Tester.java │ │ └── resources/ │ │ ├── templates/ │ │ │ └── controller.java.ftl │ │ └── user.sql │ └── springboot_jfinal_activerecord/ │ ├── .gitignore │ ├── README.md │ ├── pom.xml │ ├── sql/ │ │ └── emp.sql │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── lxhc/ │ │ │ ├── Application.java │ │ │ ├── config/ │ │ │ │ └── JfinalActiveRecordConfig.java │ │ │ ├── model/ │ │ │ │ ├── Emp.java │ │ │ │ └── EmpBalance.java │ │ │ └── service/ │ │ │ └── EmpBalanceService.java │ │ └── resources/ │ │ ├── application.yml │ │ └── log4j2.xml │ └── test/ │ └── java/ │ └── com/ │ └── lxhc/ │ ├── model/ │ │ └── EmpTest.java │ └── service/ │ └── EmpBalanceServiceTest.java ├── jun_java_plugins/ │ ├── doc/ │ │ ├── .keep │ │ ├── Shiro + JWT + Spring Boot Restful 简易教程.md │ │ ├── TODO.md │ │ ├── mis.md │ │ ├── shiro中OAuth2 集成.md │ │ └── 性能门禁.md │ ├── jun_algorithm/ │ │ ├── Java常用的八种排序算法与代码实现.md │ │ ├── README.md │ │ ├── pom.xml │ │ ├── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── jun/ │ │ │ │ │ └── plugin/ │ │ │ │ │ └── algorithm/ │ │ │ │ │ ├── array/ │ │ │ │ │ │ ├── GcdAndLcm.java │ │ │ │ │ │ ├── InverseArray.java │ │ │ │ │ │ ├── MonkeyEatFruit.java │ │ │ │ │ │ ├── SeriesSum.java │ │ │ │ │ │ ├── TestInverse.java │ │ │ │ │ │ ├── TwoSum.java │ │ │ │ │ │ ├── _026RemoveDuplicates.java │ │ │ │ │ │ ├── _040Climb.java │ │ │ │ │ │ └── _189RotateArray.java │ │ │ │ │ ├── datastructure/ │ │ │ │ │ │ ├── jcollections/ │ │ │ │ │ │ │ ├── IArrayList.java │ │ │ │ │ │ │ └── IList.java │ │ │ │ │ │ └── tree/ │ │ │ │ │ │ ├── AVLTree.java │ │ │ │ │ │ └── BTree.java │ │ │ │ │ ├── hash/ │ │ │ │ │ │ ├── ConsistentHashWithVN.java │ │ │ │ │ │ ├── ConsistentHashWithoutVN.java │ │ │ │ │ │ └── HashUtil.java │ │ │ │ │ ├── palindrome/ │ │ │ │ │ │ ├── PalindromeString.java │ │ │ │ │ │ └── _125ValidPalindrome.java │ │ │ │ │ ├── sort/ │ │ │ │ │ │ ├── BubbleSort.java │ │ │ │ │ │ ├── HalfSearch.java │ │ │ │ │ │ ├── HeapSort.java │ │ │ │ │ │ ├── InsertionSort.java │ │ │ │ │ │ ├── MergeSort.java │ │ │ │ │ │ ├── QuickSort.java │ │ │ │ │ │ ├── RadixSort.java │ │ │ │ │ │ ├── SelectSort.java │ │ │ │ │ │ └── ShellSort.java │ │ │ │ │ └── util/ │ │ │ │ │ └── GCD.java │ │ │ │ └── scala/ │ │ │ │ └── com/ │ │ │ │ └── scala/ │ │ │ │ ├── oj/ │ │ │ │ │ └── Knapsack.scala │ │ │ │ └── sort/ │ │ │ │ ├── BubbleSortScala.scala │ │ │ │ ├── HalfSearchScala.scala │ │ │ │ ├── HeapSortScala.scala │ │ │ │ ├── InsertSortScala.scala │ │ │ │ ├── MergeSortScala.scala │ │ │ │ ├── QuickSortScala.scala │ │ │ │ └── SelectSortScala.scala │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── algorithm/ │ │ │ ├── datastructure/ │ │ │ │ ├── jcollections/ │ │ │ │ │ └── IArrayListTest.java │ │ │ │ └── tree/ │ │ │ │ ├── AVLTreeTest.java │ │ │ │ └── BTreeTest.java │ │ │ └── sort/ │ │ │ ├── BubbleSortTest.java │ │ │ ├── HalfSearchTest.java │ │ │ ├── HeapSortTest.java │ │ │ ├── InsertionSortTest.java │ │ │ ├── MergeSortTest.java │ │ │ ├── QuickSortTest.java │ │ │ ├── RadixSortTest.java │ │ │ ├── SelectSortTest.java │ │ │ ├── ShellSortTest.java │ │ │ └── SortPerformanceTest.java │ │ └── 常用数据结构及其Java实现.md │ ├── jun_aliyun_sms/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── aliyunsms/ │ │ │ │ ├── config/ │ │ │ │ │ ├── AliSmsConfig.java │ │ │ │ │ └── SmsUtil.java │ │ │ │ ├── demo/ │ │ │ │ │ └── SmsDemo.java │ │ │ │ └── servlet/ │ │ │ │ ├── AliyunServlet.java │ │ │ │ └── SendServlet.java │ │ │ ├── resources/ │ │ │ │ └── log4j.properties │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ ├── index.jsp │ │ │ └── js/ │ │ │ └── jquery-3.4.1.js │ │ └── test/ │ │ └── java/ │ │ └── Test.java │ ├── jun_apache_commons/ │ │ ├── README.md │ │ ├── doc/ │ │ │ ├── commons-beanutils文档.md │ │ │ └── 工具类.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── commons/ │ │ │ │ └── util/ │ │ │ │ ├── CollectionUtil.java │ │ │ │ ├── Conf.java │ │ │ │ ├── Config.java │ │ │ │ ├── ConsistentHash.java │ │ │ │ ├── CsvUtil.java │ │ │ │ ├── DateUtil.java │ │ │ │ ├── Exceptions/ │ │ │ │ │ ├── ConnException.java │ │ │ │ │ └── SettingException.java │ │ │ │ ├── FileUtil.java │ │ │ │ ├── HashUtil.java │ │ │ │ ├── IoUtil.java │ │ │ │ ├── LangUtil.java │ │ │ │ ├── MessageUtils.java │ │ │ │ ├── RegexUtil.java │ │ │ │ ├── SecureUtil.java │ │ │ │ ├── Setting.java │ │ │ │ ├── Span.java │ │ │ │ ├── TaskScheduler.java │ │ │ │ ├── XmlUtil.java │ │ │ │ ├── ZhUtil.java │ │ │ │ ├── apiext/ │ │ │ │ │ ├── CollectionUtil.java │ │ │ │ │ ├── DateUtil.java │ │ │ │ │ ├── DynaBeanUtil.java │ │ │ │ │ ├── IOUtil.java │ │ │ │ │ ├── JSONUtil.java │ │ │ │ │ ├── LoggerHelp.java │ │ │ │ │ ├── NumberUtil.java │ │ │ │ │ ├── RedisClient.java │ │ │ │ │ ├── ReflectAsset.java │ │ │ │ │ ├── StringUtil.java │ │ │ │ │ └── XmlUtil.java │ │ │ │ ├── assistbean/ │ │ │ │ │ ├── EasyUINode.java │ │ │ │ │ ├── EasyUINodeConf.java │ │ │ │ │ └── NodeSax.java │ │ │ │ ├── callback/ │ │ │ │ │ ├── IConvertValue.java │ │ │ │ │ ├── IConvertValueDate.java │ │ │ │ │ ├── ValueEncoder.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── ConvertValueDate.java │ │ │ │ │ └── ConvertValueMsg.java │ │ │ │ ├── cli/ │ │ │ │ │ ├── HelloCli.java │ │ │ │ │ └── Mkdir.java │ │ │ │ ├── constant/ │ │ │ │ │ ├── HibernateConf.java │ │ │ │ │ ├── MathConvertType.java │ │ │ │ │ ├── SimpleDateFormatCase.java │ │ │ │ │ └── StrPattern.java │ │ │ │ ├── db/ │ │ │ │ │ ├── DbUtil.java │ │ │ │ │ ├── DsSetting.java │ │ │ │ │ ├── RsHandler.java │ │ │ │ │ ├── SqlRunner.java │ │ │ │ │ └── ds/ │ │ │ │ │ ├── C3p0Ds.java │ │ │ │ │ └── DruidDs.java │ │ │ │ ├── exception/ │ │ │ │ │ ├── ExceptAll.java │ │ │ │ │ ├── ParamInfoBean.java │ │ │ │ │ └── ProjectException.java │ │ │ │ ├── mail/ │ │ │ │ │ ├── MailAccount.java │ │ │ │ │ └── MailUtil.java │ │ │ │ ├── maths/ │ │ │ │ │ ├── Det.java │ │ │ │ │ ├── Matrix.java │ │ │ │ │ └── algorithm/ │ │ │ │ │ ├── MultiVariableLinearRegression.java │ │ │ │ │ └── Viterbi.java │ │ │ │ ├── net/ │ │ │ │ │ ├── AccessControl.java │ │ │ │ │ ├── Connector.java │ │ │ │ │ ├── HtmlUtil.java │ │ │ │ │ ├── HttpUtil.java │ │ │ │ │ ├── SSHUtil.java │ │ │ │ │ ├── SocketUtil.java │ │ │ │ │ └── URLUtil.java │ │ │ │ ├── network/ │ │ │ │ │ └── HttpClientUtils.java │ │ │ │ ├── test/ │ │ │ │ │ ├── MD5Tools.java │ │ │ │ │ ├── RegUtils.java │ │ │ │ │ └── SecurityCode.java │ │ │ │ ├── thread/ │ │ │ │ │ ├── ICancelHandle.java │ │ │ │ │ ├── RejectedExecutionForLog.java │ │ │ │ │ └── ThreadPool.java │ │ │ │ ├── threads/ │ │ │ │ │ ├── BaseRunnable.java │ │ │ │ │ ├── Executor.java │ │ │ │ │ └── SyncQueue.java │ │ │ │ ├── uid/ │ │ │ │ │ └── SimpleUidUtil.java │ │ │ │ ├── web/ │ │ │ │ │ ├── EasyUiAssist.java │ │ │ │ │ ├── OperateResult.java │ │ │ │ │ ├── PageAssist.java │ │ │ │ │ └── WebTools.java │ │ │ │ ├── wordSearch/ │ │ │ │ │ ├── StopChar.java │ │ │ │ │ └── Words.java │ │ │ │ └── workflow/ │ │ │ │ ├── Consumer.java │ │ │ │ ├── Ecosystem.java │ │ │ │ └── Producer.java │ │ │ └── resources/ │ │ │ ├── I18N/ │ │ │ │ ├── MessageBundleUtil.properties │ │ │ │ └── MessageBundleUtil_en_US.properties │ │ │ ├── application.properties │ │ │ ├── commonsUtil.properties │ │ │ ├── config/ │ │ │ │ ├── access-example.xml │ │ │ │ ├── c3p0-config-example.xml │ │ │ │ ├── db-example.setting │ │ │ │ ├── druid-example.setting │ │ │ │ └── mailAccount-example.setting │ │ │ ├── data/ │ │ │ │ ├── simplified2traditional.setting │ │ │ │ └── traditional2simplified.setting │ │ │ └── log4j.properties │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── commons/ │ │ │ ├── test/ │ │ │ │ └── Test.java │ │ │ └── util/ │ │ │ ├── CommonTest.java │ │ │ ├── DateUtilTest.java │ │ │ ├── SecureUtilTest.java │ │ │ ├── SettingTest.java │ │ │ ├── TestViterbi.java │ │ │ ├── ZhUtilTest.java │ │ │ └── wordSraech/ │ │ │ └── WordSearchTest.java │ │ └── resources/ │ │ ├── c3p0-config.xml │ │ ├── config/ │ │ │ ├── db.setting │ │ │ ├── druid.setting │ │ │ └── example.setting │ │ └── readme.txt │ ├── jun_compiler/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── compiler/ │ │ │ ├── JAbstractJavaFileObject.java │ │ │ ├── JCompileBytesClassLoader.java │ │ │ ├── JCompileResult.java │ │ │ ├── JMemoryJavaCompiler.java │ │ │ ├── JMemoryJavaFileManage.java │ │ │ ├── JMemoryJavaFileObject.java │ │ │ └── JStringJavaFileObject.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── compiler/ │ │ └── test/ │ │ └── CompileTest.java │ ├── jun_config_resources/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── resources/ │ │ │ │ ├── Constants.java │ │ │ │ ├── KeyConstants.java │ │ │ │ ├── PrefixConstants.java │ │ │ │ ├── ReadResources.java │ │ │ │ ├── Resources.java │ │ │ │ ├── SuffixConstants.java │ │ │ │ ├── ValueEncrypt.java │ │ │ │ ├── config/ │ │ │ │ │ ├── AbstractConfig.java │ │ │ │ │ ├── Config.java │ │ │ │ │ ├── GlobalConfig.java │ │ │ │ │ └── RefreshConfig.java │ │ │ │ ├── convert/ │ │ │ │ │ ├── Convert.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── BooleanConvert.java │ │ │ │ │ ├── CharConvert.java │ │ │ │ │ ├── DoubleConvert.java │ │ │ │ │ ├── FloatConvert.java │ │ │ │ │ ├── IntegerConvert.java │ │ │ │ │ ├── LongConvert.java │ │ │ │ │ └── StringConvert.java │ │ │ │ ├── core/ │ │ │ │ │ ├── AbstractResourceName.java │ │ │ │ │ ├── AbstractResources.java │ │ │ │ │ ├── AutoResources.java │ │ │ │ │ └── properties/ │ │ │ │ │ ├── DbProperties.java │ │ │ │ │ ├── GitProperties.java │ │ │ │ │ └── YamlProperties.java │ │ │ │ ├── db/ │ │ │ │ │ ├── DbUtils.java │ │ │ │ │ ├── JdbcUtils.java │ │ │ │ │ ├── datasource/ │ │ │ │ │ │ ├── AbstractDataSource.java │ │ │ │ │ │ └── DefaultDataSource.java │ │ │ │ │ └── select/ │ │ │ │ │ └── Select.java │ │ │ │ ├── encrypt/ │ │ │ │ │ └── ResourceEncrypt.java │ │ │ │ ├── extend/ │ │ │ │ │ ├── DbResources.java │ │ │ │ │ ├── GitResources.java │ │ │ │ │ ├── PropertiesResources.java │ │ │ │ │ ├── XmlResources.java │ │ │ │ │ └── YamlResources.java │ │ │ │ ├── repository/ │ │ │ │ │ ├── RemoteRepository.java │ │ │ │ │ ├── git/ │ │ │ │ │ │ ├── GitBuilder.java │ │ │ │ │ │ ├── GitCore.java │ │ │ │ │ │ └── config/ │ │ │ │ │ │ └── GitConfig.java │ │ │ │ │ └── svn/ │ │ │ │ │ └── package-info.java │ │ │ │ └── utils/ │ │ │ │ ├── AES.java │ │ │ │ ├── Args.java │ │ │ │ ├── ArrayUtils.java │ │ │ │ ├── FileUtils.java │ │ │ │ ├── ResourcesUtils.java │ │ │ │ └── StringUtils.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── spring-configuration-metadata.json │ │ └── test/ │ │ ├── java/ │ │ │ └── Test.java │ │ └── resources/ │ │ ├── application-release.yml │ │ ├── application.yml │ │ ├── properties_test.properties │ │ └── xml_test.xml │ ├── jun_crawler/ │ │ ├── README.md │ │ ├── doc/ │ │ │ ├── XXL-CRAWLER官方文档.md │ │ │ └── XXL-CRAWLER架构图.pptx │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── crawler/ │ │ │ ├── XxlCrawler.java │ │ │ ├── annotation/ │ │ │ │ ├── PageFieldSelect.java │ │ │ │ └── PageSelect.java │ │ │ ├── conf/ │ │ │ │ └── XxlCrawlerConf.java │ │ │ ├── exception/ │ │ │ │ └── XxlCrawlerException.java │ │ │ ├── loader/ │ │ │ │ ├── PageLoader.java │ │ │ │ └── strategy/ │ │ │ │ ├── HtmlUnitPageLoader.java │ │ │ │ ├── JsoupPageLoader.java │ │ │ │ └── SeleniumPhantomjsPageLoader.java │ │ │ ├── model/ │ │ │ │ ├── PageRequest.java │ │ │ │ └── RunConf.java │ │ │ ├── parser/ │ │ │ │ ├── PageParser.java │ │ │ │ └── strategy/ │ │ │ │ └── NonPageParser.java │ │ │ ├── proxy/ │ │ │ │ ├── ProxyMaker.java │ │ │ │ └── strategy/ │ │ │ │ ├── RandomProxyMaker.java │ │ │ │ └── RoundProxyMaker.java │ │ │ ├── rundata/ │ │ │ │ ├── RunData.java │ │ │ │ └── strategy/ │ │ │ │ └── LocalRunData.java │ │ │ ├── thread/ │ │ │ │ └── CrawlerThread.java │ │ │ └── util/ │ │ │ ├── FieldReflectionUtil.java │ │ │ ├── FileUtil.java │ │ │ ├── IOUtil.java │ │ │ ├── JsoupUtil.java │ │ │ ├── ProxyIpUtil.java │ │ │ ├── RegexUtil.java │ │ │ └── UrlUtil.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── crawler/ │ │ │ └── test/ │ │ │ ├── XxlCrawlerTest.java │ │ │ ├── XxlCrawlerTest02.java │ │ │ ├── XxlCrawlerTest03.java │ │ │ ├── XxlCrawlerTest04.java │ │ │ ├── XxlCrawlerTest05.java │ │ │ ├── XxlCrawlerTest06.java │ │ │ ├── XxlCrawlerTest07.java │ │ │ ├── XxlCrawlerTest08.java │ │ │ ├── XxlCrawlerTest09.java │ │ │ └── util/ │ │ │ ├── FileUtilTest.java │ │ │ ├── IOUtilTest.java │ │ │ ├── JsoupUtilTest.java │ │ │ ├── ProxyIpUtilTest.java │ │ │ ├── RegexUtilTest.java │ │ │ └── UrlUtilTest.java │ │ └── resources/ │ │ └── log4j.properties │ ├── jun_datasource/ │ │ ├── README.md │ │ ├── doc/ │ │ │ ├── c3po.doc │ │ │ └── druid.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ ├── c3p0-config.xml │ │ │ ├── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── datasource/ │ │ │ │ ├── DataSourceC3p0.java │ │ │ │ ├── DataSourceDBCP.java │ │ │ │ ├── DataSourceDruid.java │ │ │ │ ├── DataSourceUtil.java │ │ │ │ └── DruidPoolConnection.java │ │ │ ├── dbcp.properties │ │ │ ├── druid.properties │ │ │ ├── jdbc.properties │ │ │ └── sqlite.properties │ │ ├── resources/ │ │ │ ├── bonecp.properties │ │ │ ├── c3p0-config.xml │ │ │ ├── dbcp.properties │ │ │ ├── druid.properties │ │ │ ├── hikari.properties │ │ │ ├── jdbc.properties │ │ │ ├── log4j.properties │ │ │ ├── spring-bonecp.xml │ │ │ └── sqlite.properties │ │ └── webapp/ │ │ ├── WEB-INF/ │ │ │ └── web.xml │ │ └── index.jsp │ ├── jun_db_document/ │ │ ├── .gitignore │ │ ├── doc/ │ │ │ ├── .keep │ │ │ ├── excel-sample.xls │ │ │ └── html-sample.html │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── cn/ │ │ │ └── wuwenyao/ │ │ │ └── db/ │ │ │ └── doc/ │ │ │ └── generator/ │ │ │ ├── Application.java │ │ │ ├── config/ │ │ │ │ ├── ApplicationConfig.java │ │ │ │ ├── GeneratorConfig.java │ │ │ │ └── GeneratorConfiguration.java │ │ │ ├── dao/ │ │ │ │ ├── DbInfoDao.java │ │ │ │ └── impl/ │ │ │ │ ├── PackageInfo.java │ │ │ │ └── dbinfo/ │ │ │ │ ├── AbstractDbInfoDao.java │ │ │ │ └── mysql/ │ │ │ │ ├── GetTableInfoTask.java │ │ │ │ ├── MysqlDbInfoDao.java │ │ │ │ ├── TableFieldInfoRowMapper.java │ │ │ │ └── TableInfoRowMapper.java │ │ │ ├── entity/ │ │ │ │ ├── TableFieldInfo.java │ │ │ │ ├── TableInfo.java │ │ │ │ └── TableKeyInfo.java │ │ │ ├── enums/ │ │ │ │ ├── DbType.java │ │ │ │ └── TargetFileType.java │ │ │ ├── service/ │ │ │ │ ├── GeneratorService.java │ │ │ │ └── impl/ │ │ │ │ ├── AbstractGeneratorServiceImpl.java │ │ │ │ ├── ExcelGeneratorServiceImpl.java │ │ │ │ ├── HtmlGeneratorServiceImpl.java │ │ │ │ └── WordGeneratorServiceImpl.java │ │ │ └── utils/ │ │ │ └── FreemarkerUtils.java │ │ └── resources/ │ │ ├── application.yml │ │ ├── htmlTemplate.html │ │ ├── htmlTemplate2.html │ │ └── wordTemplate.ftl │ ├── jun_dbutil/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── dbutils/ │ │ │ │ ├── GetSQL.java │ │ │ │ ├── JdbcUtils.java │ │ │ │ ├── db/ │ │ │ │ │ ├── info/ │ │ │ │ │ │ └── model/ │ │ │ │ │ │ ├── Column.java │ │ │ │ │ │ └── Table.java │ │ │ │ │ └── utils/ │ │ │ │ │ ├── .svn/ │ │ │ │ │ │ ├── all-wcprops │ │ │ │ │ │ ├── entries │ │ │ │ │ │ ├── format │ │ │ │ │ │ └── text-base/ │ │ │ │ │ │ ├── DBAccess.java.svn-base │ │ │ │ │ │ ├── DBmeta.java.svn-base │ │ │ │ │ │ ├── DbAlter.java.svn-base │ │ │ │ │ │ ├── DbUtilsTest.java.svn-base │ │ │ │ │ │ └── jdbc.properties.svn-base │ │ │ │ │ ├── DBAccess.java │ │ │ │ │ ├── MysqlDBAlter.java │ │ │ │ │ └── MysqlDBmeta.java │ │ │ │ ├── dbutil/ │ │ │ │ │ ├── BeanHandler.java │ │ │ │ │ ├── BeanListHandler.java │ │ │ │ │ ├── DBUtil.java │ │ │ │ │ └── HnadlerFactory.java │ │ │ │ ├── dto/ │ │ │ │ │ └── UserDto.java │ │ │ │ ├── hander/ │ │ │ │ │ ├── BeanHandler2.java │ │ │ │ │ ├── BeanListHandler2.java │ │ │ │ │ └── HnadlerFactory.java │ │ │ │ ├── jdbc/ │ │ │ │ │ ├── JdbcUtils.java │ │ │ │ │ └── TxQueryRunner.java │ │ │ │ ├── metadata/ │ │ │ │ │ ├── TestDatabaseMetaData.java │ │ │ │ │ └── TestMetaData.java │ │ │ │ ├── test/ │ │ │ │ │ ├── DBUtil.java │ │ │ │ │ ├── JdbcByPropertiesUtil.java │ │ │ │ │ └── JdbcUtil.java │ │ │ │ └── utils/ │ │ │ │ ├── CommonUtil.java │ │ │ │ ├── DbBuilder.java │ │ │ │ └── PropertiesConfig.java │ │ │ ├── resources/ │ │ │ │ ├── application.properties │ │ │ │ ├── dbcp.properties │ │ │ │ ├── jdbc.properties │ │ │ │ ├── log4j.properties │ │ │ │ ├── log4j.xml │ │ │ │ ├── t_account.sql │ │ │ │ └── t_user.sql │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ └── index.jsp │ │ └── test/ │ │ └── java/ │ │ ├── AccountDao.java │ │ ├── DBAlterTest.java │ │ ├── DBUtilTest2.java │ │ ├── DBUtilTest6.java │ │ ├── DbUtilTest.java │ │ ├── HandlerTest.java │ │ ├── User.java │ │ └── jdbc/ │ │ ├── HandlerTest.java │ │ ├── README.md │ │ └── User.java │ ├── jun_designpattern/ │ │ ├── PRINCIPLE.md │ │ ├── README.md │ │ ├── UML.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ ├── abstractfactory/ │ │ │ ├── AMDCpu.java │ │ │ ├── AMDMainBoard.java │ │ │ ├── AbstractFactory.java │ │ │ ├── ComputerEngineer.java │ │ │ ├── CpuApi.java │ │ │ ├── InterCpu.java │ │ │ ├── InterMainBoard.java │ │ │ ├── MainBoardApi.java │ │ │ ├── SchemeAMD.java │ │ │ ├── SchemeInter.java │ │ │ ├── TestAbstractFactory.java │ │ │ └── summary.txt │ │ ├── adapter/ │ │ │ ├── Adaptee.java │ │ │ ├── AdapteeImp.java │ │ │ ├── Adapter.java │ │ │ ├── DoubleSidedAdapter.java │ │ │ ├── Target.java │ │ │ ├── TargetImp.java │ │ │ ├── TestAdapter.java │ │ │ └── summary.txt │ │ ├── bridge/ │ │ │ ├── Abstraction.java │ │ │ ├── ConcreteImplementorA.java │ │ │ ├── ConcreteImplementorB.java │ │ │ ├── Implementor.java │ │ │ ├── RefinedAbstraction.java │ │ │ └── summary.txt │ │ ├── builder/ │ │ │ ├── ABuilder.java │ │ │ ├── BBuilder.java │ │ │ ├── Builder.java │ │ │ ├── Director.java │ │ │ ├── Product.java │ │ │ ├── TestBuilder.java │ │ │ └── summary.txt │ │ ├── command/ │ │ │ ├── Client.java │ │ │ ├── Command.java │ │ │ ├── ConcreteCommand.java │ │ │ ├── Invoker.java │ │ │ ├── Receiver.java │ │ │ └── summary.txt │ │ ├── composite/ │ │ │ ├── Component.java │ │ │ ├── Composite.java │ │ │ ├── Leaf.java │ │ │ └── summary.txt │ │ ├── decorator/ │ │ │ ├── Component.java │ │ │ ├── ConcreteComponentA.java │ │ │ ├── ConcreteDecoratorA.java │ │ │ ├── Decorator.java │ │ │ ├── Test.java │ │ │ └── summary.txt │ │ ├── facade/ │ │ │ ├── AsusMainBoard.java │ │ │ ├── CpuApi.java │ │ │ ├── Facade.java │ │ │ ├── InterCpu.java │ │ │ ├── MainBoardApi.java │ │ │ ├── MemoryApi.java │ │ │ ├── SamsungMemory.java │ │ │ ├── TestFacade.java │ │ │ └── summary.txt │ │ ├── factorymethod/ │ │ │ ├── ConcreteCreator.java │ │ │ ├── Creator.java │ │ │ ├── Product.java │ │ │ ├── ProductA.java │ │ │ ├── ProductB.java │ │ │ ├── TestFactoryMethod.java │ │ │ └── summary.txt │ │ ├── flyweight/ │ │ │ ├── ConcreteFlyweight.java │ │ │ ├── FlyeightFactory.java │ │ │ ├── Flyweight.java │ │ │ ├── UnsharedConcreteFlyweight.java │ │ │ └── summary.txt │ │ ├── interpreter/ │ │ │ ├── AbstractExpression.java │ │ │ ├── Context.java │ │ │ ├── NonterminalExpression.java │ │ │ ├── TerminalExpression.java │ │ │ └── summary.txt │ │ ├── iterator/ │ │ │ ├── Aggregate.java │ │ │ ├── ConcreteAggregate.java │ │ │ ├── ConcreteIterator.java │ │ │ ├── Iterator.java │ │ │ ├── TestIterator.java │ │ │ └── summary.txt │ │ ├── mediator/ │ │ │ ├── Colleague.java │ │ │ ├── ConcreteColleagueA.java │ │ │ ├── ConcreteColleagueB.java │ │ │ ├── ConcreteMediator.java │ │ │ ├── Mediator.java │ │ │ └── summary.txt │ │ ├── memento/ │ │ │ ├── Caretaker.java │ │ │ ├── Memento.java │ │ │ ├── Originator.java │ │ │ └── summary.txt │ │ ├── observer/ │ │ │ ├── ConcreteObserver.java │ │ │ ├── ConcreteSubject.java │ │ │ ├── NewsPaper.java │ │ │ ├── Observer.java │ │ │ ├── Reader.java │ │ │ ├── Subject.java │ │ │ ├── TestObserver.java │ │ │ └── summary.txt │ │ ├── prototype/ │ │ │ ├── Client.java │ │ │ ├── ConcretePrototype1.java │ │ │ ├── ConcretePrototype2.java │ │ │ ├── Prototype.java │ │ │ └── summary.txt │ │ ├── proxy/ │ │ │ ├── DynamicProxy.java │ │ │ ├── Proxy.java │ │ │ ├── RealSubject.java │ │ │ ├── Subject.java │ │ │ ├── Test.java │ │ │ └── summary.txt │ │ ├── simplefactory/ │ │ │ ├── Api.java │ │ │ ├── ApiFactory.java │ │ │ ├── ApiImpA.java │ │ │ ├── ApiImpB.java │ │ │ ├── TestFactory.java │ │ │ ├── api_condition.propertites │ │ │ └── summary.txt │ │ ├── singleton/ │ │ │ ├── DoubleCheckSingleton.java │ │ │ ├── EnumSingleton.java │ │ │ ├── HungrySingleton.java │ │ │ ├── LazyHolderSingleton.java │ │ │ ├── LazySingleton.java │ │ │ ├── TestSingleton.java │ │ │ └── summary.txt │ │ ├── state/ │ │ │ ├── ConcreteState.java │ │ │ ├── ConcreteStateA.java │ │ │ ├── Context.java │ │ │ ├── State.java │ │ │ └── summary.txt │ │ ├── strategy/ │ │ │ ├── ConcreteStrategyA.java │ │ │ ├── ConcreteStrategyB.java │ │ │ ├── Context.java │ │ │ ├── Strategy.java │ │ │ ├── Test.java │ │ │ └── summary.txt │ │ ├── templatemethod/ │ │ │ ├── AbstractClass.java │ │ │ ├── AbstractTemplate.java │ │ │ ├── CallBackTemplate.java │ │ │ ├── Callback.java │ │ │ ├── ConcreteClass.java │ │ │ └── summary.txt │ │ └── visitor/ │ │ ├── ConcreteElementA.java │ │ ├── ConcreteElementB.java │ │ ├── ConcreteVisitor1.java │ │ ├── Element.java │ │ ├── ObjectStructure.java │ │ ├── TestVisitor.java │ │ ├── Visitor.java │ │ └── summary.txt │ ├── jun_drools/ │ │ ├── README.md │ │ └── pom.xml │ ├── jun_easycaptcha/ │ │ ├── README.md │ │ ├── pom.xml │ │ ├── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── wf/ │ │ │ │ └── captcha/ │ │ │ │ ├── ArithmeticCaptcha.java │ │ │ │ ├── ChineseCaptcha.java │ │ │ │ ├── ChineseGifCaptcha.java │ │ │ │ ├── GifCaptcha.java │ │ │ │ ├── SpecCaptcha.java │ │ │ │ ├── base/ │ │ │ │ │ ├── ArithmeticCaptchaAbstract.java │ │ │ │ │ ├── Captcha.java │ │ │ │ │ ├── ChineseCaptchaAbstract.java │ │ │ │ │ └── Randoms.java │ │ │ │ ├── servlet/ │ │ │ │ │ └── CaptchaServlet.java │ │ │ │ └── utils/ │ │ │ │ ├── CaptchaUtil.java │ │ │ │ ├── Encoder.java │ │ │ │ ├── FileUtil.java │ │ │ │ ├── FontsUtil.java │ │ │ │ ├── GifEncoder.java │ │ │ │ └── Quant.java │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── wf/ │ │ │ └── captcha/ │ │ │ └── CaptchaTest.java │ │ └── web/ │ │ ├── WEB-INF/ │ │ │ └── web.xml │ │ └── index.html │ ├── jun_ehcache/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── ehcache/ │ │ │ └── EhcacheTest.java │ │ └── resources/ │ │ └── ehcache.xml │ ├── jun_email/ │ │ ├── README.md │ │ ├── doc/ │ │ │ └── myemail.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ ├── com/ │ │ │ │ │ └── jun/ │ │ │ │ │ ├── plugin/ │ │ │ │ │ │ ├── base/ │ │ │ │ │ │ │ └── email/ │ │ │ │ │ │ │ ├── commons_email/ │ │ │ │ │ │ │ │ └── EmailHtmlTest.java │ │ │ │ │ │ │ ├── javamail/ │ │ │ │ │ │ │ │ ├── MailTest.java │ │ │ │ │ │ │ │ ├── MailTest2.java │ │ │ │ │ │ │ │ ├── MailUtil.java │ │ │ │ │ │ │ │ ├── MimeMessageDTO.java │ │ │ │ │ │ │ │ ├── PopupAuthenticator.java │ │ │ │ │ │ │ │ ├── SMTPUtil.java │ │ │ │ │ │ │ │ └── a.docx │ │ │ │ │ │ │ ├── javamail2/ │ │ │ │ │ │ │ │ ├── JavaMail.java │ │ │ │ │ │ │ │ ├── JavaMailWithAttachment.java │ │ │ │ │ │ │ │ ├── mail_imap.java │ │ │ │ │ │ │ │ ├── mail_pop3.java │ │ │ │ │ │ │ │ ├── sendMail.java │ │ │ │ │ │ │ │ └── smtp.properties │ │ │ │ │ │ │ └── web/ │ │ │ │ │ │ │ ├── MailServlet.java │ │ │ │ │ │ │ └── SendEmail.java │ │ │ │ │ │ ├── itcast/ │ │ │ │ │ │ │ └── javamail2/ │ │ │ │ │ │ │ ├── Base64Util.java │ │ │ │ │ │ │ ├── Demo1.java │ │ │ │ │ │ │ ├── Demo2.java │ │ │ │ │ │ │ └── Demo3.java │ │ │ │ │ │ ├── mail/ │ │ │ │ │ │ │ ├── CommonMail.java │ │ │ │ │ │ │ ├── File.html │ │ │ │ │ │ │ ├── JavaMail.java │ │ │ │ │ │ │ ├── SendAttechmentDemo.java │ │ │ │ │ │ │ ├── SendMail.java │ │ │ │ │ │ │ ├── SendMail2.java │ │ │ │ │ │ │ └── SendMailDemo.java │ │ │ │ │ │ ├── net/ │ │ │ │ │ │ │ └── mail/ │ │ │ │ │ │ │ └── mail/ │ │ │ │ │ │ │ ├── SendAttechmentDemo.java │ │ │ │ │ │ │ └── SendMailDemo.java │ │ │ │ │ │ └── plugin/ │ │ │ │ │ │ ├── email/ │ │ │ │ │ │ │ ├── commons_email/ │ │ │ │ │ │ │ │ └── EmailHtml.java │ │ │ │ │ │ │ ├── demo/ │ │ │ │ │ │ │ │ ├── dto/ │ │ │ │ │ │ │ │ │ └── MimeMessageDTO.java │ │ │ │ │ │ │ │ ├── test/ │ │ │ │ │ │ │ │ │ ├── MailUtils.java │ │ │ │ │ │ │ │ │ └── mailTest.java │ │ │ │ │ │ │ │ └── util/ │ │ │ │ │ │ │ │ ├── MailUtil.java │ │ │ │ │ │ │ │ ├── PopupAuthenticator.java │ │ │ │ │ │ │ │ └── SMTPUtil.java │ │ │ │ │ │ │ ├── java_mail/ │ │ │ │ │ │ │ │ ├── JavaMail.java │ │ │ │ │ │ │ │ ├── JavaMailWithAttachment.java │ │ │ │ │ │ │ │ ├── mail_imap.java │ │ │ │ │ │ │ │ ├── mail_pop3.java │ │ │ │ │ │ │ │ ├── sendMail.java │ │ │ │ │ │ │ │ └── smtp.properties │ │ │ │ │ │ │ ├── send.jsp │ │ │ │ │ │ │ ├── sendmail.jsp │ │ │ │ │ │ │ └── spring_email/ │ │ │ │ │ │ │ ├── simple.txt │ │ │ │ │ │ │ ├── spring_email.txt │ │ │ │ │ │ │ └── spring_html.txt │ │ │ │ │ │ └── me/ │ │ │ │ │ │ ├── MyEmail.java │ │ │ │ │ │ └── SendMailException.java │ │ │ │ │ └── web/ │ │ │ │ │ ├── biz/ │ │ │ │ │ │ └── mail/ │ │ │ │ │ │ ├── MyAuthentication.java │ │ │ │ │ │ ├── SendEmail.java │ │ │ │ │ │ ├── Transport2.java │ │ │ │ │ │ ├── TransportWithAuthentication.java │ │ │ │ │ │ └── html/ │ │ │ │ │ │ ├── MailTest1.java │ │ │ │ │ │ ├── MyAuthenticator.java │ │ │ │ │ │ ├── ReadHTML.java │ │ │ │ │ │ └── email2.html │ │ │ │ │ └── utils/ │ │ │ │ │ └── mail/ │ │ │ │ │ ├── EmailConst.java │ │ │ │ │ └── EmailHandle.java │ │ │ │ └── smtp.properties │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ ├── autoMail.md │ │ │ └── index.html │ │ └── test/ │ │ ├── java/ │ │ │ ├── App_1SendMail.java │ │ │ ├── App_2SendWithImg.java │ │ │ ├── App_3ImgAndAtta.java │ │ │ ├── EmailSender.java │ │ │ ├── Mail2.java │ │ │ ├── MailServlet.java │ │ │ ├── MailUtils.java │ │ │ ├── Mail_1_normal.java │ │ │ ├── Mail_2_img.java │ │ │ ├── Mail_3_imgAndAtta.java │ │ │ ├── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── me/ │ │ │ │ └── MyEmailTest.java │ │ │ └── sendMail.java │ │ └── resources/ │ │ ├── register.html │ │ └── register.jetx │ ├── jun_excel/ │ │ ├── README.md │ │ ├── doc/ │ │ │ └── sanri-excel-poi/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── sanri/ │ │ │ │ │ ├── csv/ │ │ │ │ │ │ └── CsvUtil.java │ │ │ │ │ └── excel/ │ │ │ │ │ ├── ExcelException.java │ │ │ │ │ └── poi/ │ │ │ │ │ ├── ColumnConfig.java │ │ │ │ │ ├── ColumnConfigUtil.java │ │ │ │ │ ├── ExcelExportWriter.java │ │ │ │ │ ├── ExcelImportUtil.java │ │ │ │ │ ├── annotation/ │ │ │ │ │ │ ├── ExcelColumn.java │ │ │ │ │ │ ├── ExcelExport.java │ │ │ │ │ │ └── ExcelImport.java │ │ │ │ │ ├── converter/ │ │ │ │ │ │ ├── DefaultBooleanStringConverter.java │ │ │ │ │ │ ├── ExcelConverter.java │ │ │ │ │ │ └── NULLConverter.java │ │ │ │ │ ├── enums/ │ │ │ │ │ │ ├── CellType.java │ │ │ │ │ │ └── ExcelVersion.java │ │ │ │ │ └── handler/ │ │ │ │ │ ├── CollectErrorRowHandler.java │ │ │ │ │ └── ErrorRowHandler.java │ │ │ │ └── resources/ │ │ │ │ └── log4j.properties │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ ├── test/ │ │ │ │ │ ├── ExcelTest.java │ │ │ │ │ └── RandomUtil.java │ │ │ │ └── vo/ │ │ │ │ ├── ConverterBean.java │ │ │ │ ├── ExtendSimple.java │ │ │ │ ├── GenderConverter.java │ │ │ │ └── Simple.java │ │ │ └── test-resources/ │ │ │ ├── data/ │ │ │ │ ├── address.string │ │ │ │ ├── city.min.json │ │ │ │ ├── idcodearea.json │ │ │ │ └── job │ │ │ └── log4j.properties │ │ ├── easyexcel.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── resources/ │ │ │ │ └── application.properties │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ └── index.jsp │ │ └── test/ │ │ └── resources/ │ │ ├── data.xlsx │ │ └── logback-test.xml │ ├── jun_fileupload/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── file/ │ │ │ ├── BreakDown.java │ │ │ ├── CommonDown.java │ │ │ ├── FileTest.java │ │ │ ├── GetURL.java │ │ │ ├── GetWebPages.java │ │ │ ├── MultiThreadDown.java │ │ │ ├── cos/ │ │ │ │ ├── BreakDown.java │ │ │ │ └── CommonDown.java │ │ │ ├── download/ │ │ │ │ └── test/ │ │ │ │ ├── DownloadStartup.java │ │ │ │ └── DownloadTask.java │ │ │ ├── file_server/ │ │ │ │ ├── File_client.java │ │ │ │ └── File_server.java │ │ │ ├── fileupload/ │ │ │ │ ├── FileHelper.java │ │ │ │ ├── FileUpload.java │ │ │ │ ├── FileUtil.java │ │ │ │ ├── FileUtilTest.java │ │ │ │ ├── ImageServlet.java │ │ │ │ ├── UploadHelper.java │ │ │ │ ├── UploadServlet2.java │ │ │ │ ├── UploadUtil.java │ │ │ │ ├── UploadUtils.java │ │ │ │ └── Uploadify.java │ │ │ ├── 多线程下载Demo.java │ │ │ └── 断点下载Demo.java │ │ ├── resources/ │ │ │ └── configuration.xml │ │ └── webapp/ │ │ ├── WEB-INF/ │ │ │ └── web.xml │ │ ├── index.jsp │ │ ├── input_demo.html │ │ └── uploadTest.html │ ├── jun_freemarker/ │ │ ├── README.md │ │ ├── freemarker.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ ├── freemark/ │ │ │ │ │ ├── code/ │ │ │ │ │ │ ├── conf/ │ │ │ │ │ │ │ ├── PropertiesConfig.java │ │ │ │ │ │ │ └── PropertiesService.java │ │ │ │ │ │ ├── create/ │ │ │ │ │ │ │ └── CreateJava.java │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ ├── Columns.java │ │ │ │ │ │ │ └── Table.java │ │ │ │ │ │ ├── fm/ │ │ │ │ │ │ │ └── FreeMarker.java │ │ │ │ │ │ └── sql/ │ │ │ │ │ │ └── SelectTableSql.java │ │ │ │ │ ├── demo/ │ │ │ │ │ │ ├── FreeMarkerDemo.java │ │ │ │ │ │ ├── FreemarkerAutoCodeDemo.java │ │ │ │ │ │ └── User.java │ │ │ │ │ └── view/ │ │ │ │ │ └── FreeMarkerView.java │ │ │ │ └── freemarker/ │ │ │ │ ├── ClientTest.java │ │ │ │ ├── Example.java │ │ │ │ ├── Food.java │ │ │ │ ├── FreeMarkerView.java │ │ │ │ ├── FreemarkerTest.java │ │ │ │ ├── SystemDateDirective.java │ │ │ │ ├── TextCutDirective.java │ │ │ │ ├── User.java │ │ │ │ ├── common.ftl │ │ │ │ ├── test01.ftl │ │ │ │ ├── test01_out.txt │ │ │ │ ├── test02.ftl │ │ │ │ ├── test02_out.txt │ │ │ │ ├── test03.ftl │ │ │ │ ├── test03_out.txt │ │ │ │ ├── test04.ftl │ │ │ │ ├── test04_out.txt │ │ │ │ ├── test05_out.txt │ │ │ │ └── user.ftl │ │ │ ├── resources/ │ │ │ │ ├── application.properties │ │ │ │ ├── info.ftl │ │ │ │ ├── log4j.properties │ │ │ │ └── templates/ │ │ │ │ ├── AutoCodeDemo.ftl │ │ │ │ ├── common.ftl │ │ │ │ ├── otherFreeMarker.ftl │ │ │ │ ├── stringFreeMarker.ftl │ │ │ │ ├── test01.ftl │ │ │ │ ├── test02.ftl │ │ │ │ ├── test03.ftl │ │ │ │ ├── test04.ftl │ │ │ │ ├── test05.ftl │ │ │ │ └── user.ftl │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ └── index.jsp │ │ └── test/ │ │ └── java/ │ │ └── FreemarkerTest.java │ ├── jun_guava/ │ │ ├── .gitignore │ │ ├── README.txt │ │ ├── doc/ │ │ │ ├── basic-utilities-defaults.md │ │ │ ├── basic-utilities-object-methods.md │ │ │ ├── basic-utilities-ordering.md │ │ │ ├── basic-utilities-preconditions.md │ │ │ ├── basic-utilities-throwables.md │ │ │ ├── basic-utilities-using-avoiding-null.md │ │ │ ├── caches.md │ │ │ ├── collections-extension-utilities.md │ │ │ ├── collections-immutable-collections.md │ │ │ ├── collections-new-collection-types.md │ │ │ ├── collections-utility-classes.md │ │ │ ├── concurrency-listenablefuture.md │ │ │ ├── concurrency-service.md │ │ │ ├── eventbus.md │ │ │ ├── functional-idioms.md │ │ │ ├── hash.md │ │ │ ├── io.md │ │ │ ├── math.md │ │ │ ├── networking.md │ │ │ ├── primitives.md │ │ │ ├── ranges.md │ │ │ ├── reflection.md │ │ │ └── strings.md │ │ ├── guava.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── guava/ │ │ │ ├── GuavaCollections2.java │ │ │ └── UpperCaseFunction.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── guava/ │ │ ├── BaseTest.java │ │ ├── CollectionTest.java │ │ ├── ConcurrencyTest.java │ │ ├── IoTest.java │ │ ├── NetTest.java │ │ ├── NewStuffInR08Test.java │ │ ├── basicutilities/ │ │ │ ├── DefaultsTest.java │ │ │ ├── ObjectsTest.java │ │ │ ├── OptionalTest.java │ │ │ ├── OrderingTest.java │ │ │ ├── PreconditionsTest.java │ │ │ └── ThrowablesTest.java │ │ └── collections/ │ │ ├── CollectionUtilitiesTest.java │ │ └── ImmutableCollectionsTest.java │ ├── jun_guice/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── guice/ │ │ │ ├── app/ │ │ │ │ ├── AppModule.java │ │ │ │ └── ExceptionMethodInterceptor.java │ │ │ ├── item/ │ │ │ │ ├── Item.java │ │ │ │ ├── ItemService.java │ │ │ │ ├── ItemServiceImpl1.java │ │ │ │ └── ItemServiceImpl2.java │ │ │ ├── named/ │ │ │ │ ├── NamedService.java │ │ │ │ ├── NamedServiceImpl1.java │ │ │ │ └── NamedServiceImpl2.java │ │ │ ├── order/ │ │ │ │ ├── Order.java │ │ │ │ ├── OrderService.java │ │ │ │ └── OrderServiceImpl.java │ │ │ ├── price/ │ │ │ │ └── PriceService.java │ │ │ └── runtime/ │ │ │ ├── RuntimeService.java │ │ │ └── RuntimeServiceImpl.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── guice/ │ │ │ └── AppModuleTest.java │ │ └── resources/ │ │ └── log4j.properties │ ├── jun_gzip/ │ │ ├── README.md │ │ ├── jun_compress_client/ │ │ │ ├── mvnw │ │ │ ├── mvnw.cmd │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── jun/ │ │ │ │ │ └── plugin/ │ │ │ │ │ └── gzip/ │ │ │ │ │ └── compressclient/ │ │ │ │ │ ├── CompressclientApplication.java │ │ │ │ │ ├── aop/ │ │ │ │ │ │ ├── TestAop.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ └── TestAopImpl.java │ │ │ │ │ ├── compress/ │ │ │ │ │ │ ├── CompressUtils.java │ │ │ │ │ │ └── Main.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── TestController.java │ │ │ │ │ ├── encrypt/ │ │ │ │ │ │ └── AESUtils.java │ │ │ │ │ └── http/ │ │ │ │ │ ├── HttpClient.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── HttpClientImpl.java │ │ │ │ └── resources/ │ │ │ │ └── application.properties │ │ │ └── test/ │ │ │ └── java/ │ │ │ ├── Base64Utils.java │ │ │ ├── GzipTest.java │ │ │ ├── SplitUtil.java │ │ │ ├── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── gzip/ │ │ │ │ └── compressclient/ │ │ │ │ └── CompressclientApplicationTests.java │ │ │ └── test.html │ │ ├── jun_springboot_server/ │ │ │ ├── mvnw │ │ │ ├── mvnw.cmd │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── jun/ │ │ │ │ │ └── plugin/ │ │ │ │ │ └── gzip/ │ │ │ │ │ └── springboot/ │ │ │ │ │ ├── HelloController.java │ │ │ │ │ ├── MyspringbootApplication.java │ │ │ │ │ ├── compress/ │ │ │ │ │ │ └── CompressUtils.java │ │ │ │ │ └── encrypt/ │ │ │ │ │ └── AESUtils.java │ │ │ │ └── resources/ │ │ │ │ └── application.properties │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── gzip/ │ │ │ └── springboot/ │ │ │ └── SpringbootApplicationTests.java │ │ └── pom.xml │ ├── jun_hibernate/ │ │ ├── .keep │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── hibernate/ │ │ │ │ ├── App.java │ │ │ │ ├── dao/ │ │ │ │ │ ├── IEmpDao.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── EmpDao.java │ │ │ │ ├── modal/ │ │ │ │ │ ├── DeptEntity.java │ │ │ │ │ └── EmpEntity.java │ │ │ │ └── service/ │ │ │ │ ├── IEmpService.java │ │ │ │ └── impl/ │ │ │ │ └── EmpService.java │ │ │ └── resources/ │ │ │ ├── hbm/ │ │ │ │ ├── DeptEntity.hbm.xml │ │ │ │ └── EmpEntity.hbm.xml │ │ │ ├── hibernate.cfg.xml │ │ │ └── spring-core.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── hibernate/ │ │ ├── AppTest.java │ │ ├── test1.java │ │ └── test2.java │ ├── jun_httpclient/ │ │ ├── README.md │ │ ├── doc/ │ │ │ └── OkHttp.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ ├── com/ │ │ │ │ │ └── jun/ │ │ │ │ │ └── plugin/ │ │ │ │ │ ├── httpclient/ │ │ │ │ │ │ ├── base/ │ │ │ │ │ │ │ ├── HttpDownload.java │ │ │ │ │ │ │ ├── JsoupHttp.java │ │ │ │ │ │ │ └── imagedown2/ │ │ │ │ │ │ │ ├── JianDanHtmlParser.java │ │ │ │ │ │ │ ├── JianDanImageCreator.java │ │ │ │ │ │ │ └── SimpleSpider.java │ │ │ │ │ │ └── httpclientutil/ │ │ │ │ │ │ ├── HttpClientUtil.java │ │ │ │ │ │ ├── builder/ │ │ │ │ │ │ │ └── HCB.java │ │ │ │ │ │ ├── common/ │ │ │ │ │ │ │ ├── HttpConfig.java │ │ │ │ │ │ │ ├── HttpCookies.java │ │ │ │ │ │ │ ├── HttpHeader.java │ │ │ │ │ │ │ ├── HttpMethods.java │ │ │ │ │ │ │ ├── HttpResult.java │ │ │ │ │ │ │ ├── SSLs.java │ │ │ │ │ │ │ ├── Utils.java │ │ │ │ │ │ │ └── util/ │ │ │ │ │ │ │ ├── OCR.java │ │ │ │ │ │ │ ├── OldOCR.java │ │ │ │ │ │ │ ├── PropertiesUtil.java │ │ │ │ │ │ │ └── StringUtil.java │ │ │ │ │ │ ├── evictor/ │ │ │ │ │ │ │ └── NIdleConnectionEvictor.java │ │ │ │ │ │ └── exception/ │ │ │ │ │ │ └── HttpProcessException.java │ │ │ │ │ └── okhttp/ │ │ │ │ │ ├── FastHttpClient.java │ │ │ │ │ ├── GetBuilder.java │ │ │ │ │ ├── GetRequest.java │ │ │ │ │ ├── OkHttpRequest.java │ │ │ │ │ ├── OkHttpRequestBuilder.java │ │ │ │ │ ├── PostBuilder.java │ │ │ │ │ ├── PostRequest.java │ │ │ │ │ ├── RequestCall.java │ │ │ │ │ ├── Response.java │ │ │ │ │ ├── URIEncoder.java │ │ │ │ │ ├── callback/ │ │ │ │ │ │ ├── Callback.java │ │ │ │ │ │ ├── DownloadFileCallback.java │ │ │ │ │ │ └── StringCallback.java │ │ │ │ │ ├── interceptor/ │ │ │ │ │ │ ├── DownloadFileInterceptor.java │ │ │ │ │ │ └── DownloadFileProgressListener.java │ │ │ │ │ ├── ssl/ │ │ │ │ │ │ └── X509TrustManagerImpl.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── FileUtil.java │ │ │ │ │ └── IOUtil.java │ │ │ │ └── config.properties │ │ │ ├── resources/ │ │ │ │ ├── httphelper-config.dtd │ │ │ │ ├── httphelper-config.xml │ │ │ │ ├── log4j (2).properties │ │ │ │ ├── log4j.properties │ │ │ │ └── wshttphelper.config.properties │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ └── index.jsp │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ ├── baidu/ │ │ │ │ └── api/ │ │ │ │ ├── PlaceAPI.java │ │ │ │ └── TestPlaceAPI.java │ │ │ ├── httpclient/ │ │ │ │ ├── httpclientutil/ │ │ │ │ │ └── test/ │ │ │ │ │ ├── Demo.java │ │ │ │ │ ├── HttpClientTest.java │ │ │ │ │ ├── SimpleHttpClientDemo.java │ │ │ │ │ ├── TestCookie.java │ │ │ │ │ ├── TestCookieWithHttpCookies.java │ │ │ │ │ ├── TestDownLoadImg.java │ │ │ │ │ ├── TestHttpPool.java │ │ │ │ │ ├── TestHttpResult.java │ │ │ │ │ ├── TestUpload.java │ │ │ │ │ ├── TestVerifyCode.java │ │ │ │ │ └── httpConn.bat │ │ │ │ └── test/ │ │ │ │ ├── HttpClientTest.java │ │ │ │ └── HttpGetTest.java │ │ │ ├── httphelper/ │ │ │ │ ├── TestWSHttpHelper.java │ │ │ │ ├── TestWSHttpHelperXmlConfig.java │ │ │ │ ├── common/ │ │ │ │ │ ├── TestConfigXmlFileFilter.java │ │ │ │ │ ├── TestXmlToMapUtil.java │ │ │ │ │ └── TestXmlUtil.java │ │ │ │ └── request/ │ │ │ │ ├── TestWSHttpRequestFactory.java │ │ │ │ └── handler/ │ │ │ │ ├── DownloadAllImageHandle.java │ │ │ │ └── SaveImageHandle.java │ │ │ └── okhttp/ │ │ │ └── test/ │ │ │ ├── HttpClientTestCase.java │ │ │ ├── QQMapService.java │ │ │ └── URLUtil.java │ │ └── resources/ │ │ ├── httphelper-config.dtd │ │ ├── httphelper-config.xml │ │ ├── log4j.properties │ │ ├── test-request/ │ │ │ └── request1.xml │ │ └── wshttphelper.config.properties │ ├── jun_image/ │ │ └── README.md │ ├── jun_j2cache/ │ │ ├── README.md │ │ ├── pom.xml │ │ ├── spring boot 使用spring cache 整合多级缓存(EhCache,Redis).md │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── net/ │ │ │ └── oschina/ │ │ │ └── j2cache/ │ │ │ ├── Cache.java │ │ │ ├── CacheAbstractTemplate.java │ │ │ ├── CacheBox.java │ │ │ ├── CacheBroadcastChannel.java │ │ │ ├── CacheException.java │ │ │ ├── CacheExpiredListener.java │ │ │ ├── CacheFactory.java │ │ │ ├── CacheObject.java │ │ │ ├── CacheProvider.java │ │ │ ├── CacheTemplate.java │ │ │ ├── broadcast/ │ │ │ │ ├── BroadcastType.java │ │ │ │ ├── Command.java │ │ │ │ ├── JGroupBroadcastChannel.java │ │ │ │ └── RedisBroadcastChannel.java │ │ │ ├── serializer/ │ │ │ │ ├── FstSerializer.java │ │ │ │ ├── FstSnappySerializer.java │ │ │ │ ├── JdkSerializer.java │ │ │ │ ├── Serializer.java │ │ │ │ ├── SerializerTools.java │ │ │ │ └── StringSerializer.java │ │ │ ├── store/ │ │ │ │ ├── StoreType.java │ │ │ │ ├── ehcache/ │ │ │ │ │ ├── EhCache.java │ │ │ │ │ └── EhCacheProvider.java │ │ │ │ ├── map/ │ │ │ │ │ └── MapCache.java │ │ │ │ └── redis/ │ │ │ │ ├── RedisCache.java │ │ │ │ └── RedisCacheProvider.java │ │ │ └── utils/ │ │ │ ├── CacheCodeUtils.java │ │ │ ├── CacheCustoms.java │ │ │ ├── PropertiesLoader.java │ │ │ └── StrExtUtils.java │ │ └── test/ │ │ ├── java/ │ │ │ └── net/ │ │ │ └── oschina/ │ │ │ └── j2cache/ │ │ │ ├── CacheTemplateTest.java │ │ │ └── serializer/ │ │ │ ├── SerializerBaseTest.java │ │ │ ├── SerializerBenchmarkTest.java │ │ │ └── TestObj.java │ │ └── resources/ │ │ ├── cache/ │ │ │ ├── ehcache.xml │ │ │ ├── jgourps_network_udp.xml │ │ │ └── redis.properties │ │ └── spring-cache-test.xml │ ├── jun_jar2maven/ │ │ ├── README.md │ │ └── pom.xml │ ├── jun_java_compiler/ │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── compiler/ │ │ │ ├── JavaStringCompiler.java │ │ │ ├── MemoryClassLoader.java │ │ │ └── MemoryJavaFileManager.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ ├── compiler/ │ │ │ └── JavaStringCompilerTest.java │ │ └── on/ │ │ └── the/ │ │ └── fly/ │ │ ├── BeanProxy.java │ │ └── User.java │ ├── jun_javase/ │ │ ├── doc/ │ │ │ ├── db_OA.sql │ │ │ ├── db_food.sql │ │ │ ├── db_hotel.sql │ │ │ ├── db_teacher.sql │ │ │ ├── db_user.sql │ │ │ ├── java基础.txt │ │ │ ├── java对象基础.txt │ │ │ ├── mysql.sql │ │ │ └── work.txt │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── javase/ │ │ ├── IO/ │ │ │ ├── IOTest.java │ │ │ ├── IOTest2.java │ │ │ └── IOtest3.java │ │ ├── JDBCTest/ │ │ │ ├── ConnTest.java │ │ │ └── Food.java │ │ ├── JavaBase/ │ │ │ └── JavaBase.java │ │ ├── SevDay/ │ │ │ ├── ArrayAdd.java │ │ │ ├── BubbleSort.java │ │ │ ├── DateTimeFormatter.java │ │ │ ├── HomeWork.java │ │ │ ├── HomeWork2.java │ │ │ ├── Index.java │ │ │ └── StringO.java │ │ ├── annotation/ │ │ │ ├── AnnotationDefineForTestFunction.java │ │ │ ├── RequestForEnhancement.java │ │ │ ├── UsingAnnotation.java │ │ │ └── UsingBuiltInAnnotation.java │ │ ├── collectionn/ │ │ │ ├── ArrayListTest.java │ │ │ ├── ComparableByName.java │ │ │ ├── InternetTest.java │ │ │ ├── LinkedListTest.java │ │ │ ├── LinkedListTest2.java │ │ │ ├── ListTest.java │ │ │ ├── MapTest.java │ │ │ ├── MenuTest.java │ │ │ ├── Person1.java │ │ │ ├── SetTest.java │ │ │ ├── StringTest.java │ │ │ ├── StringTest2.java │ │ │ ├── Test1.java │ │ │ ├── Test11.java │ │ │ └── Testtt.java │ │ ├── day8/ │ │ │ ├── Exam.java │ │ │ ├── StringT.java │ │ │ ├── Test.java │ │ │ └── Test2.java │ │ ├── day9/ │ │ │ ├── Array.java │ │ │ ├── ArrayT.java │ │ │ └── ArrayT2.java │ │ ├── enums/ │ │ │ ├── Action.java │ │ │ ├── DetailActioin2.java │ │ │ ├── DetailAction.java │ │ │ ├── DetailActionDemo.java │ │ │ ├── EnumDemo.java │ │ │ ├── EnumDemo2.java │ │ │ ├── IDescription.java │ │ │ ├── MoreAction.java │ │ │ ├── MoreAction2.java │ │ │ ├── MoreActionDemo.java │ │ │ ├── MoreActionDemo2.java │ │ │ └── Singleton.java │ │ ├── fiveday/ │ │ │ ├── Array.java │ │ │ └── Test.java │ │ ├── object/ │ │ │ ├── Abstract.java │ │ │ ├── AbstractTest.java │ │ │ ├── AccessProperty.java │ │ │ ├── Book.java │ │ │ ├── Book2.java │ │ │ ├── Compare.java │ │ │ ├── ConstructT.java │ │ │ ├── Encapsulate.java │ │ │ ├── Exception1.java │ │ │ ├── ExceptionWork.java │ │ │ ├── ExceptionWork11.java │ │ │ ├── ExtendsKey.java │ │ │ ├── FinalKey.java │ │ │ ├── FinalKey2.java │ │ │ ├── Homework.java │ │ │ ├── InnerClass.java │ │ │ ├── InnerClass2.java │ │ │ ├── Instance.java │ │ │ ├── IntegerDemo.java │ │ │ ├── Interface.java │ │ │ ├── InterfaceInner.java │ │ │ ├── Object1.java │ │ │ ├── Object2.java │ │ │ ├── Object3.java │ │ │ ├── Person3.java │ │ │ ├── Rectangle.java │ │ │ ├── StaticKey.java │ │ │ ├── SuperKey.java │ │ │ ├── Test.java │ │ │ ├── Test111.java │ │ │ ├── Test2.java │ │ │ ├── Test3.java │ │ │ ├── Test4.java │ │ │ ├── Test5.java │ │ │ ├── Test6.java │ │ │ ├── Test7.java │ │ │ ├── Test8.java │ │ │ ├── ThisKey.java │ │ │ ├── Tran.java │ │ │ ├── TransferProperty.java │ │ │ ├── TryCatch.java │ │ │ ├── test/ │ │ │ │ ├── Coder.java │ │ │ │ ├── Coffee.java │ │ │ │ ├── Drink.java │ │ │ │ ├── Empolyee.java │ │ │ │ ├── Interface.java │ │ │ │ ├── Manager.java │ │ │ │ ├── Milk.java │ │ │ │ ├── Person.java │ │ │ │ ├── Programmer.java │ │ │ │ ├── Shape.java │ │ │ │ ├── Student.java │ │ │ │ ├── Tea.java │ │ │ │ ├── Test.java │ │ │ │ ├── Triangle.java │ │ │ │ └── Worker.java │ │ │ └── test2/ │ │ │ ├── Car.java │ │ │ ├── ExceptionTest1.java │ │ │ ├── ListGather.java │ │ │ ├── RunnableTast.java │ │ │ ├── RunnableTest2.java │ │ │ ├── SetUpdateStu.java │ │ │ ├── SyncTest.java │ │ │ ├── ThreadTest.java │ │ │ ├── ThreadTest1.java │ │ │ ├── ThreadTest2.java │ │ │ ├── ThreadTest3.java │ │ │ ├── ThreadTest4.java │ │ │ └── _IntegerDemo.java │ │ ├── oneday/ │ │ │ ├── Arr.java │ │ │ ├── Function.java │ │ │ ├── HomeWork.java │ │ │ ├── Nested.java │ │ │ ├── Shop.java │ │ │ ├── Star.java │ │ │ ├── Sum.java │ │ │ └── Sum2.java │ │ ├── reflectTest/ │ │ │ ├── Example_01.java │ │ │ ├── ReflectTest.java │ │ │ └── User.java │ │ ├── sixday/ │ │ │ ├── Array.java │ │ │ ├── CommonMethod.java │ │ │ ├── MaxMethod.java │ │ │ └── Test.java │ │ ├── string/ │ │ │ ├── Test1.java │ │ │ ├── Test2.java │ │ │ ├── Test3.java │ │ │ └── Test4.java │ │ ├── swingTest/ │ │ │ ├── Example1.java │ │ │ └── MyFrame.java │ │ ├── threeday/ │ │ │ ├── AlgorithmTest.java │ │ │ ├── Area.java │ │ │ ├── Even.java │ │ │ ├── HomeWork.java │ │ │ ├── Mouth.java │ │ │ ├── Prime.java │ │ │ ├── Test.java │ │ │ ├── Triangle.java │ │ │ └── work.java │ │ ├── twoday/ │ │ │ ├── HomeWork.java │ │ │ ├── HomeWorkDate.java │ │ │ ├── Operation.java │ │ │ ├── Practice.java │ │ │ ├── Star.java │ │ │ ├── Sum.java │ │ │ └── Test.java │ │ └── winterHomeWork/ │ │ ├── ArrayTest.java │ │ ├── BankTest.java │ │ ├── DiceTest.java │ │ ├── Exercise5/ │ │ │ ├── InterestTest.java │ │ │ ├── PokerTest.java │ │ │ ├── PokerTest2.java │ │ │ ├── PokerTest3.java │ │ │ ├── StudentTest.java │ │ │ └── TeacherTest.java │ │ ├── Exercise6/ │ │ │ ├── AnimalTest.java │ │ │ ├── EleApplianceTest.java │ │ │ ├── FamilyTest.java │ │ │ └── InstrumentTest.java │ │ ├── Exercise7/ │ │ │ ├── BiologicalTest.java │ │ │ └── CanFlyTest.java │ │ ├── Exercise8/ │ │ │ ├── BankAccountTest.java │ │ │ ├── ExceptionTest.java │ │ │ └── RiverTest.java │ │ ├── Exercise9/ │ │ │ ├── StringTest2.java │ │ │ ├── StringTest3.java │ │ │ ├── StringTest4.java │ │ │ ├── StringTest5.java │ │ │ ├── StringTest7.java │ │ │ ├── StringTest8.java │ │ │ └── WorkSystemTest.java │ │ ├── GoodsTest.java │ │ ├── StudentTest.java │ │ ├── TeacherTest.java │ │ └── Test.java │ ├── jun_jbpm/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ ├── jbpm.cfg.xml │ │ │ ├── jbpm.hibernate.cfg.xml │ │ │ ├── jbpm.mail.properties │ │ │ ├── jbpm.mail.templates.xml │ │ │ ├── leave.jpdl.xml │ │ │ └── logging.properties │ │ └── webapp/ │ │ ├── WEB-INF/ │ │ │ └── web.xml │ │ ├── boss.jsp │ │ ├── checkLogin.jsp │ │ ├── deploy.jsp │ │ ├── doLogin.jsp │ │ ├── index.jsp │ │ ├── login.jsp │ │ ├── manager.jsp │ │ ├── pic.jsp │ │ ├── remove.jsp │ │ ├── request.jsp │ │ ├── start.jsp │ │ ├── submit.jsp │ │ ├── submit_boss.jsp │ │ ├── submit_manager.jsp │ │ └── view.jsp │ ├── jun_jdbc/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ ├── c3p0-config.xml │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── jdbc/ │ │ │ │ ├── TestOracleJdbc.java │ │ │ │ ├── bean/ │ │ │ │ │ └── User.java │ │ │ │ ├── jdbc/ │ │ │ │ │ ├── DataRow.java │ │ │ │ │ ├── Jdbc.java │ │ │ │ │ ├── MysqlJdbc.java │ │ │ │ │ ├── ObjectsParamsHandler.java │ │ │ │ │ ├── ParamsHandler.java │ │ │ │ │ ├── ResultHandler.java │ │ │ │ │ └── test/ │ │ │ │ │ ├── Member.java │ │ │ │ │ ├── MemberDbControl.java │ │ │ │ │ ├── MemberResultHander.java │ │ │ │ │ └── Test.java │ │ │ │ └── jdbc2/ │ │ │ │ ├── CallProdouce.java │ │ │ │ ├── JdbcSqlite.java │ │ │ │ ├── JdbcUtil.java │ │ │ │ ├── MetaDataTest.java │ │ │ │ ├── MySql.java │ │ │ │ └── test/ │ │ │ │ └── JdbcUtil2211.java │ │ │ ├── resources/ │ │ │ │ └── log4j.properties │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ └── index.jsp │ │ └── test/ │ │ └── java/ │ │ ├── JdbcCrud.java │ │ ├── JdbcUtilTest.java │ │ ├── SQL.sql │ │ ├── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── jdbc/ │ │ │ ├── chap02/ │ │ │ │ ├── sec03/ │ │ │ │ │ └── Demo1.java │ │ │ │ └── sec04/ │ │ │ │ └── Demo1.java │ │ │ ├── chap03/ │ │ │ │ ├── sec02/ │ │ │ │ │ ├── Demo1.java │ │ │ │ │ └── Demo2.java │ │ │ │ ├── sec03/ │ │ │ │ │ └── Demo1.java │ │ │ │ └── sec04/ │ │ │ │ └── Demo1.java │ │ │ ├── chap04/ │ │ │ │ ├── sec02/ │ │ │ │ │ └── Demo1.java │ │ │ │ ├── sec03/ │ │ │ │ │ └── Demo1.java │ │ │ │ └── sec04/ │ │ │ │ └── Demo1.java │ │ │ ├── chap05/ │ │ │ │ └── sec02/ │ │ │ │ └── Demo1.java │ │ │ ├── chap06/ │ │ │ │ ├── sec01/ │ │ │ │ │ └── Demo1.java │ │ │ │ └── sec02/ │ │ │ │ └── Demo1.java │ │ │ ├── chap07/ │ │ │ │ └── sec02/ │ │ │ │ └── Demo1.java │ │ │ ├── chap08/ │ │ │ │ ├── sec01/ │ │ │ │ │ └── Demo1.java │ │ │ │ └── sec02/ │ │ │ │ └── Demo2.java │ │ │ ├── chap09/ │ │ │ │ ├── sec03/ │ │ │ │ │ └── Demo1.java │ │ │ │ └── sec04/ │ │ │ │ └── Demo1.java │ │ │ ├── model/ │ │ │ │ └── Book.java │ │ │ └── util/ │ │ │ └── DbUtil.java │ │ └── db_bank.sql │ ├── jun_jdk/ │ │ ├── README.md │ │ ├── doc/ │ │ │ ├── 基础加强作业.txt │ │ │ └── 基础加强笔记.txt │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ ├── App.java │ │ │ │ ├── arithmetic/ │ │ │ │ │ ├── PatternMatchingTest.java │ │ │ │ │ ├── SortTest.java │ │ │ │ │ ├── StockTest.java │ │ │ │ │ ├── jzoffer/ │ │ │ │ │ │ ├── DuplicateNumberInArray.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── basics/ │ │ │ │ │ ├── AbstractTest.java │ │ │ │ │ ├── CalculateTest.java │ │ │ │ │ ├── CloneTest.java │ │ │ │ │ ├── ExtendTest.java │ │ │ │ │ ├── ExtendsTest2.java │ │ │ │ │ ├── FinalTest.java │ │ │ │ │ ├── ForTest.java │ │ │ │ │ ├── IoTest.java │ │ │ │ │ ├── ListTest.java │ │ │ │ │ ├── MapTest.java │ │ │ │ │ ├── PackagingTest.java │ │ │ │ │ ├── PolymorphicTest.java │ │ │ │ │ ├── ReflectTest.java │ │ │ │ │ ├── ReflectTest2.java │ │ │ │ │ ├── ServletTest.java │ │ │ │ │ ├── SetTest.java │ │ │ │ │ ├── SocketTest.java │ │ │ │ │ ├── StaticTest.java │ │ │ │ │ ├── StringTest.java │ │ │ │ │ ├── SuperTest.java │ │ │ │ │ ├── User.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── bigdata/ │ │ │ │ │ ├── hbase/ │ │ │ │ │ │ ├── HBaseUtil.java │ │ │ │ │ │ ├── HbaseTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── package-info.java │ │ │ │ │ ├── storm/ │ │ │ │ │ │ ├── example/ │ │ │ │ │ │ │ ├── WordCountApp.java │ │ │ │ │ │ │ ├── WordCounter.java │ │ │ │ │ │ │ ├── WordNormalizer.java │ │ │ │ │ │ │ ├── WordReader.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ ├── example1/ │ │ │ │ │ │ │ ├── ReportBolt.java │ │ │ │ │ │ │ ├── SentenceSpout.java │ │ │ │ │ │ │ ├── SplitSentenceBolt.java │ │ │ │ │ │ │ ├── WordCountApp.java │ │ │ │ │ │ │ ├── WordCountBolt.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ ├── one/ │ │ │ │ │ │ │ ├── WordCountApp.java │ │ │ │ │ │ │ ├── WordCounter.java │ │ │ │ │ │ │ ├── WordNormalizer.java │ │ │ │ │ │ │ ├── WordReader.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ ├── package-info.java │ │ │ │ │ │ ├── test/ │ │ │ │ │ │ │ ├── App.java │ │ │ │ │ │ │ ├── TestBolt.java │ │ │ │ │ │ │ ├── TestSpout.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ └── test2/ │ │ │ │ │ │ ├── App.java │ │ │ │ │ │ ├── Test2Bolt.java │ │ │ │ │ │ ├── TestBolt.java │ │ │ │ │ │ ├── TestSpout.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ └── zookeeper/ │ │ │ │ │ ├── ZookeeperTest.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── code/ │ │ │ │ │ ├── MapCodeTest.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── commons/ │ │ │ │ │ ├── apache/ │ │ │ │ │ │ ├── CommonsTest.java │ │ │ │ │ │ ├── CompressTest.java │ │ │ │ │ │ ├── LangTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── google/ │ │ │ │ │ │ ├── GoogleTest.java │ │ │ │ │ │ ├── GuavaTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── others/ │ │ │ │ │ │ ├── JodaTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── design/ │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ ├── AdapterTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── bridge/ │ │ │ │ │ │ ├── BridgeTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── builder/ │ │ │ │ │ │ ├── BuilderTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── command/ │ │ │ │ │ │ ├── CommandTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── composite/ │ │ │ │ │ │ ├── CompositeTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── decorator/ │ │ │ │ │ │ ├── DecoratorTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── facade/ │ │ │ │ │ │ ├── FacadeTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── factory/ │ │ │ │ │ │ ├── FactoryTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── filter/ │ │ │ │ │ │ ├── FilterTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── flyweight/ │ │ │ │ │ │ ├── FlyweightTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── interpreter/ │ │ │ │ │ │ ├── InterpreterTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── iterator/ │ │ │ │ │ │ ├── IteratorTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── mediator/ │ │ │ │ │ │ ├── MediatorTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── memento/ │ │ │ │ │ │ ├── MementoTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── nullobject/ │ │ │ │ │ │ ├── NullObjectTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── observer/ │ │ │ │ │ │ ├── ObserverTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── package-info.java │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── PrototypeTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── proxy/ │ │ │ │ │ │ ├── ProxyTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── responsibility/ │ │ │ │ │ │ ├── ResponsibilityTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── singleton/ │ │ │ │ │ │ ├── SingletonTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── state/ │ │ │ │ │ │ ├── StateTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── strategy/ │ │ │ │ │ │ ├── StrategyTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── template/ │ │ │ │ │ │ ├── TemplateTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ └── visitor/ │ │ │ │ │ ├── VisitorTest.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── dynamicProxy/ │ │ │ │ │ ├── app/ │ │ │ │ │ │ ├── MainTest.java │ │ │ │ │ │ └── MainTest2.java │ │ │ │ │ ├── bean/ │ │ │ │ │ │ ├── LogHandler.java │ │ │ │ │ │ ├── LogInterceptor.java │ │ │ │ │ │ ├── Manager.java │ │ │ │ │ │ ├── Student.java │ │ │ │ │ │ ├── SubStudent.java │ │ │ │ │ │ ├── SumTeacher.java │ │ │ │ │ │ └── Teacher.java │ │ │ │ │ ├── preson/ │ │ │ │ │ │ └── Preson.java │ │ │ │ │ └── proxy/ │ │ │ │ │ ├── CglibProxy.java │ │ │ │ │ └── JdkProxy.java │ │ │ │ ├── elasticsearch/ │ │ │ │ │ ├── EsAggregationSearchTest.java │ │ │ │ │ ├── EsHighLevelRestSearchTest.java │ │ │ │ │ ├── EsHighLevelRestTest1.java │ │ │ │ │ ├── EsHighLevelRestTest2.java │ │ │ │ │ ├── EsUtil.java │ │ │ │ │ ├── JestTest.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── javase/ │ │ │ │ │ ├── annotation/ │ │ │ │ │ │ ├── AnnotationDefineForTestFunction.java │ │ │ │ │ │ ├── RequestForEnhancement.java │ │ │ │ │ │ ├── UsingAnnotation.java │ │ │ │ │ │ └── UsingBuiltInAnnotation.java │ │ │ │ │ └── enums/ │ │ │ │ │ ├── Action.java │ │ │ │ │ ├── DetailActioin2.java │ │ │ │ │ ├── DetailAction.java │ │ │ │ │ ├── DetailActionDemo.java │ │ │ │ │ ├── EnumDemo.java │ │ │ │ │ ├── EnumDemo2.java │ │ │ │ │ ├── IDescription.java │ │ │ │ │ ├── MoreAction.java │ │ │ │ │ ├── MoreAction2.java │ │ │ │ │ ├── MoreActionDemo.java │ │ │ │ │ ├── MoreActionDemo2.java │ │ │ │ │ └── Singleton.java │ │ │ │ ├── jdk/ │ │ │ │ │ ├── ActiveObject/ │ │ │ │ │ │ └── Sample/ │ │ │ │ │ │ ├── DisplayClientThread.java │ │ │ │ │ │ ├── Main.java │ │ │ │ │ │ ├── MakerClientThread.java │ │ │ │ │ │ └── activeobject/ │ │ │ │ │ │ ├── ActivationQueue.java │ │ │ │ │ │ ├── ActiveObject.java │ │ │ │ │ │ ├── ActiveObjectFactory.java │ │ │ │ │ │ ├── DisplayStringRequest.java │ │ │ │ │ │ ├── FutureResult.java │ │ │ │ │ │ ├── MakeStringRequest.java │ │ │ │ │ │ ├── MethodRequest.java │ │ │ │ │ │ ├── Proxy.java │ │ │ │ │ │ ├── RealResult.java │ │ │ │ │ │ ├── Result.java │ │ │ │ │ │ ├── SchedulerThread.java │ │ │ │ │ │ └── Servant.java │ │ │ │ │ ├── annotation/ │ │ │ │ │ │ ├── AnnotationDefineForTestFunction.java │ │ │ │ │ │ ├── RequestForEnhancement.java │ │ │ │ │ │ ├── UsingAnnotation.java │ │ │ │ │ │ └── UsingBuiltInAnnotation.java │ │ │ │ │ ├── enums/ │ │ │ │ │ │ ├── Action.java │ │ │ │ │ │ ├── DetailActioin2.java │ │ │ │ │ │ ├── DetailAction.java │ │ │ │ │ │ ├── DetailActionDemo.java │ │ │ │ │ │ ├── EnumDemo.java │ │ │ │ │ │ ├── EnumDemo2.java │ │ │ │ │ │ ├── IDescription.java │ │ │ │ │ │ ├── MoreAction.java │ │ │ │ │ │ ├── MoreAction2.java │ │ │ │ │ │ ├── MoreActionDemo.java │ │ │ │ │ │ ├── MoreActionDemo2.java │ │ │ │ │ │ └── Singleton.java │ │ │ │ │ └── sort/ │ │ │ │ │ ├── BubbleSort.java │ │ │ │ │ ├── InsertionSort.java │ │ │ │ │ ├── SelectionSort.java │ │ │ │ │ ├── ShellSort.java │ │ │ │ │ └── Sort.java │ │ │ │ ├── jdk8/ │ │ │ │ │ ├── LambdaTest.java │ │ │ │ │ ├── LocalDateTimeTest.java │ │ │ │ │ ├── StreamTest.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── mq/ │ │ │ │ │ ├── kafka/ │ │ │ │ │ │ ├── KafkaProducerTest.java │ │ │ │ │ │ ├── examples/ │ │ │ │ │ │ │ ├── Consumer.java │ │ │ │ │ │ │ ├── DataProducer.java │ │ │ │ │ │ │ ├── KafkaProducerConsumerDemo.java │ │ │ │ │ │ │ ├── Producer.java │ │ │ │ │ │ │ ├── WordCountDemo.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ ├── others/ │ │ │ │ │ │ │ ├── TestConsumer.java │ │ │ │ │ │ │ ├── TestProducer.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ ├── package-info.java │ │ │ │ │ │ ├── test1/ │ │ │ │ │ │ │ ├── KafkaConsumerTest.java │ │ │ │ │ │ │ ├── KafkaProducerTest.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ ├── test2/ │ │ │ │ │ │ │ ├── KafkaConsumerTest.java │ │ │ │ │ │ │ ├── KafkaProducerTest.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ └── test3/ │ │ │ │ │ │ ├── KafkaConsumerTest.java │ │ │ │ │ │ ├── KafkaConsumerTest3.java │ │ │ │ │ │ ├── KafkaProducerTest.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── package-info.java │ │ │ │ │ └── rabbitmq/ │ │ │ │ │ ├── demo/ │ │ │ │ │ │ ├── C.java │ │ │ │ │ │ ├── RabbitConsumer.java │ │ │ │ │ │ └── RabbitProducer.java │ │ │ │ │ ├── one2more/ │ │ │ │ │ │ ├── NewTask.java │ │ │ │ │ │ └── Worker.java │ │ │ │ │ ├── one2one/ │ │ │ │ │ │ ├── ClientReceive1.java │ │ │ │ │ │ ├── ClientSend1.java │ │ │ │ │ │ ├── Recv.java │ │ │ │ │ │ └── Send.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── nio/ │ │ │ │ │ ├── mina/ │ │ │ │ │ │ ├── ClientTestServer.java │ │ │ │ │ │ ├── demo/ │ │ │ │ │ │ │ ├── MinaClient.java │ │ │ │ │ │ │ ├── MinaClientHandler.java │ │ │ │ │ │ │ ├── MinaServer.java │ │ │ │ │ │ │ └── MinaServerHandler.java │ │ │ │ │ │ ├── demo1/ │ │ │ │ │ │ │ ├── MinaClient.java │ │ │ │ │ │ │ ├── MinaClientHandler.java │ │ │ │ │ │ │ ├── MinaServer.java │ │ │ │ │ │ │ ├── MinaServerHandler.java │ │ │ │ │ │ │ ├── MyTextLineCodecDecoder.java │ │ │ │ │ │ │ ├── MyTextLineCodecEncoder.java │ │ │ │ │ │ │ └── MyTextLineCodecFactory.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── netty/ │ │ │ │ │ │ ├── demo/ │ │ │ │ │ │ │ ├── NettyClient.java │ │ │ │ │ │ │ ├── NettyClientFilter.java │ │ │ │ │ │ │ ├── NettyClientHandler.java │ │ │ │ │ │ │ ├── NettyServer.java │ │ │ │ │ │ │ ├── NettyServerFilter.java │ │ │ │ │ │ │ └── NettyServerHandler.java │ │ │ │ │ │ ├── demo1/ │ │ │ │ │ │ │ ├── BaseClient1Handler.java │ │ │ │ │ │ │ ├── BaseClient2Handler.java │ │ │ │ │ │ │ ├── NettyClient.java │ │ │ │ │ │ │ ├── NettyClientHandler.java │ │ │ │ │ │ │ ├── NettyServer.java │ │ │ │ │ │ │ └── NettyServerHandler.java │ │ │ │ │ │ ├── demo2/ │ │ │ │ │ │ │ ├── NettyClientDemo2.java │ │ │ │ │ │ │ ├── NettyClientHandlerDemo2.java │ │ │ │ │ │ │ ├── NettyServerDemo2.java │ │ │ │ │ │ │ └── NettyServerHandlerDemo2.java │ │ │ │ │ │ ├── demo3/ │ │ │ │ │ │ │ ├── NettyClientDemo3.java │ │ │ │ │ │ │ ├── NettyClientHandlerDemo3.java │ │ │ │ │ │ │ ├── NettyDecoder.java │ │ │ │ │ │ │ ├── NettyDecoder2.java │ │ │ │ │ │ │ ├── NettyEncoder.java │ │ │ │ │ │ │ ├── NettyMsg.java │ │ │ │ │ │ │ ├── NettyServerDemo3.java │ │ │ │ │ │ │ └── NettyServerHandlerDemo3.java │ │ │ │ │ │ ├── demo4/ │ │ │ │ │ │ │ ├── NettyClientDemo4.java │ │ │ │ │ │ │ ├── NettyClientHandlerDemo4.java │ │ │ │ │ │ │ ├── NettySendBody.java │ │ │ │ │ │ │ ├── NettyServerDemo4.java │ │ │ │ │ │ │ └── NettyServerHandlerDemo4.java │ │ │ │ │ │ ├── demo5/ │ │ │ │ │ │ │ ├── NettyClientDemo5.java │ │ │ │ │ │ │ ├── NettyClientHandlerDemo5.java │ │ │ │ │ │ │ ├── NettyServerDemo5.java │ │ │ │ │ │ │ └── NettyServerHandlerDemo5.java │ │ │ │ │ │ ├── demo6/ │ │ │ │ │ │ │ ├── NettyServer.java │ │ │ │ │ │ │ ├── NettyServerFilter.java │ │ │ │ │ │ │ ├── NettyServerHandler.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── others/ │ │ │ │ │ ├── JsoupHtml.java │ │ │ │ │ ├── LogbackTest.java │ │ │ │ │ ├── LombokTest.java │ │ │ │ │ ├── TimerTest.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── pojo/ │ │ │ │ │ ├── Student.java │ │ │ │ │ ├── User.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── question/ │ │ │ │ │ ├── QuestionTest1.java │ │ │ │ │ ├── QuestionTest2.java │ │ │ │ │ ├── QuestionTest3.java │ │ │ │ │ ├── QuestionTest4.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── redis/ │ │ │ │ │ ├── RedisTest.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── sql/ │ │ │ │ │ └── package-info.java │ │ │ │ ├── thread/ │ │ │ │ │ ├── ThreadPoolTest.java │ │ │ │ │ ├── concurrent/ │ │ │ │ │ │ ├── liveLock/ │ │ │ │ │ │ │ ├── Consumer.java │ │ │ │ │ │ │ ├── Drop.java │ │ │ │ │ │ │ ├── Producer.java │ │ │ │ │ │ │ ├── package-info.java │ │ │ │ │ │ │ └── test.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── lock/ │ │ │ │ │ │ ├── LockSydTest.java │ │ │ │ │ │ ├── LockTest1.java │ │ │ │ │ │ ├── LockTest2.java │ │ │ │ │ │ ├── VolatileTest1.java │ │ │ │ │ │ ├── VolatileTest2.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── package-info.java │ │ │ │ │ └── test/ │ │ │ │ │ ├── JoinTest.java │ │ │ │ │ ├── MyRunnable.java │ │ │ │ │ ├── MyThread.java │ │ │ │ │ ├── NotifyTest.java │ │ │ │ │ ├── PriorityTest.java │ │ │ │ │ ├── Test.java │ │ │ │ │ ├── Test22.java │ │ │ │ │ ├── TheadTest3.java │ │ │ │ │ ├── ThreadPoolTest.java │ │ │ │ │ ├── ThreadTest1.java │ │ │ │ │ ├── ThreadTest4.java │ │ │ │ │ ├── ThreadTest5.java │ │ │ │ │ ├── ThreadTest6.java │ │ │ │ │ ├── YieldTest.java │ │ │ │ │ ├── executorTest.java │ │ │ │ │ ├── package-info.java │ │ │ │ │ ├── threadMain.java │ │ │ │ │ ├── threadPrinter.java │ │ │ │ │ └── threadTest2.java │ │ │ │ └── utils/ │ │ │ │ ├── AESUtil.java │ │ │ │ ├── IPWhiteCheck.java │ │ │ │ ├── KafkaProducerUtil.java │ │ │ │ ├── MyHttpRequest.java │ │ │ │ ├── MyTools.java │ │ │ │ ├── QrCodeCreateUtil.java │ │ │ │ ├── ZkUtil.java │ │ │ │ └── package-info.java │ │ │ └── resources/ │ │ │ └── logback.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── AppTest.java │ ├── jun_jgit/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── jgit/ │ │ │ ├── CreateNewRepository.java │ │ │ ├── OpenRepository.java │ │ │ ├── api/ │ │ │ │ ├── CheckMergeStatusOfCommit.java │ │ │ │ ├── GetCommitMessage.java │ │ │ │ ├── GetFileAttributes.java │ │ │ │ ├── GetRefFromName.java │ │ │ │ ├── GetRevCommitFromObjectId.java │ │ │ │ ├── GetRevTreeFromObjectId.java │ │ │ │ ├── ListFilesOfCommitAndTag.java │ │ │ │ ├── PrintRemotes.java │ │ │ │ ├── ReadBlobContents.java │ │ │ │ ├── ReadFileFromCommit.java │ │ │ │ ├── ReadTagFromName.java │ │ │ │ ├── ReadUserConfig.java │ │ │ │ ├── ResolveRef.java │ │ │ │ ├── ShowBranchTrackingStatus.java │ │ │ │ ├── WalkAllCommits.java │ │ │ │ ├── WalkFromToRev.java │ │ │ │ ├── WalkRev.java │ │ │ │ ├── WalkTreeNonRecursive.java │ │ │ │ └── WalkTreeRecursive.java │ │ │ ├── helper/ │ │ │ │ └── CookbookHelper.java │ │ │ ├── porcelain/ │ │ │ │ ├── AddAndListNoteOfCommit.java │ │ │ │ ├── AddFile.java │ │ │ │ ├── BlameFile.java │ │ │ │ ├── CheckoutGitHubPullRequest.java │ │ │ │ ├── CleanUntrackedFiles.java │ │ │ │ ├── CloneRemoteRepository.java │ │ │ │ ├── CloneRemoteRepositoryIntoMemoryAndReadFile.java │ │ │ │ ├── CloneRemoteRepositoryWithAuthentication.java │ │ │ │ ├── CollectGarbage.java │ │ │ │ ├── CommitAll.java │ │ │ │ ├── CommitFile.java │ │ │ │ ├── CreateAndDeleteBranch.java │ │ │ │ ├── CreateAndDeleteTag.java │ │ │ │ ├── CreateArchive.java │ │ │ │ ├── CreateCustomFormatArchive.java │ │ │ │ ├── CreateListApplyAndDropStash.java │ │ │ │ ├── DiffFilesInCommit.java │ │ │ │ ├── DiffRenamedFile.java │ │ │ │ ├── FetchRemoteCommits.java │ │ │ │ ├── FetchRemoteCommitsWithPrune.java │ │ │ │ ├── FetchRemoteCommitsWithSshAuth.java │ │ │ │ ├── InitRepository.java │ │ │ │ ├── ListBranches.java │ │ │ │ ├── ListNotes.java │ │ │ │ ├── ListRemoteRepository.java │ │ │ │ ├── ListRemotes.java │ │ │ │ ├── ListTags.java │ │ │ │ ├── ListTagsOnBranch.java │ │ │ │ ├── ListUncommittedChanges.java │ │ │ │ ├── MergeChanges.java │ │ │ │ ├── RebaseToOriginMaster.java │ │ │ │ ├── RevertChanges.java │ │ │ │ ├── RevertCommit.java │ │ │ │ ├── ShowBlame.java │ │ │ │ ├── ShowBranchDiff.java │ │ │ │ ├── ShowChangedFilesBetweenCommits.java │ │ │ │ ├── ShowFileDiff.java │ │ │ │ ├── ShowLog.java │ │ │ │ ├── ShowStatus.java │ │ │ │ └── WalkAllCommits.java │ │ │ └── unfinished/ │ │ │ ├── BrowseTree.java │ │ │ ├── ListChildrenOfCommit.java │ │ │ ├── ListIndex.java │ │ │ ├── ListRefLog.java │ │ │ ├── PullFromRemoteRepository.java │ │ │ ├── PullRemoteRepository.java │ │ │ ├── PushToRemoteRepository.java │ │ │ ├── TestSubmodules.java │ │ │ ├── TrackMaster.java │ │ │ └── UpdateIndex.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── jgit/ │ │ ├── JGitBugTest.java │ │ ├── api/ │ │ │ └── ApiTest.java │ │ └── porcelain/ │ │ └── PorcelainTest.java │ ├── jun_json/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── json/ │ │ │ └── json_lib/ │ │ │ ├── JsonUtil.java │ │ │ ├── JsonUtils.java │ │ │ └── ParserData.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── json/ │ │ └── json_lib/ │ │ ├── ComplexJsonParser.java │ │ ├── JsonKeyUtils.java │ │ └── JsonLibTest.java │ ├── jun_jsoup/ │ │ ├── doc/ │ │ │ ├── htmlcleaner/ │ │ │ │ └── htmlcleaner.md │ │ │ ├── images/ │ │ │ │ ├── compiler.pages │ │ │ │ ├── uml.zargo │ │ │ │ └── uml.zargo~ │ │ │ ├── jsoup.md │ │ │ ├── jsoup1.md │ │ │ ├── jsoup2.md │ │ │ ├── jsoup3.md │ │ │ ├── jsoup4.md │ │ │ ├── jsoup5.md │ │ │ ├── jsoup6.md │ │ │ ├── jsoup7.md │ │ │ └── jsoup8.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ ├── jsoup/ │ │ │ │ │ ├── GrabOschinaCode.java │ │ │ │ │ ├── HTMLImageFetcher.java │ │ │ │ │ └── test/ │ │ │ │ │ ├── automata/ │ │ │ │ │ │ ├── ABStateMachine.java │ │ │ │ │ │ ├── StateModelABStateMachine.java │ │ │ │ │ │ ├── StringReader.java │ │ │ │ │ │ └── SwitchABStateMachine.java │ │ │ │ │ ├── parser/ │ │ │ │ │ │ ├── PageErrorChecker.java │ │ │ │ │ │ └── ParserCorrectorTest.java │ │ │ │ │ └── select/ │ │ │ │ │ └── SelectorTest.java │ │ │ │ ├── jsoupdemo/ │ │ │ │ │ ├── Demo01.java │ │ │ │ │ ├── Demo02.java │ │ │ │ │ ├── Demo03.java │ │ │ │ │ └── Demo04.java │ │ │ │ └── xsoup/ │ │ │ │ ├── XElement.java │ │ │ │ ├── XElements.java │ │ │ │ ├── XPathEvaluator.java │ │ │ │ ├── XTokenQueue.java │ │ │ │ ├── Xsoup.java │ │ │ │ ├── w3c/ │ │ │ │ │ ├── AttributeAdaptor.java │ │ │ │ │ ├── AttributesAdaptor.java │ │ │ │ │ ├── DocumentAdaptor.java │ │ │ │ │ ├── DummyTypeInfo.java │ │ │ │ │ ├── ElementAdaptor.java │ │ │ │ │ ├── HtmlDocumentType.java │ │ │ │ │ ├── NamedNodeMapAdaptor.java │ │ │ │ │ ├── NodeAdaptor.java │ │ │ │ │ ├── NodeAdaptors.java │ │ │ │ │ └── NodeListAdaptor.java │ │ │ │ └── xevaluator/ │ │ │ │ ├── CombingXPathEvaluator.java │ │ │ │ ├── CombiningDefaultXElements.java │ │ │ │ ├── CombiningEvaluator.java │ │ │ │ ├── DefaultXElement.java │ │ │ │ ├── DefaultXElements.java │ │ │ │ ├── DefaultXPathEvaluator.java │ │ │ │ ├── ElementOperator.java │ │ │ │ ├── FormattingVisitor.java │ │ │ │ ├── HtmlToPlainText.java │ │ │ │ ├── StructuralEvaluator.java │ │ │ │ ├── XEvaluators.java │ │ │ │ └── XPathParser.java │ │ │ ├── javadoc/ │ │ │ │ └── overview.html │ │ │ ├── resources/ │ │ │ │ └── content.html │ │ │ └── webapp/ │ │ │ └── WEB-INF/ │ │ │ └── web.xml │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── xsoup/ │ │ │ ├── XTokenQueueTest.java │ │ │ ├── XsoupTest.java │ │ │ └── w3c/ │ │ │ ├── DocumentAdaptorTest.java │ │ │ └── W3cEvaluatorTest.java │ │ └── resources/ │ │ └── htmltests/ │ │ ├── README │ │ ├── baidu-cn-home.html │ │ ├── baidu-variant.html │ │ ├── google-ipod.html │ │ ├── meta-charset-1.html │ │ ├── meta-charset-2.html │ │ ├── meta-charset-3.html │ │ ├── news-com-au-home.html │ │ ├── nyt-article-1.html │ │ ├── smh-biz-article-1.html │ │ ├── xml-test.xml │ │ ├── yahoo-article-1.html │ │ └── yahoo-jp.html │ ├── jun_memcached/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── webapp/ │ │ ├── WEB-INF/ │ │ │ └── web.xml │ │ └── index.jsp │ ├── jun_minio/ │ │ ├── pom.xml │ │ └── src/ │ │ └── test/ │ │ └── java/ │ │ └── MinioTest.java │ ├── jun_mongodb/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ └── index.jsp │ │ └── test/ │ │ └── java/ │ │ ├── MongoDBCRUDTest.java │ │ └── MongoDBConnTest.java │ ├── jun_multicluster/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── webapp/ │ │ ├── WEB-INF/ │ │ │ └── web.xml │ │ └── index.jsp │ ├── jun_mybatis/ │ │ ├── all.log │ │ ├── mybatis.sql │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── mybatis/ │ │ │ ├── Blog.java │ │ │ ├── BlogMapper.java │ │ │ ├── DateTypeHandler.java │ │ │ ├── MyBatisDruidMainTest.java │ │ │ ├── User.java │ │ │ ├── UserMapper.java │ │ │ ├── pojo/ │ │ │ │ ├── Grade.java │ │ │ │ ├── IBlogMapper.java │ │ │ │ ├── blog.java │ │ │ │ ├── blogMapper.xml │ │ │ │ ├── blogMapperInterface.xml │ │ │ │ ├── student.java │ │ │ │ ├── studentClass.java │ │ │ │ ├── studentClassMapper.java │ │ │ │ ├── studentClassMapper.xml │ │ │ │ ├── studentMapper.java │ │ │ │ └── studentMapper.xml │ │ │ └── test/ │ │ │ ├── DemoTest1.java │ │ │ ├── DemoTest2.java │ │ │ ├── DemoTest3.java │ │ │ ├── 关联查询.txt │ │ │ ├── 动态sql │ │ │ ├── 参数不一致.txt │ │ │ ├── 延迟加载.txt │ │ │ ├── 日志Log4uj.txt │ │ │ └── 输入参数说明.txt │ │ └── resources/ │ │ ├── db.properties │ │ ├── log4j.properties │ │ └── mybatis-config.xml │ ├── jun_mybatisplus/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── mybatisplus/ │ │ │ │ ├── CodeGenerator.java │ │ │ │ ├── biz/ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── Company.java │ │ │ │ │ │ └── Employee.java │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ ├── CompanyMapper.java │ │ │ │ │ │ └── EmployeeMapper.java │ │ │ │ │ └── test/ │ │ │ │ │ ├── MyMetaObjectHandler.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── CompanyController.java │ │ │ │ │ │ └── EmployeeController.java │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── Company.java │ │ │ │ │ │ └── Employee.java │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ ├── CompanyMapper.java │ │ │ │ │ │ └── EmployeeMapper.java │ │ │ │ │ └── service/ │ │ │ │ │ ├── ICompanyService.java │ │ │ │ │ ├── IEmployeeService.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── CompanyServiceImpl.java │ │ │ │ │ └── EmployeeServiceImpl.java │ │ │ │ └── generator/ │ │ │ │ ├── GeneratorTest.java │ │ │ │ └── MysqlGenerator.java │ │ │ └── resources/ │ │ │ ├── applicationContext.xml │ │ │ ├── db.properties │ │ │ ├── log4j.xml │ │ │ ├── mapper/ │ │ │ │ ├── Company.xml │ │ │ │ └── Employee.xml │ │ │ └── mybatis-config.xml │ │ └── test/ │ │ └── java/ │ │ ├── TestARMP.java │ │ ├── TestMP.java │ │ └── TestMbp.java │ ├── jun_mycat/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── webapp/ │ │ ├── WEB-INF/ │ │ │ └── web.xml │ │ └── index.jsp │ ├── jun_mysql/ │ │ ├── db_book.sql │ │ ├── mysql_backup.md │ │ ├── mysql_date.md │ │ ├── mysql_index.md │ │ ├── mysql_procedure.md │ │ ├── mysql_procedure2.md │ │ ├── mysql_procedure3.md │ │ ├── mysql_sqltext.md │ │ ├── mysql_sqltext2.md │ │ ├── mysql_sqltext3.md │ │ ├── mysql_sqltext4.md │ │ ├── mysql_sqltext5.md │ │ ├── mysql_sqltext6.md │ │ ├── mysql_table.md │ │ ├── mysql_triger.md │ │ ├── mysql_view.md │ │ ├── pom.xml │ │ ├── src/ │ │ │ └── site/ │ │ │ ├── apt/ │ │ │ │ └── index.apt │ │ │ └── site.xml │ │ ├── t_grade.sql │ │ ├── t_pricelevel.sql │ │ └── t_student.sql │ ├── jun_okhttp/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── mzlion/ │ │ │ │ └── easyokhttp/ │ │ │ │ ├── HttpClient.java │ │ │ │ ├── cookie/ │ │ │ │ │ ├── CookieStore.java │ │ │ │ │ ├── DefaultCookieJar.java │ │ │ │ │ └── MemoryCookieStore.java │ │ │ │ ├── exception/ │ │ │ │ │ ├── HttpClientConfigException.java │ │ │ │ │ ├── HttpClientException.java │ │ │ │ │ └── HttpStatusCodeException.java │ │ │ │ ├── http/ │ │ │ │ │ ├── BasicHeader.java │ │ │ │ │ ├── DebugLoggingInterceptor.java │ │ │ │ │ ├── FileRequestBody.java │ │ │ │ │ ├── FileWrapper.java │ │ │ │ │ ├── Header.java │ │ │ │ │ ├── InputStreamRequestBody.java │ │ │ │ │ └── ProcessRequestBody.java │ │ │ │ ├── request/ │ │ │ │ │ ├── AbsHttpRequest.java │ │ │ │ │ ├── BaseBodyHttpRequest.java │ │ │ │ │ ├── BinaryBodyPostRequest.java │ │ │ │ │ ├── GetRequest.java │ │ │ │ │ ├── HttpRequest.java │ │ │ │ │ ├── PostRequest.java │ │ │ │ │ └── TextBodyRequest.java │ │ │ │ ├── response/ │ │ │ │ │ ├── HttpResponse.java │ │ │ │ │ ├── callback/ │ │ │ │ │ │ ├── Callback.java │ │ │ │ │ │ └── CallbackAdaptor.java │ │ │ │ │ └── handle/ │ │ │ │ │ ├── DataHandler.java │ │ │ │ │ ├── FileDataHandler.java │ │ │ │ │ ├── JsonDataHandler.java │ │ │ │ │ └── StringDataHandler.java │ │ │ │ └── utils/ │ │ │ │ ├── SSLContexts.java │ │ │ │ └── Utils.java │ │ │ └── resources/ │ │ │ └── easy-okhttp.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── mzlion/ │ │ └── easyokhttp/ │ │ └── HttpClientTest.java │ ├── jun_online_java_complier/ │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── README.en.md │ │ ├── README.md │ │ ├── mvnw │ │ ├── mvnw.cmd │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── lzb/ │ │ │ └── onlinejava/ │ │ │ └── complier/ │ │ │ ├── ComplierApplication.java │ │ │ ├── config/ │ │ │ │ ├── Constans.java │ │ │ │ ├── SwaggerConfig.java │ │ │ │ ├── WebMvcConfig.java │ │ │ │ └── WebSecurityConfig.java │ │ │ ├── controller/ │ │ │ │ ├── JavaCompileController.java │ │ │ │ └── SubjectComileController.java │ │ │ ├── dto/ │ │ │ │ ├── JavaComileResult.java │ │ │ │ ├── SubjectDetail.java │ │ │ │ └── SubjectResult.java │ │ │ ├── enums/ │ │ │ │ ├── InvokeTypeEnum.java │ │ │ │ └── ResultTypeEnum.java │ │ │ ├── exception/ │ │ │ │ └── ComplieException.java │ │ │ ├── service/ │ │ │ │ ├── JavaComileService.java │ │ │ │ └── impl/ │ │ │ │ └── JavaComplieServiceImpl.java │ │ │ ├── subject/ │ │ │ │ ├── Subject.java │ │ │ │ ├── Subject1Impl.java │ │ │ │ └── SubjectFactory.java │ │ │ ├── testJava/ │ │ │ │ └── Solution.java │ │ │ ├── util/ │ │ │ │ ├── ClassClassLoader.java │ │ │ │ ├── DeleteFileUtil.java │ │ │ │ ├── EqualUtil.java │ │ │ │ ├── JavaCodeCompileHelper.java │ │ │ │ ├── ResourcesUtil.java │ │ │ │ └── ToStringUtil.java │ │ │ └── vo/ │ │ │ └── ResultResponse.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── logback-spring.xml │ │ ├── path.properties │ │ └── templates/ │ │ └── index.ftl │ ├── jun_oracle/ │ │ ├── oracle to_date.md │ │ ├── oracle_book.sql │ │ ├── oracle_cursor.md │ │ ├── oracle_impexp.md │ │ ├── oracle_number.md │ │ ├── oracle_package.md │ │ ├── oracle_plsql.md │ │ ├── oracle_procedure.md │ │ ├── oracle_role.md │ │ ├── oracle_sqltxt.md │ │ ├── oracle_sum.md │ │ ├── oracle_to_data2.md │ │ ├── pom.xml │ │ └── src/ │ │ └── site/ │ │ ├── apt/ │ │ │ └── index.apt │ │ └── site.xml │ ├── jun_pay/ │ │ ├── jun_pay_weixin/ │ │ │ └── readme.md │ │ ├── jun_pay_zhifubao/ │ │ │ └── readme.md │ │ └── pom.xml │ ├── jun_pdf/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── pdf/ │ │ └── itext/ │ │ ├── CreateWordDemo.java │ │ ├── OperatorRTF.java │ │ ├── ReadWord.java │ │ └── WordDemo.java │ ├── jun_poi/ │ │ ├── README.md │ │ ├── pom.xml │ │ ├── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ ├── com/ │ │ │ │ │ └── jun/ │ │ │ │ │ └── plugin/ │ │ │ │ │ ├── poi/ │ │ │ │ │ │ ├── TestPoi.java │ │ │ │ │ │ ├── demo/ │ │ │ │ │ │ │ ├── CellStyles.java │ │ │ │ │ │ │ ├── DefaultCellStyles.java │ │ │ │ │ │ │ ├── ExcelExportHelper.java │ │ │ │ │ │ │ ├── ExcelReadUtils.java │ │ │ │ │ │ │ ├── test/ │ │ │ │ │ │ │ │ └── RedCellStyles.java │ │ │ │ │ │ │ └── word/ │ │ │ │ │ │ │ └── ReadAndWriteDoc.java │ │ │ │ │ │ ├── impexp/ │ │ │ │ │ │ │ ├── excel/ │ │ │ │ │ │ │ │ ├── BaseExportExcel.java │ │ │ │ │ │ │ │ ├── BaseSheel.java │ │ │ │ │ │ │ │ ├── BeanExport.java │ │ │ │ │ │ │ │ ├── BeanSheel.java │ │ │ │ │ │ │ │ ├── ExSheel.java │ │ │ │ │ │ │ │ ├── ExportExcel.java │ │ │ │ │ │ │ │ ├── ImportExcel.java │ │ │ │ │ │ │ │ ├── MapExport.java │ │ │ │ │ │ │ │ ├── MapHeader.java │ │ │ │ │ │ │ │ ├── MapSheel.java │ │ │ │ │ │ │ │ ├── Reflections.java │ │ │ │ │ │ │ │ └── annotation/ │ │ │ │ │ │ │ │ └── ExcelField.java │ │ │ │ │ │ │ └── test/ │ │ │ │ │ │ │ ├── MyBean.java │ │ │ │ │ │ │ └── Test.java │ │ │ │ │ │ ├── learn/ │ │ │ │ │ │ │ ├── CellStyles.java │ │ │ │ │ │ │ ├── DefaultCellStyles.java │ │ │ │ │ │ │ ├── ExcelExportHelper.java │ │ │ │ │ │ │ ├── ExcelReadUtils.java │ │ │ │ │ │ │ ├── test/ │ │ │ │ │ │ │ │ ├── ExcelExportUitlsTest.java │ │ │ │ │ │ │ │ ├── ExcelReadUtilsTest.java │ │ │ │ │ │ │ │ └── RedCellStyles.java │ │ │ │ │ │ │ └── word/ │ │ │ │ │ │ │ └── ReadAndWriteDoc.java │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ └── PoiUtil.java │ │ │ │ │ ├── poiExp/ │ │ │ │ │ │ ├── action/ │ │ │ │ │ │ │ └── UserAction.java │ │ │ │ │ │ ├── dao/ │ │ │ │ │ │ │ └── UserDao.java │ │ │ │ │ │ ├── model/ │ │ │ │ │ │ │ ├── PageBean.java │ │ │ │ │ │ │ └── User.java │ │ │ │ │ │ ├── template/ │ │ │ │ │ │ │ └── userExporTemplate.xls │ │ │ │ │ │ └── util/ │ │ │ │ │ │ ├── DbUtil.java │ │ │ │ │ │ ├── ExcelUtil.java │ │ │ │ │ │ ├── JsonUtil.java │ │ │ │ │ │ ├── ResponseUtil.java │ │ │ │ │ │ └── StringUtil.java │ │ │ │ │ └── poitest/ │ │ │ │ │ ├── common/ │ │ │ │ │ │ ├── Constants.java │ │ │ │ │ │ ├── PoiUtils.java │ │ │ │ │ │ └── ReflectionUtil.java │ │ │ │ │ ├── exception/ │ │ │ │ │ │ ├── IErrors.java │ │ │ │ │ │ ├── PoiElErrorCode.java │ │ │ │ │ │ └── PoiElException.java │ │ │ │ │ ├── exp/ │ │ │ │ │ │ ├── PoiExporter.java │ │ │ │ │ │ ├── context/ │ │ │ │ │ │ │ └── PoiExporterContext.java │ │ │ │ │ │ ├── domain/ │ │ │ │ │ │ │ └── MutiRowModel.java │ │ │ │ │ │ ├── function/ │ │ │ │ │ │ │ ├── FunctionRegister.java │ │ │ │ │ │ │ └── InternalUtils.java │ │ │ │ │ │ └── processor/ │ │ │ │ │ │ ├── DefaultRowProcessor.java │ │ │ │ │ │ ├── ForeachRowProcessor.java │ │ │ │ │ │ ├── RowProcessor.java │ │ │ │ │ │ └── RowProcessorStrategy.java │ │ │ │ │ └── imp/ │ │ │ │ │ ├── PoiImporter.java │ │ │ │ │ ├── anno/ │ │ │ │ │ │ ├── ExcelColum.java │ │ │ │ │ │ └── ExcelDateColum.java │ │ │ │ │ ├── processor/ │ │ │ │ │ │ ├── AbstractResolver.java │ │ │ │ │ │ ├── DateFieldResolver.java │ │ │ │ │ │ ├── DefaultFieldResolver.java │ │ │ │ │ │ ├── EmptyResolver.java │ │ │ │ │ │ ├── Resolver.java │ │ │ │ │ │ └── ResolverAdaptor.java │ │ │ │ │ └── vo/ │ │ │ │ │ ├── PoiGenericSheetVo.java │ │ │ │ │ └── PoiSheetVo.java │ │ │ │ ├── log4j.properties │ │ │ │ └── struts.xml │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ ├── app.xml │ │ │ │ ├── com/ │ │ │ │ │ └── jun/ │ │ │ │ │ └── plugin/ │ │ │ │ │ └── poi/ │ │ │ │ │ ├── ExcelExportUitlsTest.java │ │ │ │ │ ├── ExcelReadUtilsTest.java │ │ │ │ │ ├── demo/ │ │ │ │ │ │ ├── Demo1.java │ │ │ │ │ │ ├── Demo10.java │ │ │ │ │ │ ├── Demo11.java │ │ │ │ │ │ ├── Demo12.java │ │ │ │ │ │ ├── Demo13.java │ │ │ │ │ │ ├── Demo14.java │ │ │ │ │ │ ├── Demo15.java │ │ │ │ │ │ ├── Demo2.java │ │ │ │ │ │ ├── Demo3.java │ │ │ │ │ │ ├── Demo4.java │ │ │ │ │ │ ├── Demo5.java │ │ │ │ │ │ ├── Demo6.java │ │ │ │ │ │ ├── Demo7.java │ │ │ │ │ │ ├── Demo8.java │ │ │ │ │ │ └── Demo9.java │ │ │ │ │ ├── replace/ │ │ │ │ │ │ ├── ExcelReplaceDataVO.java │ │ │ │ │ │ ├── ExcelUtil.java │ │ │ │ │ │ ├── ReplaceExcelServlet.java │ │ │ │ │ │ └── TestExcelReplace.java │ │ │ │ │ ├── template/ │ │ │ │ │ │ ├── ExcelTemplate.java │ │ │ │ │ │ ├── TemplateServlet.java │ │ │ │ │ │ └── TestTemplate.java │ │ │ │ │ ├── test/ │ │ │ │ │ │ ├── ReadExcel.java │ │ │ │ │ │ ├── ReadExcelServlet.java │ │ │ │ │ │ ├── common/ │ │ │ │ │ │ │ └── Builder.java │ │ │ │ │ │ ├── excel/ │ │ │ │ │ │ │ ├── ReadTest.java │ │ │ │ │ │ │ ├── ReadTest2.java │ │ │ │ │ │ │ ├── ReadTest3.java │ │ │ │ │ │ │ ├── ReadTest4.java │ │ │ │ │ │ │ ├── ReadTest7.java │ │ │ │ │ │ │ ├── ReadTestEventModel5.java │ │ │ │ │ │ │ ├── ReadTestGlobalConverter6.java │ │ │ │ │ │ │ ├── SaxReaderTest1.java │ │ │ │ │ │ │ ├── WriteTest1.java │ │ │ │ │ │ │ ├── WriteTest2.java │ │ │ │ │ │ │ ├── WriteTest3.java │ │ │ │ │ │ │ ├── WriteTest4.java │ │ │ │ │ │ │ ├── annotation/ │ │ │ │ │ │ │ │ ├── BingConvertor.java │ │ │ │ │ │ │ │ ├── CellConfig.java │ │ │ │ │ │ │ │ └── OutAlias.java │ │ │ │ │ │ │ ├── converter/ │ │ │ │ │ │ │ │ ├── AbstractFieldConvertor.java │ │ │ │ │ │ │ │ ├── ConverterMatcher.java │ │ │ │ │ │ │ │ ├── FieldValueConverter.java │ │ │ │ │ │ │ │ ├── HeaderReflectConverter.java │ │ │ │ │ │ │ │ ├── ModelAdapter.java │ │ │ │ │ │ │ │ ├── base/ │ │ │ │ │ │ │ │ │ ├── BooleanFieldConverter.java │ │ │ │ │ │ │ │ │ ├── ByteFieldConverter.java │ │ │ │ │ │ │ │ │ ├── CharacterFieldConverter.java │ │ │ │ │ │ │ │ │ ├── DateFieldConverter.java │ │ │ │ │ │ │ │ │ ├── DoubleFieldConverter.java │ │ │ │ │ │ │ │ │ ├── FloatFieldConverter.java │ │ │ │ │ │ │ │ │ ├── IntegerFieldConverter.java │ │ │ │ │ │ │ │ │ ├── LongFieldConverter.java │ │ │ │ │ │ │ │ │ ├── ShortFieldConverter.java │ │ │ │ │ │ │ │ │ └── StringFieldConverter.java │ │ │ │ │ │ │ │ ├── collections/ │ │ │ │ │ │ │ │ │ ├── ArrayConverter.java │ │ │ │ │ │ │ │ │ └── CollectionConverter.java │ │ │ │ │ │ │ │ └── enums/ │ │ │ │ │ │ │ │ └── EnumConVerter.java │ │ │ │ │ │ │ ├── core/ │ │ │ │ │ │ │ │ ├── BingExcel.java │ │ │ │ │ │ │ │ ├── BingExcelBuilder.java │ │ │ │ │ │ │ │ ├── BingExcelEvent.java │ │ │ │ │ │ │ │ ├── BingExcelEventBuilder.java │ │ │ │ │ │ │ │ ├── BingReadListener.java │ │ │ │ │ │ │ │ ├── BingWriterHandler.java │ │ │ │ │ │ │ │ ├── ReaderCondition.java │ │ │ │ │ │ │ │ ├── common/ │ │ │ │ │ │ │ │ │ └── FieldRelation.java │ │ │ │ │ │ │ │ ├── handler/ │ │ │ │ │ │ │ │ │ ├── ConverterHandler.java │ │ │ │ │ │ │ │ │ └── LocalConverterHandler.java │ │ │ │ │ │ │ │ ├── impl/ │ │ │ │ │ │ │ │ │ ├── BingExcelEventImpl.java │ │ │ │ │ │ │ │ │ └── BingExcelImpl.java │ │ │ │ │ │ │ │ └── reflect/ │ │ │ │ │ │ │ │ └── TypeAdapterConverter.java │ │ │ │ │ │ │ ├── exception/ │ │ │ │ │ │ │ │ ├── BingSaxReadStopException.java │ │ │ │ │ │ │ │ ├── ConversionException.java │ │ │ │ │ │ │ │ ├── IllegalCellConfigException.java │ │ │ │ │ │ │ │ ├── IllegalEntityException.java │ │ │ │ │ │ │ │ ├── InitializationException.java │ │ │ │ │ │ │ │ ├── MissingCellConfigException.java │ │ │ │ │ │ │ │ └── illegalValueException.java │ │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ │ ├── AnnotationMapper.java │ │ │ │ │ │ │ │ ├── BaseGlobalConverterMapper.java │ │ │ │ │ │ │ │ ├── ConversionMapper.java │ │ │ │ │ │ │ │ └── ExcelConverterMapperHandler.java │ │ │ │ │ │ │ ├── reader/ │ │ │ │ │ │ │ │ ├── AbstractExcelReadListener.java │ │ │ │ │ │ │ │ ├── ExcelReadListener.java │ │ │ │ │ │ │ │ ├── ExcelReaderFactory.java │ │ │ │ │ │ │ │ ├── ReadHandler.java │ │ │ │ │ │ │ │ ├── hssf/ │ │ │ │ │ │ │ │ │ ├── DefaultHSSFHandler.java │ │ │ │ │ │ │ │ │ ├── ExcelFormatTrackingHSSFListener.java │ │ │ │ │ │ │ │ │ └── HSSFListenerAbstract.java │ │ │ │ │ │ │ │ ├── sax/ │ │ │ │ │ │ │ │ │ ├── DefaultXSSFSaxHandler.java │ │ │ │ │ │ │ │ │ ├── ExcelReadOnlySharedStringsTable.java │ │ │ │ │ │ │ │ │ └── ExcelXSSFSheetXMLHandler.java │ │ │ │ │ │ │ │ └── usermodel/ │ │ │ │ │ │ │ │ ├── ExcelBuiltinFormats.java │ │ │ │ │ │ │ │ ├── ExcelDataFormatter.java │ │ │ │ │ │ │ │ ├── ExcelDateUtil.java │ │ │ │ │ │ │ │ ├── ExcelHSSFDataFormat.java │ │ │ │ │ │ │ │ └── ExcelHSSFDataFormatter.java │ │ │ │ │ │ │ ├── vo/ │ │ │ │ │ │ │ │ ├── CellKV.java │ │ │ │ │ │ │ │ ├── ListLine.java │ │ │ │ │ │ │ │ ├── ListRow.java │ │ │ │ │ │ │ │ └── OutValue.java │ │ │ │ │ │ │ └── writer/ │ │ │ │ │ │ │ ├── AbstractWriteHandler.java │ │ │ │ │ │ │ ├── DefaultFileWriteHandler.java │ │ │ │ │ │ │ ├── DefaultStreamWriteHandler.java │ │ │ │ │ │ │ ├── ExcelWriterFactory.java │ │ │ │ │ │ │ ├── SXSSFWriterHandler.java │ │ │ │ │ │ │ ├── WriteHandler.java │ │ │ │ │ │ │ └── exception/ │ │ │ │ │ │ │ └── ExcelOutException.java │ │ │ │ │ │ ├── other/ │ │ │ │ │ │ │ ├── AnotationTest.java │ │ │ │ │ │ │ ├── LinkedTest.java │ │ │ │ │ │ │ ├── MyTest.java │ │ │ │ │ │ │ ├── ReadTestThreadLocal.java │ │ │ │ │ │ │ ├── ReadTestThreadLocalGC.java │ │ │ │ │ │ │ └── TestTest.java │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ ├── DataTypeDetect.java │ │ │ │ │ │ ├── FileCreateUtils.java │ │ │ │ │ │ ├── ReflectDependencyFactory.java │ │ │ │ │ │ └── StringParseUtil.java │ │ │ │ │ ├── test2/ │ │ │ │ │ │ ├── ExcelReadHelper.java │ │ │ │ │ │ ├── ExcelWriteHelper.java │ │ │ │ │ │ ├── ReadRowMapper.java │ │ │ │ │ │ ├── WriteRowMapper.java │ │ │ │ │ │ └── test/ │ │ │ │ │ │ ├── ExcelReadHelperTest.java │ │ │ │ │ │ └── ExcelWriteHelperTest.java │ │ │ │ │ ├── testExport/ │ │ │ │ │ │ ├── Book.java │ │ │ │ │ │ ├── Excel2007Servlet.java │ │ │ │ │ │ ├── ExcelServlet.java │ │ │ │ │ │ ├── ExportExcel.java │ │ │ │ │ │ ├── Student.java │ │ │ │ │ │ ├── TestExportExcel.java │ │ │ │ │ │ └── TestExportExcel2007.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── EPlatform.java │ │ │ │ │ └── OSinfo.java │ │ │ │ ├── core.xml │ │ │ │ ├── file.xlsx │ │ │ │ ├── person.xls │ │ │ │ ├── person.xlsx │ │ │ │ ├── salary.xlsx │ │ │ │ ├── salary4.xlsx │ │ │ │ ├── salary6.xls │ │ │ │ ├── salary6.xlsx │ │ │ │ ├── salary7.xlsx │ │ │ │ ├── salaryEvent.xlsx │ │ │ │ └── template.xlsx │ │ │ └── resources/ │ │ │ ├── excel/ │ │ │ │ └── order.xlsx │ │ │ ├── logback.xml │ │ │ └── template/ │ │ │ ├── 01_Template_foreach.xlsx │ │ │ └── 02_Template_多个foreach.xlsx │ │ └── t_user.sql │ ├── jun_poi_tl_word_export/ │ │ ├── READE.md │ │ ├── pom.xml │ │ ├── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ ├── META-INF/ │ │ │ │ └── MANIFEST.MF │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── poi/ │ │ │ └── resume/ │ │ │ ├── BreakPagePolicy.java │ │ │ ├── ExcelImportMain.java │ │ │ ├── ExcelVo.java │ │ │ ├── ExperiencePolicy.java │ │ │ ├── Main.java │ │ │ ├── Test.java │ │ │ ├── WordVO.java │ │ │ ├── annotation/ │ │ │ │ └── ExcelField.java │ │ │ └── tool/ │ │ │ └── ExcelUtil.java │ │ └── start/ │ │ ├── README.md │ │ ├── output1111-1.docx │ │ ├── output1111-12.docx │ │ ├── test-template.docx │ │ ├── test-template2.docx │ │ ├── 人员清单.xlsx │ │ ├── 启动.bat │ │ ├── 映射关系.xlsx │ │ ├── 测试416-2.docx │ │ ├── 简历.docx │ │ ├── 简历模板.docx │ │ ├── 简历模板2.docx │ │ └── 简历模板output416.docx │ ├── jun_qrcode/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ ├── kaptcha/ │ │ │ │ │ └── KcaptchaController.java │ │ │ │ ├── vccode/ │ │ │ │ │ ├── ImageTest.java │ │ │ │ │ └── VerifyCode.java │ │ │ │ └── zxing/ │ │ │ │ ├── BufferedImageLuminanceSource.java │ │ │ │ ├── HttpClientHelper.java │ │ │ │ ├── LogoConfig.java │ │ │ │ ├── QrcodeUtil.java │ │ │ │ ├── ShortUrlUtil.java │ │ │ │ ├── ZXingCodeUtil.java │ │ │ │ ├── ZXingConfig.java │ │ │ │ ├── ZxingUtil.java │ │ │ │ └── support/ │ │ │ │ ├── BufferedImageLuminanceSource.java │ │ │ │ ├── BufferedImageSource.java │ │ │ │ └── BufferedImageUtils.java │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ ├── web (2).xml │ │ │ │ └── web.xml │ │ │ ├── index (2).jsp │ │ │ ├── index.jsp │ │ │ └── jquery-qrcode/ │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── examples/ │ │ │ │ ├── basic.html │ │ │ │ └── demo.html │ │ │ ├── index.html │ │ │ └── src/ │ │ │ ├── jquery.qrcode.js │ │ │ └── qrcode.js │ │ └── test/ │ │ └── java/ │ │ └── ReadLogoTest.java │ ├── jun_quartz/ │ │ ├── README.md │ │ ├── doc/ │ │ │ ├── db/ │ │ │ │ ├── init_db.sql │ │ │ │ ├── mysql_db.sql │ │ │ │ └── sqlserver_db.sql │ │ │ └── quartz/ │ │ │ ├── service-dataExportImport.xml │ │ │ ├── test.jsp │ │ │ └── 网站地址.txt │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ ├── quartz/ │ │ │ │ │ ├── DataSyncJob.java │ │ │ │ │ ├── job/ │ │ │ │ │ │ ├── DemoJob.java │ │ │ │ │ │ └── PrintWordsJob.java │ │ │ │ │ ├── quartz/ │ │ │ │ │ │ └── AutoWiringSpringBeanJobFactory.java │ │ │ │ │ ├── schedule/ │ │ │ │ │ │ ├── MyScheduler.java │ │ │ │ │ │ └── MyScheduler2.java │ │ │ │ │ └── task/ │ │ │ │ │ └── TestTask.java │ │ │ │ └── timer/ │ │ │ │ ├── TestTimer.java │ │ │ │ ├── TestTimer2.java │ │ │ │ └── TestTimer3.java │ │ │ ├── resources/ │ │ │ │ ├── applicationContext-quartz.xml │ │ │ │ ├── applicationContext.xml │ │ │ │ ├── jdbc.properties │ │ │ │ ├── log4j.properties │ │ │ │ └── quartz.properties │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ ├── web (2).xml │ │ │ │ └── web.xml │ │ │ ├── index (2).jsp │ │ │ └── index.jsp │ │ └── test/ │ │ └── resources/ │ │ ├── log4j2.xml │ │ └── org/ │ │ └── frameworkset/ │ │ └── task/ │ │ └── quarts-task.xml │ ├── jun_redis/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ ├── shiro-redis/ │ │ │ ├── README.md │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── org/ │ │ │ │ └── iherus/ │ │ │ │ └── shiro/ │ │ │ │ ├── cache/ │ │ │ │ │ └── redis/ │ │ │ │ │ ├── RedisCache.java │ │ │ │ │ ├── RedisCacheConfigFactory.java │ │ │ │ │ ├── RedisCacheManager.java │ │ │ │ │ └── RedisCachePool.java │ │ │ │ ├── exception/ │ │ │ │ │ └── SerializationException.java │ │ │ │ └── util/ │ │ │ │ ├── ArrayUtils.java │ │ │ │ ├── SerializeUtils.java │ │ │ │ └── StringUtils.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── org/ │ │ │ │ └── iherus/ │ │ │ │ └── shiro/ │ │ │ │ └── tester/ │ │ │ │ ├── CustomRealm.java │ │ │ │ ├── MD5Generator.java │ │ │ │ ├── SimpleCacheTest.java │ │ │ │ └── User.java │ │ │ └── resources/ │ │ │ ├── log4j.properties │ │ │ └── shiro-realm-test.ini │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ ├── RedisJava.java │ │ │ │ ├── SerializeUtil.java │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ ├── redis/ │ │ │ │ │ ├── bean/ │ │ │ │ │ │ └── User.java │ │ │ │ │ └── service/ │ │ │ │ │ └── RedisService.java │ │ │ │ └── rediscache/ │ │ │ │ ├── builder/ │ │ │ │ │ ├── AbstractCacheBuilder.java │ │ │ │ │ ├── CacheBuilder.java │ │ │ │ │ └── CacheBuilderFactory.java │ │ │ │ ├── loader/ │ │ │ │ │ ├── AbstractCacheLoader.java │ │ │ │ │ ├── CacheLoader.java │ │ │ │ │ └── RedisCacheLoader.java │ │ │ │ ├── serialize/ │ │ │ │ │ ├── JsonSerializer.java │ │ │ │ │ └── Serializer.java │ │ │ │ └── util/ │ │ │ │ └── RedisUtil.java │ │ │ ├── resources/ │ │ │ │ ├── config/ │ │ │ │ │ ├── redis.properties │ │ │ │ │ ├── spring-context.xml │ │ │ │ │ └── spring-redis-single.xml │ │ │ │ └── logback.xml │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ └── index.jsp │ │ └── test/ │ │ └── java/ │ │ ├── RedisServiceTest.java │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── rediscache/ │ │ └── test/ │ │ └── TestCache.java │ ├── jun_serialization/ │ │ ├── README.md │ │ ├── guava.md │ │ ├── pom.xml │ │ ├── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── utils/ │ │ │ ├── pojo/ │ │ │ │ ├── Location.java │ │ │ │ ├── TestPojo.java │ │ │ │ └── User.java │ │ │ ├── serialization/ │ │ │ │ ├── AbstractSerialize.java │ │ │ │ ├── FastjsonSerializeUtil.java │ │ │ │ ├── HessianSerializeUtil.java │ │ │ │ ├── JacksonSerialize.java │ │ │ │ ├── JdkSerializeUtil.java │ │ │ │ ├── ProtostuffSerializeUtil.java │ │ │ │ └── SerializeTest.java │ │ │ └── test/ │ │ │ └── SerializeTest.java │ │ └── 序列化.md │ ├── jun_shiro/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── webapp/ │ │ └── WEB-INF/ │ │ └── web.xml │ ├── jun_solr/ │ │ ├── .gitignore │ │ ├── .keep │ │ ├── README.md │ │ ├── create_index.sh │ │ ├── jun_solr_api/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── solr/ │ │ │ ├── api/ │ │ │ │ └── ISearchBaseApiService.java │ │ │ └── model/ │ │ │ ├── Commodity.java │ │ │ ├── FacetItem.java │ │ │ ├── FacetValue.java │ │ │ ├── ResultType.java │ │ │ ├── SearchModel.java │ │ │ └── SearchResult.java │ │ ├── jun_solr_api_server/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── jun/ │ │ │ │ │ └── plugin/ │ │ │ │ │ └── solr/ │ │ │ │ │ ├── api/ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ └── SearchBaseApiServiceImpl.java │ │ │ │ │ └── utils/ │ │ │ │ │ ├── ConfigUtil.java │ │ │ │ │ ├── ConstantUtil.java │ │ │ │ │ ├── PinyinUtil.java │ │ │ │ │ ├── SolrUtil.java │ │ │ │ │ ├── SpringContextHolder.java │ │ │ │ │ └── StringUtil.java │ │ │ │ ├── resources/ │ │ │ │ │ ├── applicationContext-dubbo.xml │ │ │ │ │ ├── applicationContext.xml │ │ │ │ │ ├── config.properties │ │ │ │ │ ├── log4j.dtd │ │ │ │ │ └── log4j.xml │ │ │ │ └── webapp/ │ │ │ │ ├── WEB-INF/ │ │ │ │ │ └── web.xml │ │ │ │ └── index.jsp │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── solr/ │ │ │ │ └── api/ │ │ │ │ └── impl/ │ │ │ │ └── test/ │ │ │ │ └── SearchBaseApiServiceImplTest.java │ │ │ └── resources/ │ │ │ ├── applicationContext-test.xml │ │ │ └── config.properties │ │ ├── jun_solr_index/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── solr/ │ │ │ │ ├── CreateIndex.java │ │ │ │ ├── db/ │ │ │ │ │ └── CommodityDao.java │ │ │ │ └── util/ │ │ │ │ ├── CommonUtil.java │ │ │ │ ├── DbUtil.java │ │ │ │ ├── PinyinUtil.java │ │ │ │ ├── PropertyFile.java │ │ │ │ └── SolrUtil.java │ │ │ └── resources/ │ │ │ ├── config.properties │ │ │ ├── log4j.dtd │ │ │ └── log4j.xml │ │ ├── pom.xml │ │ └── schema.xml │ ├── jun_threadpool/ │ │ ├── README.md │ │ ├── dependency-reduced-pom.xml │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── base/ │ │ │ │ ├── executor/ │ │ │ │ │ ├── ExecutorTest.java │ │ │ │ │ ├── daemonthread/ │ │ │ │ │ │ ├── DaemonThread.java │ │ │ │ │ │ ├── DaemonThread2.java │ │ │ │ │ │ └── README.md │ │ │ │ │ └── threadpool/ │ │ │ │ │ ├── CustomThreadPoolExecutor.java │ │ │ │ │ └── ThreadPoolDemo.java │ │ │ │ ├── io/ │ │ │ │ │ ├── Demo.java │ │ │ │ │ ├── Demo2.java │ │ │ │ │ ├── ReFile.java │ │ │ │ │ ├── ReadMe.txt │ │ │ │ │ ├── aio/ │ │ │ │ │ │ ├── AcceptHandler.java │ │ │ │ │ │ ├── AsyncServerHandler.java │ │ │ │ │ │ ├── ReadHandler.java │ │ │ │ │ │ ├── ReadMe.txt │ │ │ │ │ │ ├── Server.java │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ └── client/ │ │ │ │ │ │ ├── AsyncClientHandler.java │ │ │ │ │ │ ├── Client.java │ │ │ │ │ │ ├── ReadHandler.java │ │ │ │ │ │ └── WriteHandler.java │ │ │ │ │ ├── bio/ │ │ │ │ │ │ ├── Calculator.java │ │ │ │ │ │ ├── Client.java │ │ │ │ │ │ ├── ReadMe.txt │ │ │ │ │ │ ├── ServerBetter.java │ │ │ │ │ │ ├── ServerHandler.java │ │ │ │ │ │ ├── ServerNormal.java │ │ │ │ │ │ └── Test.java │ │ │ │ │ ├── io/ │ │ │ │ │ │ ├── ReByte.java │ │ │ │ │ │ ├── ReCharacter.java │ │ │ │ │ │ └── io.txt │ │ │ │ │ ├── netty/ │ │ │ │ │ │ ├── Calculator.java │ │ │ │ │ │ ├── Client.java │ │ │ │ │ │ ├── ClientHandler.java │ │ │ │ │ │ ├── Server.java │ │ │ │ │ │ ├── ServerHandler.java │ │ │ │ │ │ ├── chat/ │ │ │ │ │ │ │ ├── SimpleChatServer.java │ │ │ │ │ │ │ ├── SimpleChatServerHandler.java │ │ │ │ │ │ │ ├── SimpleChatServerInitializer.java │ │ │ │ │ │ │ ├── client/ │ │ │ │ │ │ │ │ ├── SimpleChatClient.java │ │ │ │ │ │ │ │ ├── SimpleChatClientHandler.java │ │ │ │ │ │ │ │ └── SimpleChatClientInitializer.java │ │ │ │ │ │ │ └── readMe.txt │ │ │ │ │ │ ├── httpServer/ │ │ │ │ │ │ │ ├── HttpHandler.java │ │ │ │ │ │ │ └── HttpServer.java │ │ │ │ │ │ ├── readMe.txt │ │ │ │ │ │ ├── rpc/ │ │ │ │ │ │ │ ├── MessageCollector.java │ │ │ │ │ │ │ ├── MessageDecoder.java │ │ │ │ │ │ │ ├── MessageEncoder.java │ │ │ │ │ │ │ ├── MessageHandlers.java │ │ │ │ │ │ │ ├── MessageInput.java │ │ │ │ │ │ │ ├── MessageOutput.java │ │ │ │ │ │ │ ├── MessageRegistry.java │ │ │ │ │ │ │ ├── client/ │ │ │ │ │ │ │ │ ├── DemoClient.java │ │ │ │ │ │ │ │ ├── RPCClient.java │ │ │ │ │ │ │ │ ├── RPCRequest.java │ │ │ │ │ │ │ │ └── RPCResponse.java │ │ │ │ │ │ │ ├── common/ │ │ │ │ │ │ │ │ ├── DefaultHandler.java │ │ │ │ │ │ │ │ ├── ExpRequest.java │ │ │ │ │ │ │ │ ├── ExpRequestHandler.java │ │ │ │ │ │ │ │ ├── ExpResponse.java │ │ │ │ │ │ │ │ ├── FibRequestHandler.java │ │ │ │ │ │ │ │ ├── IMessageHandler.java │ │ │ │ │ │ │ │ ├── RPCException.java │ │ │ │ │ │ │ │ ├── RequestId.java │ │ │ │ │ │ │ │ └── ResponseRegistry.java │ │ │ │ │ │ │ ├── readMe.txt │ │ │ │ │ │ │ └── server/ │ │ │ │ │ │ │ ├── DemoServer.java │ │ │ │ │ │ │ └── RPCServer.java │ │ │ │ │ │ ├── test1/ │ │ │ │ │ │ │ ├── EchoClient.java │ │ │ │ │ │ │ ├── EchoClientHandler.java │ │ │ │ │ │ │ ├── EchoServer.java │ │ │ │ │ │ │ └── EchoServerHandler.java │ │ │ │ │ │ └── webSocketChat/ │ │ │ │ │ │ ├── HttpRequestHandler.java │ │ │ │ │ │ ├── TextWebSocketFrameHandler.java │ │ │ │ │ │ ├── WebsocketChatServer.java │ │ │ │ │ │ └── WebsocketChatServerInitializer.java │ │ │ │ │ └── nio/ │ │ │ │ │ ├── Client.java │ │ │ │ │ ├── ClientHandle.java │ │ │ │ │ ├── Server.java │ │ │ │ │ ├── ServerHandle.java │ │ │ │ │ ├── Test.java │ │ │ │ │ ├── TestClient.java │ │ │ │ │ └── readMe.txt │ │ │ │ ├── jvm/ │ │ │ │ │ ├── HeapOOMTest.java │ │ │ │ │ ├── Test.java │ │ │ │ │ └── readMe.txt │ │ │ │ ├── map/ │ │ │ │ │ ├── ListRe.java │ │ │ │ │ ├── ReList.java │ │ │ │ │ ├── ReMap.java │ │ │ │ │ ├── TestMap.java │ │ │ │ │ └── readMe.txt │ │ │ │ ├── socket/ │ │ │ │ │ ├── ClientDo.java │ │ │ │ │ ├── ServiceDo.java │ │ │ │ │ ├── Test1.java │ │ │ │ │ ├── Test2.java │ │ │ │ │ ├── Test3.java │ │ │ │ │ └── readMe.txt │ │ │ │ ├── synchronizedTest/ │ │ │ │ │ ├── Read.txt │ │ │ │ │ ├── SyT1.java │ │ │ │ │ ├── SyT2.java │ │ │ │ │ ├── SyT3.java │ │ │ │ │ └── SyT4.java │ │ │ │ ├── thread/ │ │ │ │ │ ├── Funner.java │ │ │ │ │ ├── Main.java │ │ │ │ │ ├── One.java │ │ │ │ │ ├── Two.java │ │ │ │ │ ├── join_example/ │ │ │ │ │ │ └── Test.java │ │ │ │ │ └── yield_example/ │ │ │ │ │ └── TestYield.java │ │ │ │ ├── threadTest/ │ │ │ │ │ ├── Consumer1/ │ │ │ │ │ │ ├── EggConsumer.java │ │ │ │ │ │ └── readMe.txt │ │ │ │ │ ├── Profiler.java │ │ │ │ │ ├── Test.java │ │ │ │ │ ├── ThreadPool.java │ │ │ │ │ ├── WaitNotify.java │ │ │ │ │ └── atomic/ │ │ │ │ │ └── IntLongBoo.java │ │ │ │ └── volatileTest/ │ │ │ │ └── read.txt │ │ │ ├── resources/ │ │ │ │ ├── ReadMe.txt │ │ │ │ ├── WebsocketChatClient.html │ │ │ │ └── log4j2.properties │ │ │ └── webapp/ │ │ │ └── WEB-INF/ │ │ │ └── web.xml │ │ └── test/ │ │ └── java/ │ │ └── io/ │ │ └── github/ │ │ └── wujun728/ │ │ └── threadpool/ │ │ └── ThreadPoolDemoTest.java │ ├── jun_uid/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── myzmds/ │ │ │ │ └── ecp/ │ │ │ │ └── core/ │ │ │ │ └── uid/ │ │ │ │ ├── UidContext.java │ │ │ │ ├── baidu/ │ │ │ │ │ ├── BitsAllocator.java │ │ │ │ │ ├── UidGenerator.java │ │ │ │ │ ├── buffer/ │ │ │ │ │ │ ├── BufferPaddingExecutor.java │ │ │ │ │ │ ├── BufferedUidProvider.java │ │ │ │ │ │ ├── RejectedPutBufferHandler.java │ │ │ │ │ │ ├── RejectedTakeBufferHandler.java │ │ │ │ │ │ └── RingBuffer.java │ │ │ │ │ ├── exception/ │ │ │ │ │ │ └── UidGenerateException.java │ │ │ │ │ ├── impl/ │ │ │ │ │ │ ├── CachedUidGenerator.java │ │ │ │ │ │ └── DefaultUidGenerator.java │ │ │ │ │ ├── package-info.java │ │ │ │ │ └── utils/ │ │ │ │ │ ├── DateUtils.java │ │ │ │ │ ├── DockerUtils.java │ │ │ │ │ ├── EnumUtils.java │ │ │ │ │ ├── NamingThreadFactory.java │ │ │ │ │ ├── PaddedAtomicLong.java │ │ │ │ │ └── ValuedEnum.java │ │ │ │ ├── extend/ │ │ │ │ │ ├── annotation/ │ │ │ │ │ │ ├── Uid.java │ │ │ │ │ │ └── UidModel.java │ │ │ │ │ └── strategy/ │ │ │ │ │ ├── BaiduUidStrategy.java │ │ │ │ │ ├── IUidStrategy.java │ │ │ │ │ ├── LeafSegmentStrategy.java │ │ │ │ │ ├── SpringStrategy.java │ │ │ │ │ └── TwitterSnowflakeStrategy.java │ │ │ │ ├── leaf/ │ │ │ │ │ ├── ISegmentService.java │ │ │ │ │ ├── IdSegment.java │ │ │ │ │ └── SegmentServiceImpl.java │ │ │ │ ├── spring/ │ │ │ │ │ └── ColumnMaxValueIncrementer.java │ │ │ │ ├── twitter/ │ │ │ │ │ ├── SnowflakeIdWorker.java │ │ │ │ │ └── SystemClock.java │ │ │ │ ├── util/ │ │ │ │ │ ├── NetUtils.java │ │ │ │ │ └── WorkerIdUtils.java │ │ │ │ └── worker/ │ │ │ │ ├── AbstractIntervalWorkId.java │ │ │ │ ├── DisposableWorkerIdAssigner.java │ │ │ │ ├── RedisWorkIdAssigner.java │ │ │ │ ├── SimpleWorkerIdAssigner.java │ │ │ │ ├── WorkerIdAssigner.java │ │ │ │ ├── WorkerNodeType.java │ │ │ │ ├── ZkWorkerIdAssigner.java │ │ │ │ ├── dao/ │ │ │ │ │ └── WorkerNodeDAO.java │ │ │ │ └── entity/ │ │ │ │ └── WorkerNode.java │ │ │ └── resources/ │ │ │ └── README.txt │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── myzmds/ │ │ │ └── ecp/ │ │ │ └── core/ │ │ │ ├── standard/ │ │ │ │ └── distributed/ │ │ │ │ └── lock/ │ │ │ │ ├── CurlUtil.java │ │ │ │ ├── EtcdSharedLock.java │ │ │ │ ├── ISharedLock.java │ │ │ │ ├── RedisSharedLock.java │ │ │ │ ├── ZkSharedLock.java │ │ │ │ └── ZkUtil.java │ │ │ └── uid/ │ │ │ ├── ParseUidTest.java │ │ │ ├── baidu/ │ │ │ │ ├── CachedUidGeneratorTest.java │ │ │ │ ├── DefaultUidGeneratorTest.java │ │ │ │ ├── SimpleUidTest.java │ │ │ │ └── UidTest.java │ │ │ └── idleaf/ │ │ │ ├── ColumnMaxValueIncrementerTest.java │ │ │ ├── LeafSegmentServiceTest.java │ │ │ └── SegmentServiceImplTest.java │ │ └── resources/ │ │ ├── app-zk.xml │ │ ├── idleaf/ │ │ │ ├── app-leaf.xml │ │ │ └── app-springId.xml │ │ ├── redis.properties │ │ └── uid/ │ │ ├── cached-uid-baidu.xml │ │ ├── default-uid-baidu.xml │ │ ├── mybatis-uid.xml │ │ ├── simple-uid-baidu.xml │ │ ├── uid-default.properties │ │ └── zk-uid-baidu.xml │ ├── jun_upload_jsp_servlet/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ ├── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── google/ │ │ │ │ ├── servlet/ │ │ │ │ │ └── FileLoadServlet.java │ │ │ │ └── tool/ │ │ │ │ └── FileLoadClient.java │ │ │ ├── resources/ │ │ │ │ └── log4j.properties │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ ├── fail.jsp │ │ │ ├── index.jsp │ │ │ ├── index_multi.jsp │ │ │ └── succ.jsp │ │ └── 参考.txt │ ├── jun_webmagic/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ ├── MysqlDBUtils.java │ │ │ │ ├── dbutils/ │ │ │ │ │ ├── ContentDAO.java │ │ │ │ │ ├── DBUtils.java │ │ │ │ │ ├── JDBCUtil.java │ │ │ │ │ ├── LogDAO.java │ │ │ │ │ ├── NovelDAO.java │ │ │ │ │ ├── ResultSetHandlerTest.java │ │ │ │ │ ├── ThreadLocalTest.java │ │ │ │ │ └── transaction/ │ │ │ │ │ ├── Account.java │ │ │ │ │ ├── AccountDao.java │ │ │ │ │ ├── AccountDao2.java │ │ │ │ │ ├── AccountDao3.java │ │ │ │ │ ├── AccountService.java │ │ │ │ │ ├── AccountService2.java │ │ │ │ │ ├── AccountService3.java │ │ │ │ │ ├── AccountServlet.java │ │ │ │ │ ├── ConnectionContext.java │ │ │ │ │ └── TransactionFilter.java │ │ │ │ └── jun_webmagic/ │ │ │ │ ├── AniMusicProcessor.java │ │ │ │ ├── AniMusicProcessor2.java │ │ │ │ ├── BlogPageProcessor.java │ │ │ │ ├── BlogWebmagic.java │ │ │ │ ├── CnBetaSpider.java │ │ │ │ ├── CsdnBlogPageProcessor.java │ │ │ │ ├── DygWebmagic.java │ │ │ │ ├── GithubRepoPageProcessor.java │ │ │ │ ├── GithubRepoPageProcessor2.java │ │ │ │ ├── HupuNewsSpider2.java │ │ │ │ ├── JsoupDataLearnerCrawler.java │ │ │ │ ├── MukeProcessor.java │ │ │ │ ├── News.java │ │ │ │ ├── Novel2Webmagic.java │ │ │ │ ├── OschinaBlog.java │ │ │ │ ├── OschinaBlogPageProcessor.java │ │ │ │ ├── Pic14Webmagic2.java │ │ │ │ ├── UrlFileDownloadUtil.java │ │ │ │ ├── Xp1024Spider2.java │ │ │ │ └── myImageProcess.java │ │ │ ├── resources/ │ │ │ │ ├── crawl.js │ │ │ │ ├── data.xml │ │ │ │ ├── druid.properties │ │ │ │ ├── jdbc.properties │ │ │ │ ├── log4j.properties │ │ │ │ └── log4j.xml │ │ │ └── webapp/ │ │ │ └── WEB-INF/ │ │ │ └── web.xml │ │ └── test/ │ │ └── java/ │ │ └── dbutils/ │ │ └── QueryRunnerCRUDTest.java │ ├── jun_webservice/ │ │ ├── pom.xml │ │ ├── src/ │ │ │ └── main/ │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ └── index.jsp │ │ └── webservice/ │ │ ├── src/ │ │ │ ├── com/ │ │ │ │ └── zhu/ │ │ │ │ └── webservice/ │ │ │ │ ├── bean/ │ │ │ │ │ └── UserBean.java │ │ │ │ ├── controller/ │ │ │ │ │ └── LoginController.java │ │ │ │ ├── dao/ │ │ │ │ │ └── IUserOperate.java │ │ │ │ └── service/ │ │ │ │ ├── ILoginService.java │ │ │ │ └── impl/ │ │ │ │ └── LoginServiceImpl.java │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── techsoft/ │ │ │ │ ├── ServletModule.java │ │ │ │ ├── TechException.java │ │ │ │ ├── container/ │ │ │ │ │ └── DataServer.java │ │ │ │ ├── modules/ │ │ │ │ │ ├── LoginModule.java │ │ │ │ │ ├── LogoutModule.java │ │ │ │ │ ├── QueryMetaModule.java │ │ │ │ │ ├── QueryModule.java │ │ │ │ │ ├── QueryParamModule.java │ │ │ │ │ └── SaveModule.java │ │ │ │ ├── servlet/ │ │ │ │ │ ├── ConfigProperties.java │ │ │ │ │ ├── DataService.java │ │ │ │ │ ├── EncodingFilter.java │ │ │ │ │ ├── InitWebServlet.java │ │ │ │ │ └── SessionFilter.java │ │ │ │ ├── sql/ │ │ │ │ │ ├── OracleSql.java │ │ │ │ │ └── SQLObjectManager.java │ │ │ │ ├── sqldefine/ │ │ │ │ │ └── SQLObjectForFlashServlet.java │ │ │ │ └── utils/ │ │ │ │ ├── Base64.java │ │ │ │ ├── DataSet.java │ │ │ │ ├── Des3.java │ │ │ │ └── MD5Util.java │ │ │ └── plugins/ │ │ │ └── console/ │ │ │ └── src/ │ │ │ ├── com/ │ │ │ │ └── techsoft/ │ │ │ │ ├── ConsolePlugin.java │ │ │ │ └── SqlIdProcessImpl.java │ │ │ └── plugin.xml │ │ └── test/ │ │ └── com/ │ │ └── techsoft/ │ │ ├── AllTests.java │ │ ├── TestConsts.java │ │ ├── executor/ │ │ │ └── TestOracleExecutor.java │ │ └── pool/ │ │ └── TestConnectionPool.java │ ├── jun_webservlet/ │ │ ├── README.md │ │ ├── doc/ │ │ │ ├── jun_ajax/ │ │ │ │ ├── Ajax详解参考文档.md │ │ │ │ ├── README.md │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── jun/ │ │ │ │ │ └── plugin/ │ │ │ │ │ └── ajax/ │ │ │ │ │ └── servlet/ │ │ │ │ │ ├── LoadServlet.java │ │ │ │ │ ├── RegisterServlet.java │ │ │ │ │ ├── TestServlet.java │ │ │ │ │ └── XmlFileServlet.java │ │ │ │ └── webapp/ │ │ │ │ ├── 01_testget/ │ │ │ │ │ ├── test.js │ │ │ │ │ └── testget.jsp │ │ │ │ ├── 02_testpost/ │ │ │ │ │ ├── test.js │ │ │ │ │ └── testpost.jsp │ │ │ │ ├── 03_load/ │ │ │ │ │ ├── load.js │ │ │ │ │ └── testload.jsp │ │ │ │ ├── 04_register/ │ │ │ │ │ ├── register.js │ │ │ │ │ └── register.jsp │ │ │ │ ├── 05_xmlfile/ │ │ │ │ │ ├── xmFile.js │ │ │ │ │ └── xmlFile.jsp │ │ │ │ ├── 06_json/ │ │ │ │ │ ├── json01.html │ │ │ │ │ ├── json02.html │ │ │ │ │ ├── json03.html │ │ │ │ │ ├── json04.html │ │ │ │ │ └── json05.html │ │ │ │ ├── META-INF/ │ │ │ │ │ └── MANIFEST.MF │ │ │ │ └── WEB-INF/ │ │ │ │ └── web.xml │ │ │ └── webservlet01/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── lf/ │ │ │ │ │ ├── Dao/ │ │ │ │ │ │ ├── Dao.java │ │ │ │ │ │ └── Impl/ │ │ │ │ │ │ └── DaoImpl.java │ │ │ │ │ ├── bean/ │ │ │ │ │ │ └── userBean.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── serviceImpl/ │ │ │ │ │ │ │ └── userServiceImpl.java │ │ │ │ │ │ └── userService1.java │ │ │ │ │ ├── servlet/ │ │ │ │ │ │ ├── selectServlet.java │ │ │ │ │ │ └── zhuceServlet.java │ │ │ │ │ └── util/ │ │ │ │ │ └── dbConnector.java │ │ │ │ └── webapp/ │ │ │ │ ├── WEB-INF/ │ │ │ │ │ └── web.xml │ │ │ │ ├── css/ │ │ │ │ │ ├── login.css │ │ │ │ │ └── reset.css │ │ │ │ ├── js/ │ │ │ │ │ ├── canvas-particle.js │ │ │ │ │ └── login.js │ │ │ │ ├── select.html │ │ │ │ └── zhuce.html │ │ │ └── resources/ │ │ │ └── db.properties │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ ├── bizservice/ │ │ │ │ ├── dao/ │ │ │ │ │ ├── GradeDao.java │ │ │ │ │ ├── StudentDao.java │ │ │ │ │ └── UserDao.java │ │ │ │ ├── model/ │ │ │ │ │ ├── Grade.java │ │ │ │ │ ├── PageBean.java │ │ │ │ │ ├── Student.java │ │ │ │ │ └── User.java │ │ │ │ ├── util/ │ │ │ │ │ ├── DateUtil.java │ │ │ │ │ ├── DbUtil.java │ │ │ │ │ ├── JsonUtil.java │ │ │ │ │ ├── ResponseUtil.java │ │ │ │ │ └── StringUtil.java │ │ │ │ └── web/ │ │ │ │ ├── ActionServlet.java │ │ │ │ ├── GradeComboListServlet.java │ │ │ │ ├── GradeDeleteServlet.java │ │ │ │ ├── GradeListServlet.java │ │ │ │ ├── GradeSaveServlet.java │ │ │ │ ├── LoginServlet.java │ │ │ │ ├── StudentDeleteServlet.java │ │ │ │ ├── StudentListServlet.java │ │ │ │ └── StudentSaveServlet.java │ │ │ └── webservlet/ │ │ │ ├── AsyncDemoServlet.java │ │ │ ├── AsyncServlet.java │ │ │ ├── BaseServlet.java │ │ │ ├── Http2Servlet3.java │ │ │ ├── Http2Servlet4.java │ │ │ ├── MultiPartServlet3.java │ │ │ ├── My3Filter.java │ │ │ ├── MyServletContextListener.java │ │ │ ├── Servlet3Demo.java │ │ │ ├── Servlet3Filter.java │ │ │ ├── TestServlet.java │ │ │ ├── UploadServlet.java │ │ │ ├── UploadServlet2.java │ │ │ └── UploadUtils.java │ │ └── webapp/ │ │ └── WEB-INF/ │ │ ├── uploadFile/ │ │ │ └── 新建 Microsoft Excel 工作表.xlsx │ │ └── web.xml │ ├── jun_webservlet_guice_dbutil/ │ │ ├── Guice Servlet.md │ │ ├── README.md │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ └── gradle-wrapper.properties │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ ├── com/ │ │ │ │ │ └── jun/ │ │ │ │ │ └── plugin/ │ │ │ │ │ └── servlet/ │ │ │ │ │ └── guice/ │ │ │ │ │ ├── GuiceServletConfig.java │ │ │ │ │ ├── GuiceServletModule.java │ │ │ │ │ ├── HelloService.java │ │ │ │ │ ├── HelloServiceImpl.java │ │ │ │ │ ├── HelloServlet.java │ │ │ │ │ ├── core/ │ │ │ │ │ │ ├── db/ │ │ │ │ │ │ │ ├── ConnectionContext.java │ │ │ │ │ │ │ ├── JdbcUtils.java │ │ │ │ │ │ │ ├── QueryRunnerCRUDTest.java │ │ │ │ │ │ │ ├── ReflectUtils.java │ │ │ │ │ │ │ ├── dao/ │ │ │ │ │ │ │ │ ├── BaseDao.java │ │ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ │ │ └── BaseDaoImpl.java │ │ │ │ │ │ │ └── model/ │ │ │ │ │ │ │ └── Page.java │ │ │ │ │ │ ├── util/ │ │ │ │ │ │ │ ├── date/ │ │ │ │ │ │ │ │ └── DateUtil.java │ │ │ │ │ │ │ └── encryption/ │ │ │ │ │ │ │ └── des/ │ │ │ │ │ │ │ └── DESUtil.java │ │ │ │ │ │ └── web/ │ │ │ │ │ │ ├── filter/ │ │ │ │ │ │ │ └── TransactionFilter.java │ │ │ │ │ │ └── listener/ │ │ │ │ │ │ └── GoogleGuiceServletContextListener.java │ │ │ │ │ ├── sql/ │ │ │ │ │ │ └── sql.sql │ │ │ │ │ └── user/ │ │ │ │ │ ├── UserModule.java │ │ │ │ │ ├── action/ │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ └── UserServlet.java │ │ │ │ │ ├── dao/ │ │ │ │ │ │ ├── UserDao.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ └── UserDaoImpl.java │ │ │ │ │ ├── entity/ │ │ │ │ │ │ └── User.java │ │ │ │ │ └── service/ │ │ │ │ │ ├── UserService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── UserServiceImpl.java │ │ │ │ └── jdbc.properties │ │ │ └── webapp/ │ │ │ ├── META-INF/ │ │ │ │ └── MANIFEST.MF │ │ │ ├── WEB-INF/ │ │ │ │ ├── jetty-web.xml │ │ │ │ └── web.xml │ │ │ ├── error.jsp │ │ │ └── index.jsp │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── servlet/ │ │ └── guice/ │ │ └── HelloServletTest.java │ ├── jun_websocket/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ ├── socket/ │ │ │ │ ├── Client.java │ │ │ │ ├── Server.java │ │ │ │ └── ServerHandler.java │ │ │ └── websocket/ │ │ │ ├── log4j2/ │ │ │ │ └── demo/ │ │ │ │ └── Main.java │ │ │ ├── spring/ │ │ │ │ └── rpc/ │ │ │ │ └── service/ │ │ │ │ ├── Student.java │ │ │ │ ├── WelcomeService.java │ │ │ │ └── WelcomeServiceImpl.java │ │ │ └── websocket/ │ │ │ ├── MyWebSocket.java │ │ │ ├── WebServer.java │ │ │ └── WebSocketTest.java │ │ ├── resources/ │ │ │ ├── log4j2.xml │ │ │ ├── log4j2jdbc.xml │ │ │ └── spring-servlet.xml │ │ ├── test/ │ │ │ └── com/ │ │ │ └── xia/ │ │ │ └── Test.java │ │ └── webapp/ │ │ ├── WEB-INF/ │ │ │ └── web.xml │ │ ├── index.jsp │ │ ├── websocket.jsp │ │ └── websocket2.jsp │ ├── jun_xml/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ ├── ImportTradeDefine.xml │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ ├── dom/ │ │ │ │ │ ├── DOMReader.java │ │ │ │ │ └── DOMReader2.java │ │ │ │ ├── dom4j/ │ │ │ │ │ ├── DOM4JReader.java │ │ │ │ │ └── DOM4Writer.java │ │ │ │ ├── jdom/ │ │ │ │ │ ├── JDOMDemo.java │ │ │ │ │ ├── JDOMReader.java │ │ │ │ │ ├── JDOMWriter.java │ │ │ │ │ └── JdomTest.java │ │ │ │ ├── model/ │ │ │ │ │ └── User.java │ │ │ │ ├── sax/ │ │ │ │ │ ├── SAXReader.java │ │ │ │ │ └── SAXReader2.java │ │ │ │ ├── servlet/ │ │ │ │ │ ├── Areaplus.java │ │ │ │ │ └── jdom.java │ │ │ │ ├── utils/ │ │ │ │ │ ├── Dom4jUtil.java │ │ │ │ │ ├── XMLFactory.java │ │ │ │ │ ├── XMLUtil.java │ │ │ │ │ └── XmlUtilw3c.java │ │ │ │ └── xml/ │ │ │ │ ├── Configuration.java │ │ │ │ ├── ExcelImportDefine.xml │ │ │ │ ├── ImportTradeDefine.xml │ │ │ │ ├── XMLUtil.java │ │ │ │ ├── books.dom4j.xml │ │ │ │ ├── books.jasp.xml │ │ │ │ ├── books.xml │ │ │ │ ├── contact.xml │ │ │ │ ├── domain/ │ │ │ │ │ └── Book.java │ │ │ │ ├── readxml/ │ │ │ │ │ ├── bean/ │ │ │ │ │ │ └── Book.java │ │ │ │ │ ├── handler/ │ │ │ │ │ │ └── SAXParseHandler.java │ │ │ │ │ └── readxmlUtils/ │ │ │ │ │ ├── ReadXMLByDom4j.java │ │ │ │ │ ├── ReadXMLByJDom.java │ │ │ │ │ ├── ReadXmlBySAX.java │ │ │ │ │ └── ReadxmlByDom.java │ │ │ │ ├── student.xml │ │ │ │ └── text/ │ │ │ │ ├── HelloWorld.java │ │ │ │ └── TestHelloWorld.java │ │ │ ├── resources/ │ │ │ │ ├── ExcelImportDefine.xml │ │ │ │ ├── ImportTradeDefine.xml │ │ │ │ ├── books.dom4j.xml │ │ │ │ ├── books.jasp.xml │ │ │ │ ├── books.xml │ │ │ │ ├── constructor-params.xml │ │ │ │ ├── contact.xml │ │ │ │ ├── defaultPlugin.xml │ │ │ │ ├── dom.xml │ │ │ │ ├── dom4j.xml │ │ │ │ ├── dom4jwrite.xml │ │ │ │ ├── employee$.xml │ │ │ │ ├── employee.xml │ │ │ │ ├── example.xml │ │ │ │ ├── example_ns.xml │ │ │ │ ├── jdomwriter.xml │ │ │ │ ├── log4j.properties │ │ │ │ ├── res/ │ │ │ │ │ └── books.xml │ │ │ │ ├── rss.xml │ │ │ │ ├── student.xml │ │ │ │ ├── user2.xml │ │ │ │ └── web.xml │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ └── index.jsp │ │ ├── student2.xml │ │ └── test/ │ │ └── java/ │ │ ├── Book.java │ │ ├── DOM4JTest.java │ │ ├── DOM4jDemo222.java │ │ ├── DOMTest.java │ │ ├── DatabaseToXML.java │ │ ├── DatabaseToXMLWithDom.java │ │ ├── DocumentTest.java │ │ ├── Dom4j.java │ │ ├── Dom4jDemo.java │ │ ├── ItemVo.java │ │ ├── JAXPAttr.java │ │ ├── JDBCUtilSingle.java │ │ ├── SAXTest.java │ │ ├── TestDom.java │ │ ├── TestDom4j.java │ │ ├── TestJDom.java │ │ ├── TestSAX.java │ │ ├── TestXPath.java │ │ ├── XML.md │ │ ├── XMLToDatabase.java │ │ ├── XMLToDatabaseWithDom.java │ │ ├── book.dtd │ │ ├── book.xml │ │ ├── books(2).xml │ │ ├── books.xml │ │ ├── com/ │ │ │ └── java/ │ │ │ └── plugin/ │ │ │ └── xml/ │ │ │ └── rw/ │ │ │ ├── dao/ │ │ │ │ └── StudentDao.java │ │ │ ├── domain/ │ │ │ │ └── Student.java │ │ │ ├── test/ │ │ │ │ └── Test1.java │ │ │ └── util/ │ │ │ └── Dom4jUtil.java │ │ ├── dom-modify.xml │ │ ├── dom4j/ │ │ │ ├── BuildXml.java │ │ │ ├── ReadXml.java │ │ │ ├── TestXpath.java │ │ │ ├── book.xml │ │ │ ├── books.xml │ │ │ └── student.xml │ │ ├── dom4j-modify.xml │ │ ├── dtd-2-3.xml │ │ ├── exam.xml │ │ ├── jdom-modify.xml │ │ ├── linkmans.xml │ │ ├── mytest.xml │ │ ├── newXML2.xml │ │ ├── student(2).xml │ │ ├── student.xml │ │ ├── student2.xml │ │ ├── test.xml │ │ ├── test1.xml │ │ ├── university(2).xml │ │ ├── university.xml │ │ ├── users.xml │ │ └── users_login.xml │ ├── pom.xml │ └── replay_pid1788.log ├── jun_springboot_plugin/ │ ├── README.md │ ├── pom.xml │ ├── springboot-validation/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── mvnw │ │ ├── mvnw.cmd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── kdyzm/ │ │ │ │ └── validation/ │ │ │ │ └── spring/ │ │ │ │ └── bootdemo/ │ │ │ │ ├── ValidationSpringBootDemoApplication.java │ │ │ │ ├── annotation/ │ │ │ │ │ ├── Mobile.java │ │ │ │ │ └── UserName.java │ │ │ │ ├── config/ │ │ │ │ │ └── ValidationAdvice.java │ │ │ │ ├── controller/ │ │ │ │ │ └── UserController.java │ │ │ │ ├── group/ │ │ │ │ │ ├── ValidEmail.java │ │ │ │ │ ├── ValidMobile.java │ │ │ │ │ └── ValidUserName.java │ │ │ │ ├── model/ │ │ │ │ │ ├── UserModel.java │ │ │ │ │ ├── ValidationResult.java │ │ │ │ │ └── WrapperResult.java │ │ │ │ ├── util/ │ │ │ │ │ └── ValidationUtil.java │ │ │ │ └── validator/ │ │ │ │ ├── MobileValidator.java │ │ │ │ └── UserNameValidator.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── kdyzm/ │ │ └── validation/ │ │ └── spring/ │ │ └── bootdemo/ │ │ └── ValidationSpringBootDemoApplicationTests.java │ ├── springboot_actuator/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ ├── ActuatorApplication.java │ │ │ │ └── controller/ │ │ │ │ └── HelloController.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── conf/ │ │ │ └── server.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ ├── ActuatorApplicationTests.java │ │ └── controller/ │ │ ├── HelloTests.java │ │ └── HelloWorldControlerTests.java │ ├── springboot_aop/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ ├── Application.java │ │ │ ├── aop/ │ │ │ │ ├── AfterStartRunner.java │ │ │ │ ├── aspect/ │ │ │ │ │ ├── LogAspect.java │ │ │ │ │ ├── UserAccess.java │ │ │ │ │ └── UserAccessAspect.java │ │ │ │ └── controller/ │ │ │ │ └── UserController.java │ │ │ ├── initializer/ │ │ │ │ ├── AfterHelloApplicationContextInitializer.java │ │ │ │ └── HelloApplicationContextInitializer.java │ │ │ ├── listener/ │ │ │ │ ├── AfterContextClosedEventListener.java │ │ │ │ ├── ContextClosedEventListener.java │ │ │ │ └── HelloApplicationRunListener.java │ │ │ └── runner/ │ │ │ ├── HelloApplicationRunner.java │ │ │ └── HelloCommandLineRunner.java │ │ └── resources/ │ │ ├── application.yml │ │ └── logback-spring.xml │ ├── springboot_async/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── spirngboot/ │ │ │ │ └── async/ │ │ │ │ ├── SpringBootDemoAsyncApplication.java │ │ │ │ ├── demo/ │ │ │ │ │ ├── config/ │ │ │ │ │ │ └── AsyncPoolConfig.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── TestController.java │ │ │ │ │ └── service/ │ │ │ │ │ └── TestService.java │ │ │ │ ├── pos/ │ │ │ │ │ ├── Application.java │ │ │ │ │ ├── async/ │ │ │ │ │ │ ├── AsyncException.java │ │ │ │ │ │ ├── AsyncExceptionHandler.java │ │ │ │ │ │ └── AsyncTask.java │ │ │ │ │ └── config/ │ │ │ │ │ └── AsyncConfig.java │ │ │ │ └── task/ │ │ │ │ └── TaskFactory.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ ├── jun/ │ │ │ └── plugin/ │ │ │ └── spirngboot/ │ │ │ └── async/ │ │ │ ├── SpringBootDemoAsyncApplicationTests.java │ │ │ └── task/ │ │ │ └── TaskFactoryTest.java │ │ └── xncoding/ │ │ └── pos/ │ │ └── ApplicationTests.java │ ├── springboot_batch/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ ├── run.sh │ │ ├── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── xncoding/ │ │ │ │ │ └── trans/ │ │ │ │ │ ├── Application.java │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── MybatisPlusConfig.java │ │ │ │ │ │ └── properties/ │ │ │ │ │ │ ├── CommonProperties.java │ │ │ │ │ │ └── DruidProperties.java │ │ │ │ │ ├── dao/ │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ └── User.java │ │ │ │ │ │ └── repository/ │ │ │ │ │ │ └── UserMapper.java │ │ │ │ │ ├── modules/ │ │ │ │ │ │ ├── MyBatchConfig.java │ │ │ │ │ │ ├── MyBeanValidator.java │ │ │ │ │ │ ├── MyBeanWrapperFieldSetMapper.java │ │ │ │ │ │ ├── MyJobListener.java │ │ │ │ │ │ ├── canton/ │ │ │ │ │ │ │ ├── Canton.java │ │ │ │ │ │ │ └── CantonConfig.java │ │ │ │ │ │ ├── common/ │ │ │ │ │ │ │ ├── DateUtil.java │ │ │ │ │ │ │ ├── anno/ │ │ │ │ │ │ │ │ └── TableName.java │ │ │ │ │ │ │ └── vo/ │ │ │ │ │ │ │ ├── BscCanton.java │ │ │ │ │ │ │ ├── BscExeOffice.java │ │ │ │ │ │ │ ├── BscOfficeExeItem.java │ │ │ │ │ │ │ ├── BscTollItem.java │ │ │ │ │ │ │ └── BscTollSpecialShare.java │ │ │ │ │ │ ├── vtoll/ │ │ │ │ │ │ │ ├── BudgetVtoll.java │ │ │ │ │ │ │ └── BudgetVtollConfig.java │ │ │ │ │ │ ├── zapp/ │ │ │ │ │ │ │ ├── App.java │ │ │ │ │ │ │ └── AppConfig.java │ │ │ │ │ │ └── zlog/ │ │ │ │ │ │ ├── Log.java │ │ │ │ │ │ └── LogConfig.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ └── CsvService.java │ │ │ │ │ └── start/ │ │ │ │ │ └── StartRunner.java │ │ │ │ └── resources/ │ │ │ │ ├── application.yml │ │ │ │ ├── banner.txt │ │ │ │ └── sql/ │ │ │ │ ├── schema-drop-oracle10g.sql │ │ │ │ └── schema-oracle10g.sql │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── xncoding/ │ │ │ └── service/ │ │ │ ├── BatchServiceTest.java │ │ │ └── SimpleTest.java │ │ └── temp.txt │ ├── springboot_cache/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ ├── run.sh │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── xncoding/ │ │ │ │ └── trans/ │ │ │ │ ├── Application.java │ │ │ │ ├── config/ │ │ │ │ │ ├── DruidProperties.java │ │ │ │ │ ├── MybatisPlusConfig.java │ │ │ │ │ └── RedisCacheConfig.java │ │ │ │ ├── dao/ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ └── User.java │ │ │ │ │ └── repository/ │ │ │ │ │ └── UserMapper.java │ │ │ │ └── service/ │ │ │ │ └── UserService.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ └── sql/ │ │ │ └── t_user.sql │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── xncoding/ │ │ └── service/ │ │ └── UserServiceTest.java │ ├── springboot_canal/ │ │ ├── README.md │ │ ├── pom.xml │ │ ├── sql/ │ │ │ └── t_admin.sql │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── example/ │ │ │ ├── CanalApplication.java │ │ │ ├── canal/ │ │ │ │ ├── annotation/ │ │ │ │ │ └── CanalTable.java │ │ │ │ ├── autoconfiguration/ │ │ │ │ │ └── SingleCanalClient.java │ │ │ │ ├── handler/ │ │ │ │ │ ├── CanalEntryHandler.java │ │ │ │ │ └── CanalMessageHandler.java │ │ │ │ ├── job/ │ │ │ │ │ └── CanalScheduling.java │ │ │ │ ├── properties/ │ │ │ │ │ └── CanalClientProperties.java │ │ │ │ └── util/ │ │ │ │ └── FieldUtil.java │ │ │ └── test/ │ │ │ ├── entity/ │ │ │ │ └── Admin.java │ │ │ └── service/ │ │ │ └── AdminService.java │ │ └── resources/ │ │ └── application.yaml │ ├── springboot_codegen/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── codegen/ │ │ │ │ ├── SpringBootDemoCodegenApplication.java │ │ │ │ ├── common/ │ │ │ │ │ ├── IResultCode.java │ │ │ │ │ ├── PageResult.java │ │ │ │ │ ├── R.java │ │ │ │ │ └── ResultCode.java │ │ │ │ ├── constants/ │ │ │ │ │ └── GenConstants.java │ │ │ │ ├── controller/ │ │ │ │ │ └── CodeGenController.java │ │ │ │ ├── entity/ │ │ │ │ │ ├── ColumnEntity.java │ │ │ │ │ ├── GenConfig.java │ │ │ │ │ ├── TableEntity.java │ │ │ │ │ └── TableRequest.java │ │ │ │ ├── service/ │ │ │ │ │ ├── CodeGenService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── CodeGenServiceImpl.java │ │ │ │ └── utils/ │ │ │ │ ├── CodeGenUtil.java │ │ │ │ └── DbUtil.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ ├── generator.properties │ │ │ ├── static/ │ │ │ │ ├── index.html │ │ │ │ └── libs/ │ │ │ │ ├── datejs/ │ │ │ │ │ └── date-zh-CN.js │ │ │ │ └── iview/ │ │ │ │ └── iview.css │ │ │ └── template/ │ │ │ ├── Controller.java.vm │ │ │ ├── Entity.java.vm │ │ │ ├── Mapper.java.vm │ │ │ ├── Mapper.xml.vm │ │ │ ├── Service.java.vm │ │ │ ├── ServiceImpl.java.vm │ │ │ └── api.js.vm │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── codegen/ │ │ ├── CodeGenServiceTest.java │ │ └── SpringBootDemoCodegenApplicationTests.java │ ├── springboot_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 │ ├── springboot_cxf/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ ├── run.sh │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── xncoding/ │ │ │ │ └── webservice/ │ │ │ │ ├── Application.java │ │ │ │ ├── client/ │ │ │ │ │ ├── CommonService.java │ │ │ │ │ ├── CommonService_Service.java │ │ │ │ │ ├── GetUser.java │ │ │ │ │ ├── GetUserResponse.java │ │ │ │ │ ├── ObjectFactory.java │ │ │ │ │ ├── SayHello.java │ │ │ │ │ ├── SayHelloResponse.java │ │ │ │ │ ├── User.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── config/ │ │ │ │ │ └── CxfConfig.java │ │ │ │ ├── model/ │ │ │ │ │ └── User.java │ │ │ │ ├── service/ │ │ │ │ │ ├── ICommonService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── CommonServiceImpl.java │ │ │ │ └── util/ │ │ │ │ └── JacksonUtil.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── xncoding/ │ │ └── webservice/ │ │ └── ApplicationTests.java │ ├── springboot_data_jpa/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── jpa/ │ │ │ │ ├── Application.java │ │ │ │ ├── api/ │ │ │ │ │ └── SwaggerConfig.java │ │ │ │ ├── dynamicquery/ │ │ │ │ │ ├── DynamicQuery.java │ │ │ │ │ ├── DynamicQueryImpl.java │ │ │ │ │ └── NativeQueryResultEntity.java │ │ │ │ ├── entity/ │ │ │ │ │ └── Result.java │ │ │ │ ├── model/ │ │ │ │ │ ├── AppClass.java │ │ │ │ │ ├── AppStudent.java │ │ │ │ │ ├── Student.java │ │ │ │ │ └── User.java │ │ │ │ ├── repository/ │ │ │ │ │ └── UserRepository.java │ │ │ │ ├── service/ │ │ │ │ │ ├── IStudentService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── StudentServiceImpl.java │ │ │ │ └── web/ │ │ │ │ └── StudentController.java │ │ │ ├── resources/ │ │ │ │ └── application.properties │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ └── index.jsp │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── jpa/ │ │ ├── ApplicationTest.java │ │ └── SpringbootJpaApplication.java │ ├── springboot_distributed_seckill/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── seckill/ │ │ │ ├── ServiceSeckillApplication.java │ │ │ ├── common/ │ │ │ │ ├── config/ │ │ │ │ │ ├── DatasourceConfig.java │ │ │ │ │ ├── SwaggerConfig.java │ │ │ │ │ └── WebConfig.java │ │ │ │ ├── exception/ │ │ │ │ │ ├── AssertException.java │ │ │ │ │ ├── GlobalExceptionHandler.java │ │ │ │ │ ├── IllegalReentrantException.java │ │ │ │ │ ├── ServiceExceptionEnum.java │ │ │ │ │ ├── WebException.java │ │ │ │ │ └── WebExceptionEnum.java │ │ │ │ ├── interceptor/ │ │ │ │ │ └── LimitInterceptor.java │ │ │ │ └── response/ │ │ │ │ ├── BaseResponse.java │ │ │ │ ├── ResponseBean.java │ │ │ │ ├── SeckillInfoResponse.java │ │ │ │ └── StockNumResponse.java │ │ │ ├── controller/ │ │ │ │ └── SeckillController.java │ │ │ ├── kafka/ │ │ │ │ ├── KafkaConsumer.java │ │ │ │ └── KafkaSender.java │ │ │ ├── mybatis/ │ │ │ │ └── datasource/ │ │ │ │ ├── DynamicDataSource.java │ │ │ │ ├── DynamicDataSourceGlobal.java │ │ │ │ ├── DynamicDataSourceHolder.java │ │ │ │ ├── DynamicDataSourceTransactionManager.java │ │ │ │ └── DynamicPlugin.java │ │ │ ├── redis/ │ │ │ │ ├── lock/ │ │ │ │ │ ├── DistributedExclusiveRedisLock.java │ │ │ │ │ └── RedissonDistributedLocker.java │ │ │ │ └── repository/ │ │ │ │ ├── RedisCacheConfig.java │ │ │ │ ├── RedisRepository.java │ │ │ │ ├── RedissonAutoConfiguration.java │ │ │ │ └── RedissonProperties.java │ │ │ ├── service/ │ │ │ │ ├── ISeckillService.java │ │ │ │ └── impl/ │ │ │ │ └── SeckillServiceImpl.java │ │ │ ├── threads/ │ │ │ │ ├── CallableAndFuture.java │ │ │ │ ├── CallableAndFuture2.java │ │ │ │ ├── Totp.java │ │ │ │ ├── UserRejectHandler.java │ │ │ │ ├── UserThreadFactory.java │ │ │ │ └── UserThreadPool.java │ │ │ └── utils/ │ │ │ ├── AssertUtil.java │ │ │ ├── DateUtil.java │ │ │ ├── SerialNo.java │ │ │ └── StringUtil.java │ │ ├── resources/ │ │ │ ├── META-INF/ │ │ │ │ └── spring.factories │ │ │ ├── application.yml │ │ │ ├── logback-spring.xml │ │ │ └── mybatis-config.xml │ │ └── webapp/ │ │ ├── css/ │ │ │ └── index.css │ │ ├── js/ │ │ │ ├── index.js │ │ │ └── vue.js │ │ └── views/ │ │ └── index.html │ ├── springboot_docker/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── pom.docker.xml │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── docker/ │ │ │ │ └── Dockerfile │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ ├── DockerApplication.java │ │ │ │ ├── controller/ │ │ │ │ │ └── DockerController.java │ │ │ │ └── docker/ │ │ │ │ ├── SpringBootDemoDockerApplication.java │ │ │ │ └── controller/ │ │ │ │ └── HelloController.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ ├── DockerApplicationTests.java │ │ └── docker/ │ │ └── SpringBootDemoDockerApplicationTests.java │ ├── springboot_drools/ │ │ ├── README.md │ │ ├── pom.xml │ │ ├── rules.sql │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── drools/ │ │ │ ├── Application.java │ │ │ ├── bean/ │ │ │ │ ├── Message.java │ │ │ │ ├── ResourceWrapper.java │ │ │ │ └── Rules.java │ │ │ ├── config/ │ │ │ │ ├── DBConfig.java │ │ │ │ ├── MyBatisConfig.java │ │ │ │ ├── MyBatisRepository.java │ │ │ │ ├── MyBatisScannerConfig.java │ │ │ │ └── TransactionConfig.java │ │ │ ├── controller/ │ │ │ │ └── RulesController.java │ │ │ ├── dao/ │ │ │ │ └── RulesDao.java │ │ │ ├── service/ │ │ │ │ └── RulesService.java │ │ │ └── util/ │ │ │ ├── ApplicationTest.java │ │ │ └── DroolsUtils.java │ │ └── resources/ │ │ ├── log4j.properties │ │ └── mapper/ │ │ └── UserDaoMapper.xml │ ├── springboot_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 │ ├── springboot_dynamic_datasource/ │ │ ├── README.md │ │ ├── db/ │ │ │ ├── init.sql │ │ │ └── user.sql │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── dynamic/ │ │ │ │ └── datasource/ │ │ │ │ ├── SpringBootDemoDynamicDatasourceApplication.java │ │ │ │ ├── annotation/ │ │ │ │ │ └── DefaultDatasource.java │ │ │ │ ├── aspect/ │ │ │ │ │ └── DatasourceSelectorAspect.java │ │ │ │ ├── config/ │ │ │ │ │ ├── DatasourceConfiguration.java │ │ │ │ │ ├── MyMapper.java │ │ │ │ │ └── MybatisConfiguration.java │ │ │ │ ├── controller/ │ │ │ │ │ ├── DatasourceConfigController.java │ │ │ │ │ └── UserController.java │ │ │ │ ├── datasource/ │ │ │ │ │ ├── DatasourceConfigCache.java │ │ │ │ │ ├── DatasourceConfigContextHolder.java │ │ │ │ │ ├── DatasourceHolder.java │ │ │ │ │ ├── DatasourceManager.java │ │ │ │ │ ├── DatasourceScheduler.java │ │ │ │ │ └── DynamicDataSource.java │ │ │ │ ├── mapper/ │ │ │ │ │ ├── DatasourceConfigMapper.java │ │ │ │ │ └── UserMapper.java │ │ │ │ ├── model/ │ │ │ │ │ ├── DatasourceConfig.java │ │ │ │ │ └── User.java │ │ │ │ └── utils/ │ │ │ │ └── SpringUtil.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── dynamic/ │ │ └── datasource/ │ │ └── SpringBootDemoDynamicDatasourceApplicationTests.java │ ├── springboot_echarts/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── xncoding/ │ │ │ │ ├── Application.java │ │ │ │ ├── benchmark/ │ │ │ │ │ ├── common/ │ │ │ │ │ │ └── ResultExporter.java │ │ │ │ │ ├── first/ │ │ │ │ │ │ └── FirstBenchmark.java │ │ │ │ │ ├── json/ │ │ │ │ │ │ ├── JsonDeserializeBenchmark.java │ │ │ │ │ │ ├── JsonSerializeBenchmark.java │ │ │ │ │ │ ├── model/ │ │ │ │ │ │ │ ├── FullName.java │ │ │ │ │ │ │ └── Person.java │ │ │ │ │ │ └── util/ │ │ │ │ │ │ ├── FastJsonUtil.java │ │ │ │ │ │ ├── GsonUtil.java │ │ │ │ │ │ ├── JacksonUtil.java │ │ │ │ │ │ └── JsonLibUtil.java │ │ │ │ │ ├── string/ │ │ │ │ │ │ └── StringBuilderBenchmark.java │ │ │ │ │ └── sum/ │ │ │ │ │ ├── SecondBenchmark.java │ │ │ │ │ └── calc/ │ │ │ │ │ ├── Calculator.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── MultithreadCalculator.java │ │ │ │ │ └── SinglethreadCalculator.java │ │ │ │ └── echarts/ │ │ │ │ ├── api/ │ │ │ │ │ ├── PublicController.java │ │ │ │ │ └── model/ │ │ │ │ │ ├── BaseResponse.java │ │ │ │ │ ├── EchartsData.java │ │ │ │ │ ├── PicRequest.java │ │ │ │ │ └── jmh/ │ │ │ │ │ ├── AxisPointer.java │ │ │ │ │ ├── Feature.java │ │ │ │ │ ├── Grid.java │ │ │ │ │ ├── Label.java │ │ │ │ │ ├── Legend.java │ │ │ │ │ ├── Normal.java │ │ │ │ │ ├── Option.java │ │ │ │ │ ├── SaveAsImage.java │ │ │ │ │ ├── Serie.java │ │ │ │ │ ├── Title.java │ │ │ │ │ ├── Toolbox.java │ │ │ │ │ ├── Tooltip.java │ │ │ │ │ ├── XAxis.java │ │ │ │ │ ├── YAxis.java │ │ │ │ │ └── YAxisLabel.java │ │ │ │ ├── common/ │ │ │ │ │ ├── ServerRunner.java │ │ │ │ │ ├── constants/ │ │ │ │ │ │ └── MsgType.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── CommonUtil.java │ │ │ │ │ └── ExportPngUtil.java │ │ │ │ ├── config/ │ │ │ │ │ ├── NettySocketConfig.java │ │ │ │ │ └── properties/ │ │ │ │ │ └── MyProperties.java │ │ │ │ ├── controller/ │ │ │ │ │ └── IndexController.java │ │ │ │ ├── handler/ │ │ │ │ │ └── MessageEventHandler.java │ │ │ │ └── service/ │ │ │ │ └── ApiService.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ ├── public/ │ │ │ │ └── static/ │ │ │ │ ├── css/ │ │ │ │ │ └── bootstrap.css │ │ │ │ └── js/ │ │ │ │ ├── echarts-load.js │ │ │ │ └── socket.io.js │ │ │ └── templates/ │ │ │ └── index.html │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── xncoding/ │ │ └── echarts/ │ │ └── common/ │ │ └── util/ │ │ └── ApplicationTests.java │ ├── springboot_ehcache_cache/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── springboot/ │ │ │ │ ├── Application.java │ │ │ │ ├── bean/ │ │ │ │ │ └── Student.java │ │ │ │ ├── mapper/ │ │ │ │ │ └── StudentMapper.java │ │ │ │ └── service/ │ │ │ │ ├── StudentService.java │ │ │ │ └── impl/ │ │ │ │ └── StudentServiceImpl.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ ├── ehcache.xml │ │ │ └── init.sql │ │ └── test/ │ │ └── java/ │ │ └── ApplicationTest.java │ ├── springboot_elastic_job/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── elasticjob/ │ │ │ │ ├── DemoElasticJobApplication.java │ │ │ │ └── com/ │ │ │ │ ├── JobRegistryCenterConfig.java │ │ │ │ ├── MyJobConfig.java │ │ │ │ └── job/ │ │ │ │ └── MySimpleJob.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── elasticjob/ │ │ └── DemoElasticJobApplicationTests.java │ ├── springboot_email/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── springboot/ │ │ │ │ └── demo/ │ │ │ │ ├── DemoApplication.java │ │ │ │ └── controller/ │ │ │ │ └── EmailController.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ └── templates/ │ │ │ └── emailTemplate.html │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── springboot/ │ │ └── demo/ │ │ └── DemoApplicationTests.java │ ├── springboot_excel/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── example/ │ │ │ ├── ExcelApplication.java │ │ │ ├── controller/ │ │ │ │ ├── EasyExcelController.java │ │ │ │ └── PoiController.java │ │ │ ├── dto/ │ │ │ │ └── DemoData.java │ │ │ ├── service/ │ │ │ │ ├── IEasyExcelService.java │ │ │ │ ├── IPoiService.java │ │ │ │ └── impl/ │ │ │ │ ├── EasyExcelServiceImpl.java │ │ │ │ └── PoiServiceImpl.java │ │ │ └── util/ │ │ │ ├── CommonUtil.java │ │ │ ├── DataUtil.java │ │ │ ├── DownloadUtil.java │ │ │ └── excel/ │ │ │ ├── ExcelParserUtil.java │ │ │ └── handler/ │ │ │ └── DemoDataHandler.java │ │ └── resources/ │ │ ├── application.yaml │ │ └── excel/ │ │ ├── EasyExcel模板.xls │ │ ├── EasyExcel模板.xlsx │ │ └── tOUTPRODUCT.xlsx │ ├── springboot_fastdfs/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── fastdfs2/ │ │ │ ├── FastDFSApplication.java │ │ │ ├── controller/ │ │ │ │ ├── GlobalExceptionHandler.java │ │ │ │ └── UploadController.java │ │ │ └── fastdfs/ │ │ │ ├── FastDFSClient.java │ │ │ ├── FastDFSClient2.java │ │ │ └── FastDFSFile.java │ │ ├── resources/ │ │ │ ├── application.properties │ │ │ ├── fdfs_client.conf │ │ │ ├── logback.xml │ │ │ └── templates/ │ │ │ ├── upload.html │ │ │ └── uploadStatus.html │ │ └── webapp/ │ │ ├── WEB-INF/ │ │ │ └── web.xml │ │ └── index.jsp │ ├── springboot_file_upload/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ ├── FileUploadWebApplication.java │ │ │ └── controller/ │ │ │ ├── GlobalExceptionHandler.java │ │ │ └── UploadController.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── logback.xml │ │ └── templates/ │ │ ├── from_file.html │ │ ├── upload.html │ │ └── uploadStatus.html │ ├── springboot_file_uploader/ │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── mvnw │ │ ├── mvnw.cmd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── cn/ │ │ │ │ └── attackme/ │ │ │ │ └── myuploader/ │ │ │ │ ├── MyUploaderApplication.java │ │ │ │ ├── config/ │ │ │ │ │ ├── LogAspect.java │ │ │ │ │ └── UploadConfig.java │ │ │ │ ├── controller/ │ │ │ │ │ ├── BigFileUploadController.java │ │ │ │ │ ├── FileUploadController.java │ │ │ │ │ ├── QuickUploadController.java │ │ │ │ │ └── TestExceptionController.java │ │ │ │ ├── dao/ │ │ │ │ │ └── FileDao.java │ │ │ │ ├── model/ │ │ │ │ │ └── File.java │ │ │ │ ├── service/ │ │ │ │ │ └── FileService.java │ │ │ │ └── utils/ │ │ │ │ ├── FileUtils.java │ │ │ │ ├── LogUtils.java │ │ │ │ └── UploadUtils.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ ├── logback.xml │ │ │ ├── mapper/ │ │ │ │ └── FileMapper.xml │ │ │ └── schema.sql │ │ └── test/ │ │ └── java/ │ │ └── cn/ │ │ └── attackme/ │ │ └── myuploader/ │ │ ├── MyUploaderApplicationTests.java │ │ └── dao/ │ │ └── FileDaoTests.java │ ├── springboot_flowable/ │ │ ├── README.md │ │ ├── flowable_base.sql │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── example/ │ │ │ └── demo/ │ │ │ ├── DemoApplication.java │ │ │ ├── config/ │ │ │ │ ├── ApplicationConfiguration.java │ │ │ │ ├── DatabaseConfiguration.java │ │ │ │ ├── FlowableConfig.java │ │ │ │ ├── IdmProcessEngineConfiguration.java │ │ │ │ └── MyWebMvcConfigurerAdapter.java │ │ │ ├── controller/ │ │ │ │ └── ExpenseController.java │ │ │ ├── listen/ │ │ │ │ ├── BossTaskHandler.java │ │ │ │ └── ManagerTaskHandler.java │ │ │ ├── rest/ │ │ │ │ ├── EditorGroupsResource.java │ │ │ │ ├── EditorUsersResource.java │ │ │ │ └── FlowStencilSetResource.java │ │ │ └── servlet/ │ │ │ └── AppDispatcherServletConfiguration.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── mybatis-config.xml │ │ ├── application.yml │ │ ├── processes/ │ │ │ └── ExpenseProcess.bpmn20.xml │ │ └── stencilset/ │ │ ├── stencilset_bpmn.json │ │ └── stencilset_cmmn.json │ ├── springboot_flyway/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── flyway/ │ │ │ │ └── SpringBootDemoFlywayApplication.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ └── db/ │ │ │ └── migration/ │ │ │ ├── V1_0__INIT.sql │ │ │ └── V1_1__ALTER.sql │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── AppTest.java │ ├── springboot_freemarker/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ ├── com/ │ │ │ │ │ └── jun/ │ │ │ │ │ └── plugin/ │ │ │ │ │ └── freemarker/ │ │ │ │ │ ├── SpringBootFreemarker1Application.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── FreemarkerController.java │ │ │ │ │ │ ├── FreemarkerController1.java │ │ │ │ │ │ ├── FreemarkerController2.java │ │ │ │ │ │ ├── FreemarkerController3.java │ │ │ │ │ │ ├── FreemarkerController4.java │ │ │ │ │ │ └── FreemarkerController5.java │ │ │ │ │ └── method/ │ │ │ │ │ ├── RoleDirectiveModel.java │ │ │ │ │ └── SortMethod.java │ │ │ │ └── 项目说明 │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── templates/ │ │ │ ├── free1.html │ │ │ ├── free2.html │ │ │ ├── free3.html │ │ │ ├── free4.html │ │ │ ├── free5.html │ │ │ ├── free6.html │ │ │ ├── free7.html │ │ │ └── index.html │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── spring/ │ │ └── SpringBootFreemarker1ApplicationTests.java │ ├── springboot_graphql_mongodb/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── dionysun/ │ │ │ │ └── graphqlkickstart/ │ │ │ │ ├── GraphqlkickstartApplication.java │ │ │ │ ├── config/ │ │ │ │ │ └── SecurityConfig.java │ │ │ │ ├── dao/ │ │ │ │ │ ├── ArticleRepository.java │ │ │ │ │ └── UserRepository.java │ │ │ │ ├── dto/ │ │ │ │ │ └── ArticleDto.java │ │ │ │ ├── entity/ │ │ │ │ │ ├── Article.java │ │ │ │ │ └── User.java │ │ │ │ └── resolvers/ │ │ │ │ ├── ArticleResolver.java │ │ │ │ ├── MutationResolver.java │ │ │ │ └── QueryResolver.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── graphql/ │ │ │ └── types.graphqls │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── dionysun/ │ │ └── graphqlkickstart/ │ │ └── GraphqlkickstartApplicationTests.java │ ├── springboot_graylog/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── graylog/ │ │ │ │ └── SpringBootDemoGraylogApplication.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ └── logback-spring.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── graylog/ │ │ └── SpringBootDemoGraylogApplicationTests.java │ ├── springboot_groovy/ │ │ ├── .gitignore │ │ ├── mvnw │ │ ├── mvnw.cmd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── example/ │ │ │ │ └── demo/ │ │ │ │ ├── DemoApplication.java │ │ │ │ ├── Groovy.java │ │ │ │ └── GroovyScriptUtil.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── example/ │ │ └── demo/ │ │ └── DemoApplicationTests.java │ ├── springboot_hibernate/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── xncoding/ │ │ │ │ └── pos/ │ │ │ │ ├── Application.java │ │ │ │ ├── config/ │ │ │ │ │ ├── DataSourceConfig.java │ │ │ │ │ └── properties/ │ │ │ │ │ └── DruidProperties.java │ │ │ │ ├── dao/ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ └── Article.java │ │ │ │ │ └── repository/ │ │ │ │ │ ├── IArticleDAO.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── ArticleDAO.java │ │ │ │ └── service/ │ │ │ │ └── ArticleService.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ ├── banner.txt │ │ │ └── sql/ │ │ │ └── schema.sql │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── xncoding/ │ │ └── pos/ │ │ └── ApplicationTests.java │ ├── springboot_hibernate_validator/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── hibernate/ │ │ │ │ └── validator/ │ │ │ │ ├── ValidatorApplication.java │ │ │ │ ├── annotation/ │ │ │ │ │ └── EnumValue.java │ │ │ │ ├── controller/ │ │ │ │ │ ├── DefinationValidator.java │ │ │ │ │ ├── GroupValidateController.java │ │ │ │ │ ├── NestValidateController.java │ │ │ │ │ ├── ValidateParametersController.java │ │ │ │ │ └── ValidateRequestBodyController.java │ │ │ │ ├── dto/ │ │ │ │ │ ├── Input.java │ │ │ │ │ ├── RequestParam.java │ │ │ │ │ └── User.java │ │ │ │ ├── exception/ │ │ │ │ │ └── GlobalExceptionHandler.java │ │ │ │ └── validator/ │ │ │ │ └── EnumValueValidator.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── hibernate/ │ │ └── validator/ │ │ └── HibernateValidatorApplicationTests.java │ ├── springboot_https/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── https/ │ │ │ │ ├── SpringBootDemoHttpsApplication.java │ │ │ │ └── config/ │ │ │ │ └── HttpsConfig.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ ├── server.keystore │ │ │ └── static/ │ │ │ └── index.html │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── xkcoding/ │ │ └── https/ │ │ └── SpringBootDemoHttpsApplicationTests.java │ ├── springboot_jackson2/ │ │ ├── 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 │ ├── springboot_jasypt/ │ │ ├── README.md │ │ ├── pom.xml │ │ ├── sql/ │ │ │ └── test.sql │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── yangzheng/ │ │ │ │ ├── SpringbootJasyptApplication.java │ │ │ │ ├── controller/ │ │ │ │ │ ├── JdbcTestController.java │ │ │ │ │ └── RedisTestController.java │ │ │ │ ├── entity/ │ │ │ │ │ └── TestEncrypt.java │ │ │ │ ├── mapper/ │ │ │ │ │ └── TestEncryptMapper.java │ │ │ │ └── utils/ │ │ │ │ └── EncryptConfigUtil.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── mapper/ │ │ │ └── jdbc/ │ │ │ └── TestEncryptMapper.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── yangzheng/ │ │ └── SpringbootJasyptApplicationTests.java │ ├── springboot_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 │ ├── springboot_jpa_thymeleaf_curd/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ ├── JpaThymeleafApplication.java │ │ │ ├── model/ │ │ │ │ └── User.java │ │ │ ├── repository/ │ │ │ │ └── UserRepository.java │ │ │ ├── service/ │ │ │ │ ├── UserService.java │ │ │ │ └── impl/ │ │ │ │ └── UserServiceImpl.java │ │ │ └── web/ │ │ │ ├── HelloController.java │ │ │ └── UserController.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── static/ │ │ │ └── css/ │ │ │ └── bootstrap.css │ │ └── templates/ │ │ ├── hello.html │ │ └── user/ │ │ ├── list.html │ │ ├── userAdd.html │ │ └── userEdit.html │ ├── springboot_jsp/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ ├── AppApplication.java │ │ │ │ ├── api/ │ │ │ │ │ └── TestController.java │ │ │ │ ├── common/ │ │ │ │ │ ├── BaseController.java │ │ │ │ │ ├── HttpResultParent.java │ │ │ │ │ └── cache/ │ │ │ │ │ └── IGatRedisKey.java │ │ │ │ ├── configuration/ │ │ │ │ │ ├── DCSQuartzConfigration.java │ │ │ │ │ ├── OkHttpConfiguration.java │ │ │ │ │ ├── RedisConfiguration.java │ │ │ │ │ └── RestTemplateTimeOutConfigration.java │ │ │ │ ├── entity/ │ │ │ │ │ ├── DCSConstant.java │ │ │ │ │ ├── Header.java │ │ │ │ │ └── User.java │ │ │ │ ├── filter/ │ │ │ │ │ ├── Access.java │ │ │ │ │ ├── AccessTokenVerifyInterceptor.java │ │ │ │ │ └── WebMvcConfig.java │ │ │ │ ├── job/ │ │ │ │ │ └── BoilerJob.java │ │ │ │ ├── runner/ │ │ │ │ │ └── DcsClientRunner.java │ │ │ │ ├── service/ │ │ │ │ │ └── TestService.java │ │ │ │ └── util/ │ │ │ │ └── MsgUtil.java │ │ │ ├── resources/ │ │ │ │ ├── application.properties │ │ │ │ ├── logback-spring.xml │ │ │ │ └── static/ │ │ │ │ ├── assets/ │ │ │ │ │ ├── css/ │ │ │ │ │ │ ├── bootstrap.css │ │ │ │ │ │ ├── custom-styles.css │ │ │ │ │ │ └── font-awesome.css │ │ │ │ │ └── js/ │ │ │ │ │ ├── custom-scripts.js │ │ │ │ │ ├── custom.js │ │ │ │ │ ├── dataTables/ │ │ │ │ │ │ ├── dataTables.bootstrap.css │ │ │ │ │ │ ├── dataTables.bootstrap.js │ │ │ │ │ │ └── jquery.dataTables.js │ │ │ │ │ ├── jquery-1.10.2.js │ │ │ │ │ ├── jquery.metisMenu.js │ │ │ │ │ └── morris/ │ │ │ │ │ └── morris.js │ │ │ │ └── css/ │ │ │ │ └── fonts.googleapis.com/ │ │ │ │ └── fonts.googleapis.com.css │ │ │ └── webapp/ │ │ │ └── WEB-INF/ │ │ │ └── views/ │ │ │ └── index.jsp │ │ └── test/ │ │ └── java/ │ │ └── cn/ │ │ └── hege/ │ │ └── Tt.java │ ├── springboot_junit/ │ │ ├── README.md │ │ ├── doc/ │ │ │ └── Junit分享.docx │ │ ├── mvnw │ │ ├── mvnw.cmd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── springbootjunit/ │ │ │ │ ├── SpringbootJunitApplication.java │ │ │ │ ├── controller/ │ │ │ │ │ └── PersonController.java │ │ │ │ ├── entity/ │ │ │ │ │ └── Person.java │ │ │ │ ├── rest/ │ │ │ │ │ └── RestResponse.java │ │ │ │ ├── service/ │ │ │ │ │ ├── PersonService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── PersonServiceImpl.java │ │ │ │ └── test/ │ │ │ │ └── TestApp.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ └── data.csv │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── springbootjunit/ │ │ ├── SpringbootJunitApplicationTests.java │ │ └── test1/ │ │ ├── BaseJunitTest.java │ │ ├── F4JfromFile.java │ │ ├── JUnit4Test.java │ │ ├── ParameterTest.java │ │ ├── PersonControllerTest.java │ │ ├── SuiteTest.java │ │ ├── TestAppTest.java │ │ ├── TestClass.java │ │ └── TestUtil.java │ ├── springboot_justauth/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── social/ │ │ │ │ ├── SpringBootDemoSocialApplication.java │ │ │ │ └── controller/ │ │ │ │ └── OauthController.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── social/ │ │ └── SpringBootDemoSocialApplicationTests.java │ ├── springboot_jwt/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ ├── run.sh │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── xncoding/ │ │ │ │ └── jwt/ │ │ │ │ ├── Application.java │ │ │ │ ├── api/ │ │ │ │ │ ├── ExceptionController.java │ │ │ │ │ ├── LoginController.java │ │ │ │ │ ├── PublicController.java │ │ │ │ │ └── model/ │ │ │ │ │ ├── BaseResponse.java │ │ │ │ │ └── LoginParam.java │ │ │ │ ├── common/ │ │ │ │ │ └── util/ │ │ │ │ │ └── JWTUtil.java │ │ │ │ ├── config/ │ │ │ │ │ └── ShiroConfig.java │ │ │ │ ├── dao/ │ │ │ │ │ └── domain/ │ │ │ │ │ ├── Manager.java │ │ │ │ │ ├── ManagerRole.java │ │ │ │ │ ├── Permission.java │ │ │ │ │ ├── Role.java │ │ │ │ │ └── RolePermission.java │ │ │ │ ├── exception/ │ │ │ │ │ ├── ForbiddenUserException.java │ │ │ │ │ └── UnauthorizedException.java │ │ │ │ ├── model/ │ │ │ │ │ ├── ManagerInfo.java │ │ │ │ │ └── SysRole.java │ │ │ │ ├── service/ │ │ │ │ │ └── ManagerInfoService.java │ │ │ │ └── shiro/ │ │ │ │ ├── JWTFilter.java │ │ │ │ ├── JWTToken.java │ │ │ │ ├── MyShiroRealm.java │ │ │ │ └── ShiroKit.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ ├── banner.txt │ │ │ └── ehcache.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── xncoding/ │ │ └── jwt/ │ │ └── SimpleTest.java │ ├── springboot_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 │ ├── springboot_kisso/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── baomidou/ │ │ │ └── kisso/ │ │ │ ├── Application.java │ │ │ ├── SampleController.java │ │ │ └── WebConfig.java │ │ └── resources/ │ │ └── application.yml │ ├── springboot_ldap/ │ │ ├── README.md │ │ ├── java操作ldap.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── ldap/ │ │ │ │ ├── LdapDemoApplication.java │ │ │ │ ├── api/ │ │ │ │ │ ├── Result.java │ │ │ │ │ └── ResultCode.java │ │ │ │ ├── entity/ │ │ │ │ │ └── Person.java │ │ │ │ ├── exception/ │ │ │ │ │ └── ServiceException.java │ │ │ │ ├── repository/ │ │ │ │ │ └── PersonRepository.java │ │ │ │ ├── request/ │ │ │ │ │ └── LoginRequest.java │ │ │ │ ├── service/ │ │ │ │ │ ├── PersonService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── PersonServiceImpl.java │ │ │ │ └── util/ │ │ │ │ └── LdapUtils.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── ldap/ │ │ └── LdapDemoApplicationTests.java │ ├── springboot_lock4j/ │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── README.md │ │ ├── lock4j-core/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── baomidou/ │ │ │ │ └── lock/ │ │ │ │ ├── DefaultLockFailureStrategy.java │ │ │ │ ├── DefaultLockKeyBuilder.java │ │ │ │ ├── LockFailureStrategy.java │ │ │ │ ├── LockInfo.java │ │ │ │ ├── LockKeyBuilder.java │ │ │ │ ├── LockTemplate.java │ │ │ │ ├── annotation/ │ │ │ │ │ └── Lock4j.java │ │ │ │ ├── aop/ │ │ │ │ │ ├── LockAnnotationAdvisor.java │ │ │ │ │ └── LockInterceptor.java │ │ │ │ ├── exception/ │ │ │ │ │ ├── LockException.java │ │ │ │ │ └── LockFailureException.java │ │ │ │ ├── executor/ │ │ │ │ │ ├── AbstractLockExecutor.java │ │ │ │ │ └── LockExecutor.java │ │ │ │ ├── spring/ │ │ │ │ │ └── boot/ │ │ │ │ │ └── autoconfigure/ │ │ │ │ │ ├── Lock4jProperties.java │ │ │ │ │ └── LockAutoConfiguration.java │ │ │ │ └── util/ │ │ │ │ └── LockUtil.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── spring.factories │ │ ├── lock4j-redis-template-spring-boot-starter/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── baomidou/ │ │ │ │ └── lock/ │ │ │ │ ├── executor/ │ │ │ │ │ └── RedisTemplateLockExecutor.java │ │ │ │ └── spring/ │ │ │ │ └── boot/ │ │ │ │ └── autoconfigure/ │ │ │ │ └── RedisTemplateLockAutoConfiguration.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── spring.factories │ │ ├── lock4j-redisson-spring-boot-starter/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── baomidou/ │ │ │ │ └── lock/ │ │ │ │ ├── executor/ │ │ │ │ │ └── RedissonLockExecutor.java │ │ │ │ └── spring/ │ │ │ │ └── boot/ │ │ │ │ └── autoconfigure/ │ │ │ │ └── RedissonLockAutoConfiguration.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── spring.factories │ │ ├── lock4j-test/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── baomidou/ │ │ │ │ └── lock/ │ │ │ │ └── test/ │ │ │ │ ├── SpringBootLockTest.java │ │ │ │ ├── custom/ │ │ │ │ │ ├── BusinessException.java │ │ │ │ │ ├── CustomLockFailureStrategy.java │ │ │ │ │ └── CustomLockKeyBuilder.java │ │ │ │ ├── model/ │ │ │ │ │ └── User.java │ │ │ │ ├── service/ │ │ │ │ │ └── UserService.java │ │ │ │ └── util/ │ │ │ │ └── LockUtilTest.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ ├── lock4j-zookeeper-spring-boot-starter/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── baomidou/ │ │ │ │ └── lock/ │ │ │ │ ├── condition/ │ │ │ │ │ └── ZookeeperCondition.java │ │ │ │ ├── executor/ │ │ │ │ │ └── ZookeeperLockExecutor.java │ │ │ │ └── spring/ │ │ │ │ └── boot/ │ │ │ │ └── autoconfigure/ │ │ │ │ └── ZookeeperLockAutoConfiguration.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── spring.factories │ │ └── pom.xml │ ├── springboot_log4jmonitor/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── chitry/ │ │ │ └── log4jmonitor/ │ │ │ ├── Application.java │ │ │ ├── controller/ │ │ │ │ ├── Log4jMonitor.java │ │ │ │ ├── Sniff.java │ │ │ │ └── TestController.java │ │ │ └── core/ │ │ │ ├── Log4jAppender.java │ │ │ └── Log4jAsyncWriter.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── log4j.properties │ │ └── static/ │ │ └── index.html │ ├── springboot_logback/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ ├── example/ │ │ │ │ │ ├── LogbackApplication.java │ │ │ │ │ └── controller/ │ │ │ │ │ └── LogController.java │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── logback/ │ │ │ │ └── SpringBootDemoLogbackApplication.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ └── logback-spring.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── logback/ │ │ └── SpringBootDemoLogbackApplicationTests.java │ ├── springboot_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 │ ├── springboot_minio/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── hope/ │ │ │ │ └── minio/ │ │ │ │ ├── MinioApplication.java │ │ │ │ ├── common/ │ │ │ │ │ └── result/ │ │ │ │ │ ├── Result.java │ │ │ │ │ ├── ResultEnum.java │ │ │ │ │ └── ResultUtil.java │ │ │ │ ├── config/ │ │ │ │ │ ├── MinioConfig.java │ │ │ │ │ └── SwaggerConfiguration.java │ │ │ │ ├── controller/ │ │ │ │ │ └── MinioController.java │ │ │ │ ├── service/ │ │ │ │ │ ├── MinioService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── MinioServiceImpl.java │ │ │ │ └── utils/ │ │ │ │ └── MinioUtil.java │ │ │ └── resources/ │ │ │ ├── application-dev.yml │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── hope/ │ │ └── minio/ │ │ └── MinioApplicationTest.java │ ├── springboot_mongodb/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ ├── run.sh │ │ ├── spring-boot-mongodb/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── neo/ │ │ │ │ │ ├── MongoDBApplication.java │ │ │ │ │ ├── model/ │ │ │ │ │ │ └── User.java │ │ │ │ │ └── repository/ │ │ │ │ │ ├── UserRepository.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── UserRepositoryImpl.java │ │ │ │ └── resources/ │ │ │ │ └── application.properties │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── neo/ │ │ │ ├── MongoDBApplicationTests.java │ │ │ └── repository/ │ │ │ └── UserRepositoryTest.java │ │ ├── spring-boot-multi-mongodb/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── neo/ │ │ │ │ │ ├── MultiMongodbApplication.java │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── MultipleMongoConfig.java │ │ │ │ │ │ ├── PrimaryMongoConfig.java │ │ │ │ │ │ ├── SecondaryMongoConfig.java │ │ │ │ │ │ └── props/ │ │ │ │ │ │ └── MultipleMongoProperties.java │ │ │ │ │ ├── model/ │ │ │ │ │ │ └── User.java │ │ │ │ │ └── repository/ │ │ │ │ │ ├── primary/ │ │ │ │ │ │ └── PrimaryRepository.java │ │ │ │ │ └── secondary/ │ │ │ │ │ └── SecondaryRepository.java │ │ │ │ └── resources/ │ │ │ │ └── application.properties │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── neo/ │ │ │ ├── MultiMongodbApplicationTests.java │ │ │ └── repository/ │ │ │ └── MuliDatabaseTest.java │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ ├── jun/ │ │ │ │ │ └── plugin/ │ │ │ │ │ ├── mongodb/ │ │ │ │ │ │ ├── SpringBootDemoMongodbApplication.java │ │ │ │ │ │ ├── model/ │ │ │ │ │ │ │ └── Article.java │ │ │ │ │ │ └── repository/ │ │ │ │ │ │ └── ArticleRepository.java │ │ │ │ │ └── mongodb2/ │ │ │ │ │ ├── Application.java │ │ │ │ │ ├── model/ │ │ │ │ │ │ └── Users.java │ │ │ │ │ └── service/ │ │ │ │ │ ├── IUserService.java │ │ │ │ │ ├── UserRepository.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── UserRepositoryImpl.java │ │ │ │ └── xncoding/ │ │ │ │ └── pos/ │ │ │ │ ├── Application.java │ │ │ │ ├── dao/ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ └── Customer.java │ │ │ │ │ └── repository/ │ │ │ │ │ └── CustomerRepository.java │ │ │ │ └── service/ │ │ │ │ └── CustomerService.java │ │ │ ├── resources/ │ │ │ │ ├── application.properties │ │ │ │ ├── application.yml │ │ │ │ └── banner.txt │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ └── index.jsp │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ ├── jun/ │ │ │ └── plugin/ │ │ │ ├── mongodb/ │ │ │ │ ├── SpringBootDemoMongodbApplicationTests.java │ │ │ │ └── repository/ │ │ │ │ └── ArticleRepositoryTest.java │ │ │ └── mongodb2/ │ │ │ └── test/ │ │ │ └── SpringbootMongodbApplication.java │ │ └── xncoding/ │ │ └── pos/ │ │ └── ApplicationTests.java │ ├── springboot_mq_rabbitmq/ │ │ ├── README.md │ │ ├── pom.xml │ │ ├── spring-boot-rabbitmq/ │ │ │ ├── consumer/ │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── example/ │ │ │ │ │ ├── RabbitMQConsumerApplication.java │ │ │ │ │ ├── ack/ │ │ │ │ │ │ ├── AckConsumer.java │ │ │ │ │ │ └── DeadLetterConsumer.java │ │ │ │ │ ├── direct/ │ │ │ │ │ │ ├── AllConsumer.java │ │ │ │ │ │ ├── ErrorConsumer.java │ │ │ │ │ │ └── InfoConsumer.java │ │ │ │ │ ├── fanout/ │ │ │ │ │ │ ├── SmsConsumer.java │ │ │ │ │ │ └── WeixinConsumer.java │ │ │ │ │ ├── topic/ │ │ │ │ │ │ ├── ErrorLogConsumer.java │ │ │ │ │ │ ├── FullLogConsumer.java │ │ │ │ │ │ └── InfoLogConsumer.java │ │ │ │ │ └── work/ │ │ │ │ │ ├── Consumer1.java │ │ │ │ │ └── Consumer2.java │ │ │ │ └── resources/ │ │ │ │ └── application.yml │ │ │ ├── pom.xml │ │ │ └── producer/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── example/ │ │ │ │ │ ├── RabbitMQProducerApplication.java │ │ │ │ │ ├── config/ │ │ │ │ │ │ └── ProducerAckConfirmCallback.java │ │ │ │ │ └── service/ │ │ │ │ │ ├── RabbitMQService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── RabbitMQServiceImpl.java │ │ │ │ └── resources/ │ │ │ │ └── application.yml │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── example/ │ │ │ └── ProducerTest.java │ │ └── spring-boot-rabbitmq-simple/ │ │ ├── consumer-simple/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── example/ │ │ │ │ ├── RabbitMQSimpleConsumerApplication.java │ │ │ │ └── consumer/ │ │ │ │ └── Consumer.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ ├── pom.xml │ │ └── producer-simple/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── example/ │ │ │ │ └── RabbitMQSimpleProducerApplication.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── example/ │ │ └── ProducerSimpleTest.java │ ├── springboot_mq_rocketmq/ │ │ ├── README.md │ │ ├── pom.xml │ │ ├── spring-boot-rocketmq/ │ │ │ ├── pom.xml │ │ │ ├── rocketmq-consumer/ │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── example/ │ │ │ │ │ ├── RocketMQConsumerApplication.java │ │ │ │ │ ├── dto/ │ │ │ │ │ │ ├── BatchDto.java │ │ │ │ │ │ ├── OrderPaidEvent.java │ │ │ │ │ │ └── OrderStep.java │ │ │ │ │ └── service/ │ │ │ │ │ ├── Consumer.java │ │ │ │ │ ├── ConsumerBatch.java │ │ │ │ │ ├── ConsumerBroadcast.java │ │ │ │ │ ├── ConsumerCluster.java │ │ │ │ │ ├── ConsumerInOrder.java │ │ │ │ │ ├── ConsumerSQL.java │ │ │ │ │ ├── ConsumerTag1.java │ │ │ │ │ ├── ConsumerTag2.java │ │ │ │ │ └── ConsumerTransaction.java │ │ │ │ └── resources/ │ │ │ │ └── application.yml │ │ │ └── rocketmq-producer/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── example/ │ │ │ │ │ ├── RocketMQProducerApplication.java │ │ │ │ │ ├── dto/ │ │ │ │ │ │ ├── BatchDto.java │ │ │ │ │ │ ├── OrderPaidEvent.java │ │ │ │ │ │ └── OrderStep.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── IRocketMQService.java │ │ │ │ │ │ ├── impl/ │ │ │ │ │ │ │ └── RocketMQServiceImpl.java │ │ │ │ │ │ └── util/ │ │ │ │ │ │ └── ListSplitter.java │ │ │ │ │ └── transaction/ │ │ │ │ │ └── TransactionListenerImpl.java │ │ │ │ └── resources/ │ │ │ │ └── application.yml │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── exanmple/ │ │ │ └── RocketMQProducerTest.java │ │ └── spring-boot-rocketmq-simple/ │ │ ├── pom.xml │ │ ├── rocketmq-consumer-simple/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── example/ │ │ │ │ ├── RocketMQSimpleConsumerApplication.java │ │ │ │ └── service/ │ │ │ │ └── Consumer.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── rocketmq-producer-simple/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── example/ │ │ │ │ └── RocketMQSimpleProducerApplication.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── example/ │ │ └── ProducerSimpleTest.java │ ├── springboot_multi_datasource_jpa/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── multi/ │ │ │ │ └── datasource/ │ │ │ │ └── jpa/ │ │ │ │ ├── SpringBootDemoMultiDatasourceJpaApplication.java │ │ │ │ ├── config/ │ │ │ │ │ ├── PrimaryDataSourceConfig.java │ │ │ │ │ ├── PrimaryJpaConfig.java │ │ │ │ │ ├── SecondDataSourceConfig.java │ │ │ │ │ ├── SecondJpaConfig.java │ │ │ │ │ └── SnowflakeConfig.java │ │ │ │ ├── entity/ │ │ │ │ │ ├── primary/ │ │ │ │ │ │ └── PrimaryMultiTable.java │ │ │ │ │ └── second/ │ │ │ │ │ └── SecondMultiTable.java │ │ │ │ └── repository/ │ │ │ │ ├── primary/ │ │ │ │ │ └── PrimaryMultiTableRepository.java │ │ │ │ └── second/ │ │ │ │ └── SecondMultiTableRepository.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── multi/ │ │ └── datasource/ │ │ └── jpa/ │ │ └── SpringBootDemoMultiDatasourceJpaApplicationTests.java │ ├── springboot_multi_datasource_mybatis/ │ │ ├── README.md │ │ ├── pom.xml │ │ ├── sql/ │ │ │ └── db.sql │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── multi/ │ │ │ │ └── datasource/ │ │ │ │ └── mybatis/ │ │ │ │ ├── SpringBootDemoMultiDatasourceMybatisApplication.java │ │ │ │ ├── mapper/ │ │ │ │ │ └── UserMapper.java │ │ │ │ ├── model/ │ │ │ │ │ └── User.java │ │ │ │ └── service/ │ │ │ │ ├── UserService.java │ │ │ │ └── impl/ │ │ │ │ └── UserServiceImpl.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── multi/ │ │ └── datasource/ │ │ └── mybatis/ │ │ ├── SpringBootDemoMultiDatasourceMybatisApplicationTests.java │ │ └── service/ │ │ └── impl/ │ │ └── UserServiceImplTest.java │ ├── springboot_multi_threading/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── example/ │ │ │ │ ├── MultiThreadApplication.java │ │ │ │ ├── config/ │ │ │ │ │ └── ThreadPoolTaskConfig.java │ │ │ │ └── service/ │ │ │ │ └── ThreadService.java │ │ │ └── resources/ │ │ │ └── application.yaml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── example/ │ │ ├── BaseTest.java │ │ └── service/ │ │ └── ThreadTest.java │ ├── springboot_multisource/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ ├── run.sh │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── xncoding/ │ │ │ │ └── pos/ │ │ │ │ ├── Application.java │ │ │ │ ├── common/ │ │ │ │ │ ├── annotion/ │ │ │ │ │ │ └── DataSource.java │ │ │ │ │ ├── aop/ │ │ │ │ │ │ └── MultiSourceExAop.java │ │ │ │ │ ├── dao/ │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ └── User.java │ │ │ │ │ │ └── repository/ │ │ │ │ │ │ └── UserMapper.java │ │ │ │ │ └── mutidatesource/ │ │ │ │ │ ├── DSEnum.java │ │ │ │ │ ├── DataSourceContextHolder.java │ │ │ │ │ └── DynamicDataSource.java │ │ │ │ ├── config/ │ │ │ │ │ ├── MybatisPlusConfig.java │ │ │ │ │ └── properties/ │ │ │ │ │ ├── DruidProperties.java │ │ │ │ │ └── MutiDataSourceProperties.java │ │ │ │ └── service/ │ │ │ │ └── UserService.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ ├── banner.txt │ │ │ └── sql/ │ │ │ └── schema.sql │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── xncoding/ │ │ └── pos/ │ │ └── ApplicationTests.java │ ├── springboot_mybatis/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ ├── run.sh │ │ ├── spring-boot-mybatis-annotation/ │ │ │ ├── pom.xml │ │ │ ├── src/ │ │ │ │ ├── main/ │ │ │ │ │ ├── java/ │ │ │ │ │ │ └── com/ │ │ │ │ │ │ └── neo/ │ │ │ │ │ │ ├── MybatisAnnotationApplication.java │ │ │ │ │ │ ├── enums/ │ │ │ │ │ │ │ └── UserSexEnum.java │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ └── UserMapper.java │ │ │ │ │ │ ├── model/ │ │ │ │ │ │ │ └── User.java │ │ │ │ │ │ └── web/ │ │ │ │ │ │ └── UserController.java │ │ │ │ │ └── resources/ │ │ │ │ │ └── application.properties │ │ │ │ └── test/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── neo/ │ │ │ │ ├── MybatisAnnotationApplicationTests.java │ │ │ │ └── mapper/ │ │ │ │ └── UserMapperTest.java │ │ │ └── users.sql │ │ ├── spring-boot-mybatis-annotation-mulidatasource/ │ │ │ ├── pom.xml │ │ │ ├── src/ │ │ │ │ ├── main/ │ │ │ │ │ ├── java/ │ │ │ │ │ │ └── com/ │ │ │ │ │ │ └── neo/ │ │ │ │ │ │ ├── MAMApplication.java │ │ │ │ │ │ ├── datasource/ │ │ │ │ │ │ │ ├── DataSource1Config.java │ │ │ │ │ │ │ └── DataSource2Config.java │ │ │ │ │ │ ├── enums/ │ │ │ │ │ │ │ └── UserSexEnum.java │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ ├── test1/ │ │ │ │ │ │ │ │ └── User1Mapper.java │ │ │ │ │ │ │ └── test2/ │ │ │ │ │ │ │ └── User2Mapper.java │ │ │ │ │ │ ├── model/ │ │ │ │ │ │ │ └── User.java │ │ │ │ │ │ └── web/ │ │ │ │ │ │ └── UserController.java │ │ │ │ │ └── resources/ │ │ │ │ │ └── application.properties │ │ │ │ └── test/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── neo/ │ │ │ │ ├── MAMApplicationTests.java │ │ │ │ └── mapper/ │ │ │ │ ├── User1MapperTest.java │ │ │ │ └── User2MapperTest.java │ │ │ └── users.sql │ │ ├── spring-boot-mybatis-xml/ │ │ │ ├── pom.xml │ │ │ ├── src/ │ │ │ │ ├── main/ │ │ │ │ │ ├── java/ │ │ │ │ │ │ └── com/ │ │ │ │ │ │ └── neo/ │ │ │ │ │ │ ├── MybatisXmlApplication.java │ │ │ │ │ │ ├── enums/ │ │ │ │ │ │ │ └── UserSexEnum.java │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ └── UserMapper.java │ │ │ │ │ │ ├── model/ │ │ │ │ │ │ │ └── User.java │ │ │ │ │ │ └── web/ │ │ │ │ │ │ └── UserController.java │ │ │ │ │ └── resources/ │ │ │ │ │ ├── application.properties │ │ │ │ │ └── mybatis/ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ └── UserMapper.xml │ │ │ │ │ └── mybatis-config.xml │ │ │ │ └── test/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── neo/ │ │ │ │ ├── MybatisXmlApplicationTests.java │ │ │ │ ├── mapper/ │ │ │ │ │ └── UserMapperTest.java │ │ │ │ └── web/ │ │ │ │ └── UserControllerTest.java │ │ │ └── users.sql │ │ ├── spring-boot-mybatis-xml-mulidatasource/ │ │ │ ├── pom.xml │ │ │ ├── src/ │ │ │ │ ├── main/ │ │ │ │ │ ├── java/ │ │ │ │ │ │ └── com/ │ │ │ │ │ │ └── neo/ │ │ │ │ │ │ ├── MXMApplication.java │ │ │ │ │ │ ├── datasource/ │ │ │ │ │ │ │ ├── DataSource1Config.java │ │ │ │ │ │ │ └── DataSource2Config.java │ │ │ │ │ │ ├── enums/ │ │ │ │ │ │ │ └── UserSexEnum.java │ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ │ ├── test1/ │ │ │ │ │ │ │ │ └── User1Mapper.java │ │ │ │ │ │ │ └── test2/ │ │ │ │ │ │ │ └── User2Mapper.java │ │ │ │ │ │ ├── model/ │ │ │ │ │ │ │ └── User.java │ │ │ │ │ │ └── web/ │ │ │ │ │ │ └── UserController.java │ │ │ │ │ └── resources/ │ │ │ │ │ ├── application.properties │ │ │ │ │ └── mybatis/ │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ ├── test1/ │ │ │ │ │ │ │ └── UserMapper.xml │ │ │ │ │ │ └── test2/ │ │ │ │ │ │ └── UserMapper.xml │ │ │ │ │ └── mybatis-config.xml │ │ │ │ └── test/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── neo/ │ │ │ │ ├── MXMApplicationTests.java │ │ │ │ └── mapper/ │ │ │ │ ├── User1MapperTest.java │ │ │ │ └── User2MapperTest.java │ │ │ └── users.sql │ │ └── 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 │ │ ├── banner.txt │ │ ├── init.sql │ │ └── sql/ │ │ └── schema.sql │ ├── springboot_mybatis_jsp/ │ │ ├── README.md │ │ ├── doc/ │ │ │ └── springload.md │ │ ├── mvnw │ │ ├── mvnw.cmd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── mybatis/ │ │ │ │ ├── RunApplication.java │ │ │ │ ├── beans/ │ │ │ │ │ ├── Apple.java │ │ │ │ │ ├── Banana.java │ │ │ │ │ ├── CustomBeanConfiguration.java │ │ │ │ │ └── Fruit.java │ │ │ │ ├── configuration/ │ │ │ │ │ └── MvcEncodeConfiguration.java │ │ │ │ ├── controller/ │ │ │ │ │ ├── EmployControl.java │ │ │ │ │ ├── HelloSpringBootController.java │ │ │ │ │ ├── HotBootControl.java │ │ │ │ │ ├── PageController.java │ │ │ │ │ └── WelcomeController.java │ │ │ │ ├── enums/ │ │ │ │ │ └── ResponseCodeEnum.java │ │ │ │ ├── exeception/ │ │ │ │ │ ├── BaseException.java │ │ │ │ │ ├── BusinessException.java │ │ │ │ │ └── modal/ │ │ │ │ │ └── ResponseExceptionEntity.java │ │ │ │ ├── handler/ │ │ │ │ │ └── GlobalExceptionHandler.java │ │ │ │ ├── mapper/ │ │ │ │ │ └── business/ │ │ │ │ │ ├── DepartmentMapper.java │ │ │ │ │ └── EmployMapper.java │ │ │ │ ├── model/ │ │ │ │ │ └── business/ │ │ │ │ │ ├── Department.java │ │ │ │ │ └── Employ.java │ │ │ │ ├── properties/ │ │ │ │ │ └── AuthorProperties.java │ │ │ │ ├── response/ │ │ │ │ │ ├── DataResponse.java │ │ │ │ │ └── PageResponse.java │ │ │ │ └── service/ │ │ │ │ └── business/ │ │ │ │ ├── EmployService.java │ │ │ │ └── impl/ │ │ │ │ └── EmployServiceImpl.java │ │ │ ├── resources/ │ │ │ │ ├── application.yml │ │ │ │ ├── config/ │ │ │ │ │ ├── application-development.yml │ │ │ │ │ ├── application-product.yml │ │ │ │ │ └── application.yml │ │ │ │ └── mappings/ │ │ │ │ └── business/ │ │ │ │ ├── DepartmentMapper.xml │ │ │ │ └── EmployMapper.xml │ │ │ └── webapp/ │ │ │ └── WEB-INF/ │ │ │ ├── jsp/ │ │ │ │ ├── spring-boot.jsp │ │ │ │ └── welcome.jsp │ │ │ └── web.xml │ │ └── test/ │ │ └── java/ │ │ └── DemoApplicationTests.java │ ├── springboot_mybatisplus/ │ │ ├── README.md │ │ ├── build.gradle │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── springboot/ │ │ │ │ └── mybatisplus/ │ │ │ │ ├── Application.java │ │ │ │ ├── ErrorCode.java │ │ │ │ ├── SuperMapper.java │ │ │ │ ├── config/ │ │ │ │ │ ├── GlobalExceptionHandler.java │ │ │ │ │ ├── MetaObjectHandlerConfig.java │ │ │ │ │ └── MybatisPlusConfig.java │ │ │ │ ├── controller/ │ │ │ │ │ └── UserController.java │ │ │ │ ├── entity/ │ │ │ │ │ ├── SuperEntity.java │ │ │ │ │ ├── User.java │ │ │ │ │ └── enums/ │ │ │ │ │ ├── AgeEnum.java │ │ │ │ │ └── PhoneEnum.java │ │ │ │ ├── mapper/ │ │ │ │ │ └── UserMapper.java │ │ │ │ └── service/ │ │ │ │ ├── IUserService.java │ │ │ │ └── impl/ │ │ │ │ └── UserServiceImpl.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ ├── db/ │ │ │ │ ├── data-h2.sql │ │ │ │ └── schema-h2.sql │ │ │ └── mapper/ │ │ │ └── UserMapper.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── springboot/ │ │ └── mybatisplus/ │ │ └── AppTest.java │ ├── springboot_netty_websocket/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── company/ │ │ │ │ └── project/ │ │ │ │ ├── Application.java │ │ │ │ ├── configurer/ │ │ │ │ │ ├── LoginInterceptor.java │ │ │ │ │ ├── MyBatisPlusConfig.java │ │ │ │ │ ├── SwaggerConfiguration.java │ │ │ │ │ ├── WebMvcConfigurer.java │ │ │ │ │ └── netty/ │ │ │ │ │ ├── NettyConfig.java │ │ │ │ │ ├── NettyServer.java │ │ │ │ │ └── WebSocketHandler.java │ │ │ │ ├── core/ │ │ │ │ │ ├── ApplicationContextUtil.java │ │ │ │ │ ├── Result.java │ │ │ │ │ ├── ResultCode.java │ │ │ │ │ ├── ResultGenerator.java │ │ │ │ │ └── ServiceException.java │ │ │ │ ├── dao/ │ │ │ │ │ └── UserMapper.java │ │ │ │ ├── model/ │ │ │ │ │ └── User.java │ │ │ │ ├── service/ │ │ │ │ │ ├── IUserService.java │ │ │ │ │ ├── PushService.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── PushServiceImpl.java │ │ │ │ │ └── UserServiceImpl.java │ │ │ │ ├── utils/ │ │ │ │ │ ├── JwtUtils.java │ │ │ │ │ └── MD5Utils.java │ │ │ │ └── web/ │ │ │ │ ├── PushController.java │ │ │ │ └── UserController.java │ │ │ └── resources/ │ │ │ ├── application-dev.yml │ │ │ ├── application-prod.yml │ │ │ ├── application-test.yml │ │ │ ├── application.yml │ │ │ ├── banner.txt │ │ │ ├── mapper/ │ │ │ │ └── UserMapper.xml │ │ │ └── testNettyWebsocket.html │ │ └── test/ │ │ ├── java/ │ │ │ ├── CodeGenerator.java │ │ │ └── com/ │ │ │ └── company/ │ │ │ └── project/ │ │ │ └── Tester.java │ │ └── resources/ │ │ ├── templates/ │ │ │ └── controller.java.ftl │ │ └── user.sql │ ├── springboot_oauth2/ │ │ ├── README.md │ │ ├── authorization-server/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── cn/ │ │ │ │ │ └── merryyou/ │ │ │ │ │ └── security/ │ │ │ │ │ ├── SpringBoot2Oauth2Application.java │ │ │ │ │ ├── config/ │ │ │ │ │ │ └── TokenStoreConfig.java │ │ │ │ │ ├── handler/ │ │ │ │ │ │ └── AppLoginInSuccessHandler.java │ │ │ │ │ ├── properties/ │ │ │ │ │ │ ├── OAuth2ClientProperties.java │ │ │ │ │ │ ├── OAuth2CoreConfig.java │ │ │ │ │ │ └── OAuth2Properties.java │ │ │ │ │ ├── security/ │ │ │ │ │ │ ├── MyUserDetailsService.java │ │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ │ └── jwt/ │ │ │ │ │ │ └── MerryyouJwtTokenEnhancer.java │ │ │ │ │ ├── server/ │ │ │ │ │ │ ├── MerryyouAuthorizationServerConfig.java │ │ │ │ │ │ └── MerryyouResourceServerConfig.java │ │ │ │ │ └── utils/ │ │ │ │ │ └── JsonUtil.java │ │ │ │ └── resources/ │ │ │ │ └── application.yml │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── cn/ │ │ │ └── merryyou/ │ │ │ └── security/ │ │ │ └── SpringBoot2Oauth2Test.java │ │ ├── pom.xml │ │ └── resource-server/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── cn/ │ │ │ └── merryyou/ │ │ │ └── security/ │ │ │ ├── SpringBoot2Oauth2ResourceApplication.java │ │ │ └── resource/ │ │ │ └── MerryyouResourceServerConfiguration.java │ │ └── resources/ │ │ └── application.yml │ ├── springboot_orm_jdbctemplate/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── 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/ │ │ └── jun/ │ │ └── plugin/ │ │ └── orm/ │ │ └── jdbctemplate/ │ │ └── SpringBootDemoOrmJdbctemplateApplicationTests.java │ ├── springboot_oss_aliyun/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── doumuxie/ │ │ │ ├── StartApplication.java │ │ │ ├── config/ │ │ │ │ ├── CorsConfig.java │ │ │ │ └── GlobalExceptionHandler.java │ │ │ ├── controller/ │ │ │ │ └── IndexController.java │ │ │ ├── dto/ │ │ │ │ └── FileDto.java │ │ │ └── utils/ │ │ │ ├── AliyunOSSClientUtil.java │ │ │ ├── Md5Util.java │ │ │ ├── ResultUtil.java │ │ │ └── UUIDUtil.java │ │ └── resources/ │ │ ├── application-dev.yml │ │ ├── application.yml │ │ └── public/ │ │ └── index.html │ ├── springboot_oss_qiniu/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── zhang/ │ │ │ │ └── qiniuDemo/ │ │ │ │ ├── QiNiuYunApplication.java │ │ │ │ ├── controller/ │ │ │ │ │ └── QiNiuYunUrlController.java │ │ │ │ └── utils/ │ │ │ │ ├── QiNiuYunDeBugUpload.java │ │ │ │ └── QiniuUploadUtil.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── cn/ │ │ └── itcast/ │ │ └── qiniu/ │ │ └── QiniuDemo.java │ ├── springboot_pay/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── springboot/ │ │ │ ├── Application.java │ │ │ ├── config/ │ │ │ │ ├── DruidConfiguration.java │ │ │ │ ├── EnjoyConfig.java │ │ │ │ ├── HibernateConfiguration.java │ │ │ │ ├── InterceptorConfig.java │ │ │ │ └── TxAnoConfig.java │ │ │ ├── controller/ │ │ │ │ ├── AliController.java │ │ │ │ ├── BaseController.java │ │ │ │ ├── NotifyController.java │ │ │ │ └── WxController.java │ │ │ ├── dao/ │ │ │ │ ├── BaseDao.java │ │ │ │ ├── IAdminDao.java │ │ │ │ ├── IUserDao.java │ │ │ │ ├── IUserProfileDao.java │ │ │ │ ├── Page.java │ │ │ │ └── impl/ │ │ │ │ ├── AdminDaoImpl.java │ │ │ │ ├── UserDaoimpl.java │ │ │ │ └── UserProfileDaoImpl.java │ │ │ ├── interceptor/ │ │ │ │ └── MyInterceptor1.java │ │ │ ├── listener/ │ │ │ │ └── MyServletContextListener.java │ │ │ ├── model/ │ │ │ │ ├── Admin.java │ │ │ │ ├── PayModel.java │ │ │ │ ├── User.java │ │ │ │ └── UserProfile.java │ │ │ ├── service/ │ │ │ │ ├── IAliService.java │ │ │ │ ├── IWxService.java │ │ │ │ └── impl/ │ │ │ │ ├── AliServiceImpl.java │ │ │ │ └── WxServiceImpl.java │ │ │ ├── test/ │ │ │ │ ├── Listener.java │ │ │ │ └── Test.java │ │ │ └── util/ │ │ │ ├── AliPayUtil.java │ │ │ ├── BigDecimalUtil.java │ │ │ ├── DateUtil.java │ │ │ ├── HashKit.java │ │ │ ├── HttpKit.java │ │ │ ├── IPKit.java │ │ │ ├── IdKit.java │ │ │ ├── JedisUtil.java │ │ │ ├── MD5Util.java │ │ │ ├── Pager.java │ │ │ ├── PropKit.java │ │ │ ├── PropertiesUtil.java │ │ │ ├── WxPayUtil.java │ │ │ ├── WxUtil.java │ │ │ └── XMLUtil.java │ │ ├── resources/ │ │ │ ├── application-dev.properties │ │ │ ├── application.properties │ │ │ ├── pay-info.properties │ │ │ └── template/ │ │ │ └── view/ │ │ │ ├── ali/ │ │ │ │ └── qrCode.html │ │ │ └── wx/ │ │ │ ├── qrCode.html │ │ │ └── wx.html │ │ └── webapp/ │ │ ├── WEB-INF/ │ │ │ └── web.xml │ │ ├── index.jsp │ │ └── view/ │ │ └── test.jsp │ ├── springboot_quartz/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── itstyle/ │ │ │ └── quartz/ │ │ │ ├── Application.java │ │ │ ├── config/ │ │ │ │ ├── IndexController.java │ │ │ │ ├── SchedulerConfig.java │ │ │ │ ├── SpringJobFactory.java │ │ │ │ └── TaskRunner.java │ │ │ ├── dynamicquery/ │ │ │ │ ├── DynamicQuery.java │ │ │ │ ├── DynamicQueryImpl.java │ │ │ │ └── NativeQueryResultEntity.java │ │ │ ├── entity/ │ │ │ │ ├── QuartzEntity.java │ │ │ │ └── Result.java │ │ │ ├── interceptor/ │ │ │ │ └── MyAdapter.java │ │ │ ├── job/ │ │ │ │ └── ChickenJob.java │ │ │ ├── service/ │ │ │ │ ├── IJobService.java │ │ │ │ └── impl/ │ │ │ │ └── JobServiceImpl.java │ │ │ └── web/ │ │ │ └── JobController.java │ │ ├── resources/ │ │ │ ├── application.properties │ │ │ ├── docker-compose.yml │ │ │ ├── quartz.properties │ │ │ ├── sql/ │ │ │ │ ├── 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 │ │ │ └── templates/ │ │ │ ├── login.html │ │ │ ├── main.html │ │ │ └── task/ │ │ │ ├── add.html │ │ │ ├── cron.html │ │ │ └── index.html │ │ └── webapp/ │ │ ├── WEB-INF/ │ │ │ └── web.xml │ │ └── index.jsp │ ├── springboot_ratelimit_guava/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── ratelimit/ │ │ │ │ └── guava/ │ │ │ │ ├── SpringBootDemoRatelimitGuavaApplication.java │ │ │ │ ├── annotation/ │ │ │ │ │ └── RateLimiter.java │ │ │ │ ├── aspect/ │ │ │ │ │ └── RateLimiterAspect.java │ │ │ │ ├── controller/ │ │ │ │ │ └── TestController.java │ │ │ │ └── handler/ │ │ │ │ └── GlobalExceptionHandler.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── ratelimit/ │ │ └── guava/ │ │ └── SpringBootDemoRatelimitGuavaApplicationTests.java │ ├── springboot_ratelimit_redis/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── ratelimit/ │ │ │ │ └── redis/ │ │ │ │ ├── SpringBootDemoRatelimitRedisApplication.java │ │ │ │ ├── annotation/ │ │ │ │ │ └── RateLimiter.java │ │ │ │ ├── aspect/ │ │ │ │ │ └── RateLimiterAspect.java │ │ │ │ ├── config/ │ │ │ │ │ └── RedisConfig.java │ │ │ │ ├── controller/ │ │ │ │ │ └── TestController.java │ │ │ │ ├── handler/ │ │ │ │ │ └── GlobalExceptionHandler.java │ │ │ │ └── util/ │ │ │ │ └── IpUtil.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ └── scripts/ │ │ │ └── redis/ │ │ │ └── limit.lua │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── ratelimit/ │ │ └── redis/ │ │ └── SpringBootDemoRatelimiterRedisApplicationTests.java │ ├── springboot_rbac_security/ │ │ ├── README.md │ │ ├── pom.xml │ │ ├── sql/ │ │ │ └── security.sql │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── 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/ │ │ └── jun/ │ │ └── plugin/ │ │ └── rbac/ │ │ └── security/ │ │ ├── SpringBootDemoRbacSecurityApplicationTests.java │ │ ├── repository/ │ │ │ ├── DataInitTest.java │ │ │ └── UserDaoTest.java │ │ └── util/ │ │ └── RedisUtilTest.java │ ├── springboot_rbac_shiro/ │ │ ├── pom.xml │ │ ├── sql/ │ │ │ └── shiro.sql │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── rbac/ │ │ │ │ └── shiro/ │ │ │ │ ├── SpringBootDemoRbacShiroApplication.java │ │ │ │ ├── common/ │ │ │ │ │ ├── IResultCode.java │ │ │ │ │ ├── R.java │ │ │ │ │ └── ResultCode.java │ │ │ │ ├── config/ │ │ │ │ │ └── MybatisPlusConfig.java │ │ │ │ └── controller/ │ │ │ │ └── TestController.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ └── spy.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── rbac/ │ │ └── shiro/ │ │ └── SpringBootDemoRbacShiroApplicationTests.java │ ├── springboot_redis/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ ├── run.sh │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── xncoding/ │ │ │ │ └── pos/ │ │ │ │ ├── Application.java │ │ │ │ ├── config/ │ │ │ │ │ ├── DruidProperties.java │ │ │ │ │ ├── MybatisPlusConfig.java │ │ │ │ │ └── RedisConfig.java │ │ │ │ ├── dao/ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ └── User.java │ │ │ │ │ └── repository/ │ │ │ │ │ └── UserMapper.java │ │ │ │ └── service/ │ │ │ │ └── UserService.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ ├── application.yml │ │ │ ├── banner.txt │ │ │ └── sql/ │ │ │ └── t_user.sql │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── xncoding/ │ │ └── service/ │ │ └── UserServiceTest.java │ ├── springboot_redis_cluster/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── redis/ │ │ │ │ ├── Application.java │ │ │ │ ├── entity/ │ │ │ │ │ └── User.java │ │ │ │ ├── redis/ │ │ │ │ │ ├── ICacheManager.java │ │ │ │ │ ├── JedisClusterFactory.java │ │ │ │ │ ├── RedisConfiguration.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── CacheManager.java │ │ │ │ │ └── JedisCacheManager.java │ │ │ │ └── util/ │ │ │ │ └── SerializingUtil.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ └── logback.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── redis/ │ │ └── impl/ │ │ └── JedisCacheManagerTest.java │ ├── springboot_redis_sentinel/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── docker/ │ │ │ └── docker-compose.yml │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── hello/ │ │ │ ├── Application.java │ │ │ └── RedisConfiguration.java │ │ └── resources/ │ │ └── application.yaml │ ├── springboot_redislock/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── redis/ │ │ │ ├── exception/ │ │ │ │ └── RedisLockException.java │ │ │ └── lock/ │ │ │ ├── RedisLock.java │ │ │ └── api/ │ │ │ ├── RLock.java │ │ │ └── RedisCommand.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── redis/ │ │ └── LockTest.java │ ├── springboot_resttemplate/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ ├── run.sh │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── xncoding/ │ │ │ │ └── pos/ │ │ │ │ ├── Application.java │ │ │ │ ├── config/ │ │ │ │ │ ├── HttpClientConfig.java │ │ │ │ │ ├── RestTemplateConfig.java │ │ │ │ │ └── properties/ │ │ │ │ │ └── HttpClientProperties.java │ │ │ │ ├── controller/ │ │ │ │ │ └── LoginController.java │ │ │ │ └── model/ │ │ │ │ ├── BaseResponse.java │ │ │ │ ├── LoginParam.java │ │ │ │ └── UnbindParam.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── xncoding/ │ │ └── pos/ │ │ └── ApplicationTests.java │ ├── springboot_schedule/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ ├── run.sh │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── xncoding/ │ │ │ └── pos/ │ │ │ ├── Application.java │ │ │ ├── config/ │ │ │ │ └── ScheduleConfig.java │ │ │ └── jobs/ │ │ │ ├── HeartbeatJob.java │ │ │ ├── Scheduler2Task.java │ │ │ └── SchedulerTask.java │ │ └── resources/ │ │ ├── application.yml │ │ └── banner.txt │ ├── springboot_security2/ │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── pom.xml │ │ ├── simple-security-jwt/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── org/ │ │ │ │ └── simple/ │ │ │ │ └── web/ │ │ │ │ └── jwt/ │ │ │ │ ├── annotation/ │ │ │ │ │ └── EnableWebSecurityJwt.java │ │ │ │ ├── config/ │ │ │ │ │ ├── PasswordEncoderFactory.java │ │ │ │ │ └── WebSecurityConfig.java │ │ │ │ ├── filter/ │ │ │ │ │ ├── JwtAuthenticationTokenFilter.java │ │ │ │ │ └── UserLoginFilter.java │ │ │ │ ├── handler/ │ │ │ │ │ ├── SimpleAuthenticatingFailureHandler.java │ │ │ │ │ └── SimpleAuthenticatingSuccessHandler.java │ │ │ │ ├── property/ │ │ │ │ │ ├── JwtAuthFilterProperty.java │ │ │ │ │ ├── JwtPayloadProperty.java │ │ │ │ │ └── SimpleSecurityProperty.java │ │ │ │ └── service/ │ │ │ │ └── JwtService.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── simple-security-jwt-demo/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── simple/ │ │ │ └── web/ │ │ │ └── security/ │ │ │ └── jwt/ │ │ │ └── demo/ │ │ │ ├── DemoApplication.java │ │ │ ├── controller/ │ │ │ │ └── IndexController.java │ │ │ ├── entity/ │ │ │ │ └── User.java │ │ │ └── service/ │ │ │ └── UserAuthService.java │ │ └── resources/ │ │ └── application.yml │ ├── springboot_session/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── session/ │ │ │ │ ├── SpringBootDemoSessionApplication.java │ │ │ │ ├── config/ │ │ │ │ │ └── WebMvcConfig.java │ │ │ │ ├── constants/ │ │ │ │ │ └── Consts.java │ │ │ │ ├── controller/ │ │ │ │ │ ├── PageController.java │ │ │ │ │ └── SessionController.java │ │ │ │ └── interceptor/ │ │ │ │ └── SessionInterceptor.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ └── templates/ │ │ │ ├── index.html │ │ │ └── login.html │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── session/ │ │ └── SpringBootDemoSessionApplicationTests.java │ ├── springboot_shardingsphere-mybatisplus/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── doc/ │ │ │ └── slave_user.sql │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── frame/ │ │ │ │ ├── Application.java │ │ │ │ ├── config/ │ │ │ │ │ ├── MetaObjectHandlerConfig.java │ │ │ │ │ └── MyBatisPlusConfig.java │ │ │ │ ├── controller/ │ │ │ │ │ ├── SysDeptController.java │ │ │ │ │ └── UserController.java │ │ │ │ ├── entity/ │ │ │ │ │ ├── SysDept.java │ │ │ │ │ └── User.java │ │ │ │ ├── mapper/ │ │ │ │ │ ├── SysDeptMapper.java │ │ │ │ │ └── UserMapper.java │ │ │ │ └── service/ │ │ │ │ ├── ISysDeptService.java │ │ │ │ ├── UserService.java │ │ │ │ └── impl/ │ │ │ │ ├── SysDeptServiceImpl.java │ │ │ │ └── UserServiceImpl.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── CodeGenerator.java │ ├── springboot_shiro/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ ├── run.sh │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── xncoding/ │ │ │ │ └── pos/ │ │ │ │ ├── Application.java │ │ │ │ ├── common/ │ │ │ │ │ └── dao/ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── Manager.java │ │ │ │ │ │ ├── ManagerRole.java │ │ │ │ │ │ ├── Permission.java │ │ │ │ │ │ ├── Role.java │ │ │ │ │ │ └── RolePermission.java │ │ │ │ │ └── repository/ │ │ │ │ │ ├── ManagerMapper.java │ │ │ │ │ ├── ManagerRoleMapper.java │ │ │ │ │ ├── PermissionMapper.java │ │ │ │ │ ├── RoleMapper.java │ │ │ │ │ └── RolePermissionMapper.java │ │ │ │ ├── config/ │ │ │ │ │ ├── MybatisPlusConfig.java │ │ │ │ │ ├── ShiroConfig.java │ │ │ │ │ └── properties/ │ │ │ │ │ ├── DruidProperties.java │ │ │ │ │ └── MyProperties.java │ │ │ │ ├── controller/ │ │ │ │ │ └── LoginController.java │ │ │ │ ├── dao/ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── ManagerInfo.java │ │ │ │ │ │ └── SysRole.java │ │ │ │ │ └── repository/ │ │ │ │ │ ├── ManagerInfoDao.java │ │ │ │ │ └── mapping/ │ │ │ │ │ └── ManagerInfoDao.xml │ │ │ │ ├── exception/ │ │ │ │ │ └── ForbiddenUserException.java │ │ │ │ ├── model/ │ │ │ │ │ └── BaseResponse.java │ │ │ │ ├── service/ │ │ │ │ │ └── ManagerInfoService.java │ │ │ │ └── shiro/ │ │ │ │ ├── CaptchaUsernamePasswordToken.java │ │ │ │ ├── IncorrectCaptchaException.java │ │ │ │ ├── KaptchaFilter.java │ │ │ │ ├── MyExceptionResolver.java │ │ │ │ ├── MyShiroRealm.java │ │ │ │ ├── RoleFilter.java │ │ │ │ └── ShiroKit.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ ├── banner.txt │ │ │ ├── database/ │ │ │ │ └── import.sql │ │ │ ├── ehcache.xml │ │ │ ├── public/ │ │ │ │ └── static/ │ │ │ │ └── css/ │ │ │ │ ├── 404.css │ │ │ │ ├── login.css │ │ │ │ └── style.css │ │ │ ├── sql/ │ │ │ │ └── schema.sql │ │ │ └── templates/ │ │ │ ├── 403.html │ │ │ ├── error/ │ │ │ │ ├── 404.html │ │ │ │ ├── 500.html │ │ │ │ └── shiro_403.html │ │ │ ├── index.html │ │ │ ├── login.html │ │ │ ├── modules/ │ │ │ │ └── common/ │ │ │ │ └── welcome.html │ │ │ ├── userInfo.html │ │ │ ├── userInfoAdd.html │ │ │ └── userInfoDel.html │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── xncoding/ │ │ └── pos/ │ │ └── SimpleTest.java │ ├── springboot_snaker/ │ │ ├── .gitattributes │ │ ├── Initial_commit.patch │ │ ├── README.md │ │ ├── Spring Boot 集成SnakerFlow流程引擎,简介、功能列表、详细解读、扩展点分析.md │ │ ├── mvnw │ │ ├── mvnw.cmd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── snakerflow/ │ │ │ │ └── demo/ │ │ │ │ ├── DemoApplication.java │ │ │ │ ├── DemoApplicationRunner.java │ │ │ │ ├── api/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── SecUserController.java │ │ │ │ │ │ └── TestController.java │ │ │ │ │ ├── entity/ │ │ │ │ │ │ └── SecUser.java │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ └── SecUserMapper.java │ │ │ │ │ └── service/ │ │ │ │ │ ├── ISecUserService.java │ │ │ │ │ ├── IWorkflowService.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── SecUserServiceImpl.java │ │ │ │ │ └── WorkflowServiceImpl.java │ │ │ │ ├── generator/ │ │ │ │ │ └── CodeGenerator.java │ │ │ │ └── utils/ │ │ │ │ ├── ResponseData.java │ │ │ │ ├── SnakerEngineFacade.java │ │ │ │ └── SnakerEngineFacadeImpl.java │ │ │ └── resources/ │ │ │ ├── config/ │ │ │ │ ├── develop/ │ │ │ │ │ ├── application.properties │ │ │ │ │ ├── applicationContext.xml │ │ │ │ │ ├── mybatis.cfg.xml │ │ │ │ │ └── snaker.properties │ │ │ │ ├── local/ │ │ │ │ │ ├── application.properties │ │ │ │ │ ├── applicationContext.xml │ │ │ │ │ ├── mybatis.cfg.xml │ │ │ │ │ └── snaker.properties │ │ │ │ ├── preview/ │ │ │ │ │ ├── application.properties │ │ │ │ │ ├── applicationContext.xml │ │ │ │ │ ├── mybatis.cfg.xml │ │ │ │ │ └── snaker.properties │ │ │ │ ├── release/ │ │ │ │ │ ├── application.properties │ │ │ │ │ ├── applicationContext.xml │ │ │ │ │ ├── mybatis.cfg.xml │ │ │ │ │ └── snaker.properties │ │ │ │ └── test/ │ │ │ │ ├── application.properties │ │ │ │ ├── applicationContext.xml │ │ │ │ ├── mybatis.cfg.xml │ │ │ │ └── snaker.properties │ │ │ ├── mapper/ │ │ │ │ └── api/ │ │ │ │ └── SecUserMapper.xml │ │ │ ├── snakerflow/ │ │ │ │ └── examination.snaker │ │ │ └── temp/ │ │ │ ├── application.properties │ │ │ ├── applicationContext-snaker.xml │ │ │ ├── applicationContext.xml │ │ │ ├── mybatis.cfg.xml │ │ │ └── snaker.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── snakerflow/ │ │ └── demo/ │ │ └── DemoApplicationTests.java │ ├── springboot_socketio/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ ├── run.sh │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── xncoding/ │ │ │ │ └── jwt/ │ │ │ │ ├── Application.java │ │ │ │ ├── common/ │ │ │ │ │ ├── JsonConverter.java │ │ │ │ │ └── ServerRunner.java │ │ │ │ ├── config/ │ │ │ │ │ ├── NettySocketConfig.java │ │ │ │ │ └── properties/ │ │ │ │ │ └── MyProperties.java │ │ │ │ ├── handler/ │ │ │ │ │ └── MessageEventHandler.java │ │ │ │ └── model/ │ │ │ │ ├── ChatMessage.java │ │ │ │ └── LoginRequest.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ └── banner.txt │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── xncoding/ │ │ └── jwt/ │ │ └── socket/ │ │ └── client/ │ │ ├── SocketClient.java │ │ └── html/ │ │ ├── bootstrap.css │ │ ├── index.html │ │ └── js/ │ │ └── socket.io/ │ │ └── socket.io.js │ ├── springboot_starter/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── xncoding/ │ │ │ └── starter/ │ │ │ ├── Application.java │ │ │ ├── config/ │ │ │ │ ├── ExampleAutoConfigure.java │ │ │ │ └── ExampleServiceProperties.java │ │ │ └── service/ │ │ │ └── ExampleService.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── spring.factories │ ├── springboot_swagger_beauty/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── swagger/ │ │ │ │ └── beauty/ │ │ │ │ ├── SpringBootDemoSwaggerBeautyApplication.java │ │ │ │ ├── common/ │ │ │ │ │ └── ApiResponse.java │ │ │ │ ├── controller/ │ │ │ │ │ └── UserController.java │ │ │ │ └── entity/ │ │ │ │ └── User.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── swagger/ │ │ └── beauty/ │ │ └── SpringBootDemoSwaggerBeautyApplicationTests.java │ ├── springboot_task_xxl_job/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── task/ │ │ │ └── xxl/ │ │ │ └── job/ │ │ │ ├── SpringBootDemoTaskXxlJobApplication.java │ │ │ ├── config/ │ │ │ │ ├── XxlJobConfig.java │ │ │ │ └── props/ │ │ │ │ └── XxlJobProps.java │ │ │ ├── controller/ │ │ │ │ └── ManualOperateController.java │ │ │ └── task/ │ │ │ └── DemoTask.java │ │ └── resources/ │ │ └── application.yml │ ├── springboot_template_freemarker/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── 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/ │ │ └── jun/ │ │ └── plugin/ │ │ └── template/ │ │ └── freemarker/ │ │ └── SpringBootDemoTemplateFreemarkerApplicationTests.java │ ├── springboot_template_thymeleaf/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── 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/ │ │ └── jun/ │ │ └── plugin/ │ │ └── template/ │ │ └── thymeleaf/ │ │ └── SpringBootDemoTemplateThymeleafApplicationTests.java │ ├── springboot_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 │ ├── springboot_thumbnailator/ │ │ ├── README.en.md │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── fit/ │ │ │ │ └── imgzip/ │ │ │ │ ├── ImgzipApplication.java │ │ │ │ ├── config/ │ │ │ │ │ ├── ImgZipConfig.java │ │ │ │ │ └── Swagger2.java │ │ │ │ ├── controller/ │ │ │ │ │ └── ImgZipController.java │ │ │ │ └── util/ │ │ │ │ └── ImageUtil.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ └── banner.txt │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── fit/ │ │ └── imgzip/ │ │ └── ImgzipApplicationTests.java │ ├── springboot_thymeleaf/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ ├── run.sh │ │ ├── spring-boot-thymeleaf/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── neo/ │ │ │ │ │ ├── ThymeleafApplication.java │ │ │ │ │ ├── model/ │ │ │ │ │ │ └── User.java │ │ │ │ │ └── web/ │ │ │ │ │ ├── ExampleController.java │ │ │ │ │ └── HelloController.java │ │ │ │ └── resources/ │ │ │ │ ├── application.properties │ │ │ │ └── templates/ │ │ │ │ ├── eq.html │ │ │ │ ├── hello.html │ │ │ │ ├── if.html │ │ │ │ ├── list.html │ │ │ │ ├── string.html │ │ │ │ ├── switch.html │ │ │ │ └── url.html │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── neo/ │ │ │ └── ThymeleafApplicationTests.java │ │ ├── spring-boot-thymeleaf-layout/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── neo/ │ │ │ │ │ ├── TLayoutApplication.java │ │ │ │ │ └── web/ │ │ │ │ │ └── IndexController.java │ │ │ │ └── resources/ │ │ │ │ ├── application.properties │ │ │ │ └── templates/ │ │ │ │ ├── base.html │ │ │ │ ├── fragment.html │ │ │ │ ├── home.html │ │ │ │ ├── index.html │ │ │ │ ├── layout/ │ │ │ │ │ ├── copyright.html │ │ │ │ │ ├── footer.html │ │ │ │ │ ├── header.html │ │ │ │ │ └── left.html │ │ │ │ └── layout.html │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── neo/ │ │ │ └── TLayoutApplicationTests.java │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── xncoding/ │ │ │ └── pos/ │ │ │ ├── Application.java │ │ │ └── controller/ │ │ │ └── IndexController.java │ │ └── resources/ │ │ ├── application.yml │ │ ├── banner.txt │ │ ├── public/ │ │ │ └── static/ │ │ │ └── fonts/ │ │ │ └── FontAwesome.otf │ │ └── templates/ │ │ └── index.html │ ├── springboot_transaction/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ ├── run.sh │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── xncoding/ │ │ │ └── trans/ │ │ │ ├── Application.java │ │ │ ├── config/ │ │ │ │ ├── DruidProperties.java │ │ │ │ └── MybatisPlusConfig.java │ │ │ ├── controller/ │ │ │ │ └── UserController.java │ │ │ ├── dao/ │ │ │ │ ├── entity/ │ │ │ │ │ └── User.java │ │ │ │ └── repository/ │ │ │ │ └── UserMapper.java │ │ │ ├── exception/ │ │ │ │ └── MyException.java │ │ │ └── service/ │ │ │ └── UserService.java │ │ └── resources/ │ │ ├── application.yml │ │ └── banner.txt │ ├── springboot_upload/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── 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/ │ │ └── jun/ │ │ └── plugin/ │ │ └── upload/ │ │ └── SpringBootDemoUploadApplicationTests.java │ ├── springboot_validation/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── springbootvalidation/ │ │ │ ├── SpringBootValidationApplication.java │ │ │ ├── config/ │ │ │ │ └── ExceptionHandlerConfig.java │ │ │ ├── controller/ │ │ │ │ └── Controller.java │ │ │ ├── pojo/ │ │ │ │ └── Result.java │ │ │ └── vo/ │ │ │ ├── UserVoByAdd.java │ │ │ └── UserVoByEdit.java │ │ └── resources/ │ │ └── application.properties │ ├── springboot_war/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── springboot/ │ │ │ │ └── war/ │ │ │ │ └── SpringBootDemoWarApplication.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── springboot/ │ │ └── war/ │ │ └── SpringBootDemoWarApplicationTests.java │ ├── springboot_webflux/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ ├── WebFluxApplication.java │ │ │ │ ├── asyncservlet/ │ │ │ │ │ ├── AsyncServlet.java │ │ │ │ │ └── SyncServlet.java │ │ │ │ ├── user/ │ │ │ │ │ └── crud/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── UserController.java │ │ │ │ │ ├── dao/ │ │ │ │ │ │ └── UserDao.java │ │ │ │ │ ├── domain/ │ │ │ │ │ │ └── User.java │ │ │ │ │ └── service/ │ │ │ │ │ └── UserService.java │ │ │ │ ├── web/ │ │ │ │ │ └── HelloController.java │ │ │ │ └── webflux/ │ │ │ │ ├── FluxTest.java │ │ │ │ ├── MonoFluxTest.java │ │ │ │ ├── MonoTest.java │ │ │ │ ├── TestController.java │ │ │ │ ├── ViewController.java │ │ │ │ └── WebfluxApplication.java │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ ├── application.yml │ │ │ └── templates/ │ │ │ └── flux.html │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ ├── HelloTests.java │ │ └── WebFluxApplicationTests.java │ ├── springboot_webservice/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ ├── WebServiceApplication.java │ │ │ │ ├── config/ │ │ │ │ │ └── CxfConfig.java │ │ │ │ └── webservice/ │ │ │ │ ├── CommonService.java │ │ │ │ ├── CommonServiceImpl.java │ │ │ │ └── User.java │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── CxfClient.java │ ├── springboot_websocket/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ ├── run.sh │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── xncoding/ │ │ │ │ └── jwt/ │ │ │ │ ├── Application.java │ │ │ │ ├── commons/ │ │ │ │ │ └── JacksonUtil.java │ │ │ │ ├── config/ │ │ │ │ │ ├── WebSocketConfig.java │ │ │ │ │ └── WebSocketStompConfig.java │ │ │ │ ├── controller/ │ │ │ │ │ └── WsController.java │ │ │ │ ├── handler/ │ │ │ │ │ └── SocketHandler.java │ │ │ │ ├── interceptor/ │ │ │ │ │ └── WebSocketInterceptor.java │ │ │ │ └── model/ │ │ │ │ ├── RequestMessage.java │ │ │ │ ├── ResponseMessage.java │ │ │ │ ├── WsParam.java │ │ │ │ └── WsResponse.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── xncoding/ │ │ └── jwt/ │ │ └── socket/ │ │ └── client/ │ │ └── html/ │ │ ├── bootstrap.css │ │ ├── index.html │ │ ├── index1.html │ │ └── js/ │ │ ├── jquery-3.1.1.js │ │ └── stomp.js │ ├── springboot_websocket_socketio/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── jun/ │ │ │ │ └── plugin/ │ │ │ │ └── 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/ │ │ │ └── socket.io/ │ │ │ └── socket.io.js │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── jun/ │ │ └── plugin/ │ │ └── websocket/ │ │ └── socketio/ │ │ └── SpringBootDemoWebsocketSocketioApplicationTests.java │ └── springboot_zookeeper/ │ ├── README.md │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── zookeeper/ │ │ │ ├── SpringBootDemoZookeeperApplication.java │ │ │ ├── annotation/ │ │ │ │ ├── LockKeyParam.java │ │ │ │ └── ZooLock.java │ │ │ ├── aspectj/ │ │ │ │ └── ZooLockAspect.java │ │ │ └── config/ │ │ │ ├── ZkConfig.java │ │ │ └── props/ │ │ │ └── ZkProps.java │ │ └── resources/ │ │ └── application.yml │ └── test/ │ └── java/ │ └── com/ │ └── jun/ │ └── plugin/ │ └── zookeeper/ │ └── SpringBootDemoZookeeperApplicationTests.java ├── jun_springboot_starter/ │ ├── .gitignore │ ├── VERSION_CONSTANTS.md │ ├── doc/ │ │ ├── GnuPG.md │ │ ├── jun-db-activerecord-1.0.20.pom.xml │ │ └── 发布自己的jar包到maven中央仓库.md │ ├── jun-activerecord/ │ │ ├── pom.xml │ │ ├── pom2.xml │ │ ├── readme.md │ │ ├── readme2.md │ │ ├── readme3.md │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ ├── io/ │ │ │ │ └── github/ │ │ │ │ └── wujun728/ │ │ │ │ ├── activerecord/ │ │ │ │ │ ├── annotation/ │ │ │ │ │ │ └── TableName.java │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── ActiveRecordConfiguration.java │ │ │ │ │ │ ├── ActiveRecordPluginCustomizer.java │ │ │ │ │ │ ├── JunActiveRecordProperties.java │ │ │ │ │ │ └── JunDruidProperties.java │ │ │ │ │ ├── datasource/ │ │ │ │ │ │ └── SpringDataSourceProvider.java │ │ │ │ │ ├── dialect/ │ │ │ │ │ │ ├── DialectType.java │ │ │ │ │ │ └── DruidSqlDialect.java │ │ │ │ │ ├── generator/ │ │ │ │ │ │ ├── CodeGenerator.java │ │ │ │ │ │ ├── DataDictionaryGenerator.java │ │ │ │ │ │ └── model_template.jf │ │ │ │ │ ├── jackson/ │ │ │ │ │ │ └── ActiveRecordModule.java │ │ │ │ │ ├── logger/ │ │ │ │ │ │ └── SqlLogFilter.java │ │ │ │ │ ├── tx/ │ │ │ │ │ │ ├── ActiveRecordTxAspect.java │ │ │ │ │ │ └── Tx.java │ │ │ │ │ └── utils/ │ │ │ │ │ ├── Base64Util.java │ │ │ │ │ ├── CharPool.java │ │ │ │ │ ├── FieldStrategy.java │ │ │ │ │ ├── ModelUtil.java │ │ │ │ │ ├── StringPool.java │ │ │ │ │ └── ThreadLocalUtil.java │ │ │ │ └── db/ │ │ │ │ └── utils/ │ │ │ │ ├── DataSourcePool.java │ │ │ │ ├── FieldUtils.java │ │ │ │ ├── RecordUtil.java │ │ │ │ └── TreeBuildUtil.java │ │ │ └── javax/ │ │ │ └── persistence/ │ │ │ ├── Column.java │ │ │ ├── Entity.java │ │ │ ├── Id.java │ │ │ ├── Index.java │ │ │ ├── Table.java │ │ │ ├── Transient.java │ │ │ └── UniqueConstraint.java │ │ └── test/ │ │ └── java/ │ │ ├── com/ │ │ │ └── jfinal/ │ │ │ ├── plugin/ │ │ │ │ └── activerecord/ │ │ │ │ ├── ActiveRecordDemo.java │ │ │ │ ├── _Generator.java │ │ │ │ ├── model/ │ │ │ │ │ ├── Blog.java │ │ │ │ │ ├── _MappingKit.java │ │ │ │ │ └── base/ │ │ │ │ │ └── BaseBlog.java │ │ │ │ └── test.sql │ │ │ └── template/ │ │ │ ├── EngineTest.java │ │ │ └── SpringBootConfig.java │ │ └── io/ │ │ └── github/ │ │ └── wujun728/ │ │ ├── activerecord/ │ │ │ └── _Generator.java │ │ └── db/ │ │ ├── DbTest.java │ │ └── test/ │ │ ├── DruidPageSqlTest.java │ │ ├── TestDb.java │ │ └── User.java │ ├── jun-common-base/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── io/ │ │ │ └── github/ │ │ │ └── wujun728/ │ │ │ └── common/ │ │ │ ├── BodyCacheHttpServletRequestWrapper.java │ │ │ ├── base/ │ │ │ │ ├── AjaxResult.java │ │ │ │ ├── BaseEntity.java │ │ │ │ ├── BaseFlowEntity.java │ │ │ │ └── Result.java │ │ │ ├── constant/ │ │ │ │ ├── Constants.java │ │ │ │ ├── GenConstants.java │ │ │ │ └── HttpStatus.java │ │ │ ├── exception/ │ │ │ │ ├── BusinessException.java │ │ │ │ └── code/ │ │ │ │ ├── IRespCodeMsg.java │ │ │ │ └── RespCodeMsg.java │ │ │ ├── model/ │ │ │ │ ├── ApiConfig.java │ │ │ │ ├── ApiDataSource.java │ │ │ │ └── ApiSql.java │ │ │ ├── run/ │ │ │ │ └── DbCommandLineRunner.java │ │ │ └── utils/ │ │ │ └── IdGenerator15.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── spring.factories.bk │ ├── jun-db-activerecord/ │ │ ├── jun-db-activerecord.md │ │ ├── pom.xml │ │ ├── pom2.xml │ │ ├── readme.md │ │ ├── readme2.md │ │ ├── readme3.md │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ ├── io/ │ │ │ │ │ └── github/ │ │ │ │ │ └── wujun728/ │ │ │ │ │ └── db/ │ │ │ │ │ ├── record/ │ │ │ │ │ │ ├── Db.java │ │ │ │ │ │ ├── DbException.java │ │ │ │ │ │ ├── DbPool.java │ │ │ │ │ │ ├── DbPro.java │ │ │ │ │ │ ├── DbTemplate.java │ │ │ │ │ │ ├── IAtom.java │ │ │ │ │ │ ├── Model.java │ │ │ │ │ │ ├── Page.java │ │ │ │ │ │ ├── Record.java │ │ │ │ │ │ ├── RecordBuilder.java │ │ │ │ │ │ ├── SqlUtil.java │ │ │ │ │ │ ├── annotation/ │ │ │ │ │ │ │ ├── Column.java │ │ │ │ │ │ │ ├── Entity.java │ │ │ │ │ │ │ └── PK.java │ │ │ │ │ │ ├── dialect/ │ │ │ │ │ │ │ ├── AnsiSqlDialect.java │ │ │ │ │ │ │ ├── Dialect.java │ │ │ │ │ │ │ ├── MysqlDialect.java │ │ │ │ │ │ │ ├── OracleDialect.java │ │ │ │ │ │ │ ├── PostgreSqlDialect.java │ │ │ │ │ │ │ └── Sqlite3Dialect.java │ │ │ │ │ │ ├── kit/ │ │ │ │ │ │ │ ├── StrKit.java │ │ │ │ │ │ │ ├── SyncWriteMap.java │ │ │ │ │ │ │ └── TimeKit.java │ │ │ │ │ │ └── mapper/ │ │ │ │ │ │ ├── BaseRowMapper.java │ │ │ │ │ │ ├── BatchSql.java │ │ │ │ │ │ └── RowType.java │ │ │ │ │ └── utils/ │ │ │ │ │ ├── CodeGenerator.java │ │ │ │ │ ├── DataSourcePool.java │ │ │ │ │ ├── FieldUtils.java │ │ │ │ │ ├── MapKit.java │ │ │ │ │ ├── RecordUtil.java │ │ │ │ │ ├── SqlContext.java │ │ │ │ │ ├── SqlUtils.java │ │ │ │ │ └── TreeBuildUtil.java │ │ │ │ └── javax/ │ │ │ │ └── persistence/ │ │ │ │ ├── Column.java │ │ │ │ ├── Entity.java │ │ │ │ ├── Id.java │ │ │ │ ├── Index.java │ │ │ │ ├── Table.java │ │ │ │ ├── Transient.java │ │ │ │ └── UniqueConstraint.java │ │ │ └── resources/ │ │ │ └── code-templates/ │ │ │ ├── bean_controller.enjoy │ │ │ ├── bean_entity_jpa.enjoy │ │ │ ├── bean_entity_mybatis.enjoy │ │ │ ├── bean_service.enjoy │ │ │ ├── model_class.enjoy │ │ │ ├── model_controller.enjoy │ │ │ ├── model_service.enjoy │ │ │ ├── record_controller.enjoy │ │ │ ├── record_service.enjoy │ │ │ ├── sql_controller.enjoy │ │ │ └── sql_service.enjoy │ │ └── test/ │ │ └── java/ │ │ └── io/ │ │ └── github/ │ │ └── wujun728/ │ │ ├── activerecord/ │ │ │ └── _Generator.java │ │ └── db/ │ │ ├── CodeGeneratorTest.java │ │ ├── ConcurrencyAndEdgeCaseTest.java │ │ ├── DbActiveRecordTest.java │ │ ├── DbTest.java │ │ ├── ModelTest.java │ │ ├── RecordUtilTest.java │ │ └── test/ │ │ ├── DruidPageSqlTest.java │ │ ├── TestDb.java │ │ └── User.java │ ├── jun-db-activerecord2/ │ │ ├── pom.xml │ │ ├── pom2.xml │ │ ├── readme.md │ │ ├── readme2.md │ │ ├── readme3.md │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ ├── io/ │ │ │ │ └── github/ │ │ │ │ └── wujun728/ │ │ │ │ └── db/ │ │ │ │ ├── record/ │ │ │ │ │ ├── ActiveRecordException.java │ │ │ │ │ ├── Config.java │ │ │ │ │ ├── Db.java │ │ │ │ │ ├── DbKit.java │ │ │ │ │ ├── DbPro.java │ │ │ │ │ ├── FieldUtils.java │ │ │ │ │ ├── IAtom.java │ │ │ │ │ ├── ICallback.java │ │ │ │ │ ├── IContainerFactory.java │ │ │ │ │ ├── IDbProFactory.java │ │ │ │ │ ├── IRow.java │ │ │ │ │ ├── Page.java │ │ │ │ │ ├── Record.java │ │ │ │ │ ├── RecordBuilder.java │ │ │ │ │ ├── RecordUtil.java │ │ │ │ │ ├── SqlReporter.java │ │ │ │ │ ├── builder/ │ │ │ │ │ │ └── TimestampProcessedRecordBuilder.java │ │ │ │ │ ├── dialect/ │ │ │ │ │ │ ├── AnsiSqlDialect.java │ │ │ │ │ │ ├── Dialect.java │ │ │ │ │ │ ├── MysqlDialect.java │ │ │ │ │ │ ├── OracleDialect.java │ │ │ │ │ │ ├── PostgreSqlDialect.java │ │ │ │ │ │ └── Sqlite3Dialect.java │ │ │ │ │ └── kit/ │ │ │ │ │ ├── HashKit.java │ │ │ │ │ ├── LogKit.java │ │ │ │ │ ├── StrKit.java │ │ │ │ │ ├── SyncWriteMap.java │ │ │ │ │ ├── TimeKit.java │ │ │ │ │ └── TypeKit.java │ │ │ │ └── utils/ │ │ │ │ ├── ActiveRecordUtil.java │ │ │ │ ├── DataSourcePool.java │ │ │ │ ├── FieldUtils.java │ │ │ │ ├── RecordUtil.java │ │ │ │ ├── SqlContext.java │ │ │ │ ├── SqlUtils.java │ │ │ │ └── TreeBuildUtil.java │ │ │ └── javax/ │ │ │ └── persistence/ │ │ │ ├── Column.java │ │ │ ├── Entity.java │ │ │ ├── Id.java │ │ │ ├── Index.java │ │ │ ├── Table.java │ │ │ ├── Transient.java │ │ │ └── UniqueConstraint.java │ │ └── test/ │ │ └── java/ │ │ └── io/ │ │ └── github/ │ │ └── wujun728/ │ │ ├── activerecord/ │ │ │ └── _Generator.java │ │ └── db/ │ │ ├── DbTest.java │ │ ├── RecordUtilTest.java │ │ └── test/ │ │ ├── DruidPageSqlTest.java │ │ ├── TestDb.java │ │ └── User.java │ ├── jun-db-spring-boot-starter/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── io/ │ │ │ └── github/ │ │ │ └── wujun728/ │ │ │ ├── common/ │ │ │ │ ├── JdbcTemplateUtils.java │ │ │ │ ├── datascope/ │ │ │ │ │ └── mp/ │ │ │ │ │ ├── interceptor/ │ │ │ │ │ │ ├── DataScopeInnerInterceptor.java │ │ │ │ │ │ └── EnableQuerySqlLogInnerInterceptor.java │ │ │ │ │ └── sql/ │ │ │ │ │ └── handler/ │ │ │ │ │ ├── CreatorDataScopeSqlHandler.java │ │ │ │ │ ├── DefaultSqlHandler.java │ │ │ │ │ └── SqlHandler.java │ │ │ │ └── properties/ │ │ │ │ ├── DataScopeProperties.java │ │ │ │ ├── ProjectProperties.java │ │ │ │ └── TenantProperties.java │ │ │ └── db/ │ │ │ ├── config/ │ │ │ │ ├── DateMetaObjectHandler.java │ │ │ │ ├── MybatisPlusAutoConfigure.java │ │ │ │ └── TenantAutoConfigure.java │ │ │ ├── interceptor/ │ │ │ │ └── CustomTenantInterceptor.java │ │ │ ├── mapper/ │ │ │ │ └── SuperMapper.java │ │ │ └── properties/ │ │ │ └── MybatisPlusAutoFillProperties.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── spring.factories.bk │ ├── jun-encrypt-body-spring-boot-starter/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── README_EN.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── io/ │ │ └── github/ │ │ └── wujun728/ │ │ └── encryptbody/ │ │ ├── advice/ │ │ │ ├── DecryptRequestBodyAdvice.java │ │ │ └── EncryptResponseBodyAdvice.java │ │ ├── annotation/ │ │ │ ├── EnableEncryptBody.java │ │ │ ├── decrypt/ │ │ │ │ ├── AESDecryptBody.java │ │ │ │ ├── DESDecryptBody.java │ │ │ │ ├── DecryptBody.java │ │ │ │ └── RSADecryptBody.java │ │ │ └── encrypt/ │ │ │ ├── AESEncryptBody.java │ │ │ ├── DESEncryptBody.java │ │ │ ├── EncryptBody.java │ │ │ ├── MD5EncryptBody.java │ │ │ ├── RSAEncryptBody.java │ │ │ └── SHAEncryptBody.java │ │ ├── bean/ │ │ │ ├── DecryptAnnotationInfoBean.java │ │ │ ├── DecryptHttpInputMessage.java │ │ │ ├── EncryptAnnotationInfoBean.java │ │ │ └── ISecurityInfo.java │ │ ├── config/ │ │ │ ├── EncryptBodyConfig.java │ │ │ └── HttpConverterConfig.java │ │ ├── enums/ │ │ │ ├── DecryptBodyMethod.java │ │ │ ├── EncryptBodyMethod.java │ │ │ ├── RSAKeyType.java │ │ │ └── SHAEncryptType.java │ │ ├── exception/ │ │ │ ├── DecryptBodyFailException.java │ │ │ ├── DecryptMethodNotFoundException.java │ │ │ ├── EncryptBodyFailException.java │ │ │ ├── EncryptMethodNotFoundException.java │ │ │ ├── IllegalSecurityTypeException.java │ │ │ └── KeyNotConfiguredException.java │ │ └── util/ │ │ ├── CommonUtils.java │ │ └── ShaEncryptUtil.java │ ├── jun-groovy-api/ │ │ ├── README.md │ │ ├── pom.xml │ │ ├── readme2.md │ │ ├── readme3.md │ │ ├── readme4.md │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── io/ │ │ │ │ └── github/ │ │ │ │ └── wujun728/ │ │ │ │ ├── generator/ │ │ │ │ │ ├── Application.java │ │ │ │ │ ├── CodeUtil.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── CodeGeneratorController2.java │ │ │ │ │ │ └── GeneratorController.java │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── ClassInfo.java │ │ │ │ │ │ ├── FieldInfo.java │ │ │ │ │ │ ├── NonCaseString.java │ │ │ │ │ │ ├── ParamInfo.java │ │ │ │ │ │ ├── ReturnT.java │ │ │ │ │ │ └── TemplateConfig.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── GeneratorService.java │ │ │ │ │ │ └── GeneratorServiceImpl.java │ │ │ │ │ ├── util/ │ │ │ │ │ │ ├── CodeGenerateException.java │ │ │ │ │ │ ├── FreemarkerUtil.java │ │ │ │ │ │ ├── MapUtil.java │ │ │ │ │ │ ├── StringUtils.java │ │ │ │ │ │ ├── TableParseUtil.java │ │ │ │ │ │ ├── ValueUtil.java │ │ │ │ │ │ └── mysqlJavaTypeUtil.java │ │ │ │ │ └── utils/ │ │ │ │ │ ├── CodeGeneratorMain.java │ │ │ │ │ ├── FreemarkerTool.java │ │ │ │ │ └── GeneratorUtil.java │ │ │ │ ├── groovy/ │ │ │ │ │ ├── ApiAutoConfig.java │ │ │ │ │ ├── GroovyPool.java │ │ │ │ │ ├── cache/ │ │ │ │ │ │ ├── ApiConfigCache.java │ │ │ │ │ │ └── IApiConfigCache.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── GroovyScriptController.java │ │ │ │ │ ├── groovy/ │ │ │ │ │ │ ├── DbCommandLineRunner.java │ │ │ │ │ │ └── GroovyDynamicLoader.java │ │ │ │ │ ├── interfaces/ │ │ │ │ │ │ └── IRun.java │ │ │ │ │ ├── mapping/ │ │ │ │ │ │ └── http/ │ │ │ │ │ │ ├── IMappingExecutor.java │ │ │ │ │ │ ├── RequestMappingExecutor.java │ │ │ │ │ │ └── RequestMappingService.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ └── GroovyApiService.java │ │ │ │ │ ├── test/ │ │ │ │ │ │ ├── TestGroovy.groovy │ │ │ │ │ │ ├── TestGroovyScript.java │ │ │ │ │ │ ├── TestGroovyScriptController.java │ │ │ │ │ │ └── TestScript.groovy │ │ │ │ │ └── util/ │ │ │ │ │ ├── BeanRegisterUtil.java │ │ │ │ │ ├── MappingRegisterUtil.java │ │ │ │ │ └── SpringUtils.java │ │ │ │ ├── rest/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── RestApiController.java │ │ │ │ │ │ └── RestSqlController.java │ │ │ │ │ ├── filter/ │ │ │ │ │ │ ├── RequestLogAspect.java │ │ │ │ │ │ ├── RequestLogUtils.java │ │ │ │ │ │ └── ResourceFilter.java │ │ │ │ │ ├── handler/ │ │ │ │ │ │ └── RestEntityExecHandler.java │ │ │ │ │ ├── plugin/ │ │ │ │ │ │ ├── BasePlugin.java │ │ │ │ │ │ ├── CachePlugin.java │ │ │ │ │ │ ├── LoadPluginOnSpringReady.java │ │ │ │ │ │ ├── PluginManager.java │ │ │ │ │ │ ├── TestPlugin.java │ │ │ │ │ │ ├── TransformPlugin.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── DemoCachePlugin.java │ │ │ │ │ │ └── DemoTransformPlugin.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── RestApiService.java │ │ │ │ │ │ └── RestSqlService.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── DbUtil.java │ │ │ │ │ ├── HttpParamUtil.java │ │ │ │ │ ├── HttpRequestUtil.java │ │ │ │ │ ├── JUNUtil.java │ │ │ │ │ ├── JdbcUtil.java │ │ │ │ │ └── RestUtil.java │ │ │ │ └── sql/ │ │ │ │ ├── ApiEngine.java │ │ │ │ ├── ApiEngineConfiguration.java │ │ │ │ ├── entity/ │ │ │ │ │ ├── ApiConfig.java │ │ │ │ │ ├── ApiDataSource.java │ │ │ │ │ ├── ApiSql.java │ │ │ │ │ ├── DBConfig.java │ │ │ │ │ ├── Page.java │ │ │ │ │ ├── Result.java │ │ │ │ │ └── SqlWithParam.java │ │ │ │ └── utils/ │ │ │ │ ├── JdbcUtil.java │ │ │ │ ├── PoolManager.java │ │ │ │ └── XmlParser.java │ │ │ └── resources/ │ │ │ ├── META-INF/ │ │ │ │ ├── META-INF/ │ │ │ │ │ ├── spring.factories.bk2 │ │ │ │ │ └── spring.factories.bk3 │ │ │ │ ├── spring/ │ │ │ │ │ └── org.springframework.boot.autoconfigure.EnableAutoConfiguration.imports │ │ │ │ └── spring.factories.bk │ │ │ ├── mysql_key_word.txt │ │ │ ├── spring.factories.bk │ │ │ └── templates/ │ │ │ ├── beetlsql/ │ │ │ │ ├── ${classInfo.className}.java.ftl │ │ │ │ ├── ${classInfo.className}.md.ftl │ │ │ │ └── ${classInfo.className}Controller.java.ftl │ │ │ ├── bi/ │ │ │ │ └── qliksense.ftl │ │ │ ├── cloud/ │ │ │ │ ├── bigquery.ftl │ │ │ │ └── dataflowjjs.ftl │ │ │ ├── common-mapper/ │ │ │ │ ├── tkentity.ftl │ │ │ │ └── tkmapper.ftl │ │ │ ├── controller.ftl │ │ │ ├── dao.ftl │ │ │ ├── db-record/ │ │ │ │ ├── ${classInfo.className}.java.ftl │ │ │ │ └── ${classInfo.className}Controller.java.ftl │ │ │ ├── jdbc-template-v1/ │ │ │ │ ├── jtdao.ftl │ │ │ │ └── jtdaoimpl.ftl │ │ │ ├── jdbctemplate/ │ │ │ │ ├── ${classInfo.className}DaoImpl.java.ftl │ │ │ │ └── I${classInfo.className}DAO.java.ftl │ │ │ ├── jpa/ │ │ │ │ ├── ${classInfo.className}.java.ftl │ │ │ │ ├── ${classInfo.className}Controller.java.ftl │ │ │ │ └── ${classInfo.className}Repository.java.ftl │ │ │ ├── jpa-starp/ │ │ │ │ ├── starp-entity.ftl │ │ │ │ ├── starp-jpa-controller.ftl │ │ │ │ └── starp-repository.ftl │ │ │ ├── jpa-v1/ │ │ │ │ ├── entity.ftl │ │ │ │ ├── jpacontroller.ftl │ │ │ │ └── repository.ftl │ │ │ ├── model.ftl │ │ │ ├── mybatis/ │ │ │ │ ├── ${classInfo.className}.java.ftl │ │ │ │ ├── ${classInfo.className}.xml.ftl │ │ │ │ ├── ${classInfo.className}Controller.java.ftl │ │ │ │ ├── ${classInfo.className}Mapper.java.ftl │ │ │ │ ├── ${classInfo.className}Mapper2.java.ftl │ │ │ │ ├── ${classInfo.className}Service.java.ftl │ │ │ │ └── ${classInfo.className}ServiceImpl.java.ftl │ │ │ ├── mybatis-plus/ │ │ │ │ ├── ${classInfo.className}.java.ftl │ │ │ │ ├── ${classInfo.className}Controller.java.ftl │ │ │ │ ├── ${classInfo.className}Mapper.java.ftl │ │ │ │ └── ${classInfo.className}Service.java.ftl │ │ │ ├── mybatis-plus-single/ │ │ │ │ ├── controller.ftl │ │ │ │ ├── dto.ftl │ │ │ │ ├── entity.ftl │ │ │ │ ├── mapper.ftl │ │ │ │ ├── service.ftl │ │ │ │ ├── service.impl.ftl │ │ │ │ └── vo.ftl │ │ │ ├── mybatis-plus-single-v3/ │ │ │ │ ├── ${classInfo.className}Controller.java.ftl │ │ │ │ ├── ${classInfo.className}Dto.java.ftl │ │ │ │ ├── ${classInfo.className}Entity.java.ftl │ │ │ │ ├── ${classInfo.className}Mapper.java.ftl │ │ │ │ ├── ${classInfo.className}Service.java.ftl │ │ │ │ ├── ${classInfo.className}ServiceImpl.java.ftl │ │ │ │ ├── ${classInfo.className}Vo.java.ftl │ │ │ │ ├── edit.html.ftl │ │ │ │ ├── list.html.ftl │ │ │ │ ├── list.html.v1.ftl │ │ │ │ ├── list.html.vm.ftl │ │ │ │ └── menu.sql.ftl │ │ │ ├── mybatis-plus-v1/ │ │ │ │ ├── pluscontroller.ftl │ │ │ │ ├── plusentity.ftl │ │ │ │ ├── plusmapper.ftl │ │ │ │ └── plusservice.ftl │ │ │ ├── mybatis-plus-v2/ │ │ │ │ ├── plus-controller.ftl │ │ │ │ ├── plus-dto.ftl │ │ │ │ ├── plus-entity.ftl │ │ │ │ ├── plus-mapper.ftl │ │ │ │ ├── plus-service.ftl │ │ │ │ ├── plus-serviceimpl.ftl │ │ │ │ ├── plus-vo.ftl │ │ │ │ └── pluscontroller.ftl │ │ │ ├── mybatis-v1/ │ │ │ │ ├── controller.ftl │ │ │ │ ├── mapper.ftl │ │ │ │ ├── mapper2.ftl │ │ │ │ ├── model.ftl │ │ │ │ ├── mybatis.ftl │ │ │ │ ├── service.ftl │ │ │ │ └── service_impl.ftl │ │ │ ├── mybatis.ftl │ │ │ ├── renren-fast/ │ │ │ │ ├── menu-sql.ftl │ │ │ │ ├── rr-controller.ftl │ │ │ │ ├── rr-dao.ftl │ │ │ │ ├── rr-daoxml.ftl │ │ │ │ ├── rr-entity.ftl │ │ │ │ ├── rr-service.ftl │ │ │ │ ├── vue-edit.ftl │ │ │ │ └── vue-list.ftl │ │ │ ├── service.ftl │ │ │ ├── service_impl.ftl │ │ │ ├── tk-mapper/ │ │ │ │ ├── tkentity.ftl │ │ │ │ └── tkmapper.ftl │ │ │ ├── tk-mybatis/ │ │ │ │ ├── tk-controller.ftl │ │ │ │ ├── tk-entity.ftl │ │ │ │ └── tk-mapper.ftl │ │ │ ├── ui/ │ │ │ │ ├── ${classInfo.className}bootstrap.html.ftl │ │ │ │ ├── ${classInfo.className}element.vuel.ftl │ │ │ │ ├── ${classInfo.className}layui-edit.html.ftl │ │ │ │ ├── ${classInfo.className}layui-edit2.html.ftl │ │ │ │ ├── ${classInfo.className}layui-list.html.ftl │ │ │ │ └── ${classInfo.className}swagger.json.ftl │ │ │ └── util/ │ │ │ ├── ${classInfo.className}beanutil.java.ftl │ │ │ ├── ${classInfo.className}json.json.ftl │ │ │ ├── ${classInfo.className}sql.sql.ftl │ │ │ ├── ${classInfo.className}swagger.yml.ftl │ │ │ └── ${classInfo.className}xml.xml.ftl │ │ └── test/ │ │ ├── datas/ │ │ │ └── test_data_system_in.txt │ │ └── java/ │ │ └── io/ │ │ └── github/ │ │ └── wujun728/ │ │ ├── code/ │ │ │ └── CodeUtilTest.java │ │ ├── sql/ │ │ │ ├── TestSqlUser.java │ │ │ └── User.java │ │ └── stater/ │ │ ├── groovy/ │ │ │ ├── GroovyApplicationTests.java │ │ │ └── GroovyScriptControllerTest.java │ │ └── service/ │ │ ├── CompileTest.java │ │ └── ExecuteStringSourceServiceTest.java │ ├── jun-groovy-api-spring-boot-starter/ │ │ ├── README.md │ │ ├── pom.xml │ │ ├── readme2.md │ │ ├── readme3.md │ │ ├── readme4.md │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── io/ │ │ │ │ └── github/ │ │ │ │ └── wujun728/ │ │ │ │ ├── generator/ │ │ │ │ │ ├── CodeUtil.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── CodeGeneratorController.java │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── ClassInfo.java │ │ │ │ │ │ ├── FieldInfo.java │ │ │ │ │ │ ├── NonCaseString.java │ │ │ │ │ │ └── ParamInfo.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── GeneratorService.java │ │ │ │ │ │ └── GeneratorServiceImpl.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── CodeGenerateException.java │ │ │ │ │ ├── FreemarkerUtil.java │ │ │ │ │ ├── MapUtil.java │ │ │ │ │ ├── StringUtils.java │ │ │ │ │ ├── TableParseUtil.java │ │ │ │ │ └── mysqlJavaTypeUtil.java │ │ │ │ ├── groovy/ │ │ │ │ │ ├── ApiAutoConfig.java │ │ │ │ │ ├── cache/ │ │ │ │ │ │ └── ApiConfigCache.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── GroovyScriptController.java │ │ │ │ │ ├── groovy/ │ │ │ │ │ │ └── GroovyDynamicLoader.java │ │ │ │ │ ├── interfaces/ │ │ │ │ │ │ └── IRun.java │ │ │ │ │ ├── mapping/ │ │ │ │ │ │ └── http/ │ │ │ │ │ │ ├── RequestMappingExecutor.java │ │ │ │ │ │ └── RequestMappingService.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ └── GroovyApiService.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── BeanRegisterUtil.java │ │ │ │ │ └── MappingRegisterUtil.java │ │ │ │ ├── rest/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── RestApiController.java │ │ │ │ │ │ └── RestSqlController.java │ │ │ │ │ ├── filter/ │ │ │ │ │ │ ├── RequestLogAspect.java │ │ │ │ │ │ ├── RequestLogUtils.java │ │ │ │ │ │ └── ResourceFilter.java │ │ │ │ │ ├── handler/ │ │ │ │ │ │ └── RestEntityExecHandler.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── RestApiService.java │ │ │ │ │ │ └── RestSqlService.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── DbUtil.java │ │ │ │ │ ├── HttpRequestUtil.java │ │ │ │ │ ├── RestUtil.java │ │ │ │ │ └── TreeBuildUtil.java │ │ │ │ └── sql/ │ │ │ │ ├── ApiEngine.java │ │ │ │ ├── ApiEngineConfiguration.java │ │ │ │ ├── entity/ │ │ │ │ │ ├── ApiConfig.java │ │ │ │ │ ├── ApiDataSource.java │ │ │ │ │ ├── ApiSql.java │ │ │ │ │ ├── DBConfig.java │ │ │ │ │ ├── Page.java │ │ │ │ │ ├── Result.java │ │ │ │ │ └── SqlWithParam.java │ │ │ │ └── utils/ │ │ │ │ ├── JdbcUtil.java │ │ │ │ ├── PoolManager.java │ │ │ │ └── XmlParser.java │ │ │ └── resources/ │ │ │ ├── META-INF/ │ │ │ │ ├── META-INF/ │ │ │ │ │ ├── spring.factories.bk2 │ │ │ │ │ └── spring.factories.bk3 │ │ │ │ ├── spring/ │ │ │ │ │ ├── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ │ │ │ │ └── org.springframework.boot.autoconfigure.EnableAutoConfiguration.imports │ │ │ │ ├── spring.factories │ │ │ │ └── spring.factories.bk │ │ │ ├── mysql_key_word.txt │ │ │ ├── spring.factories.bk │ │ │ └── templates/ │ │ │ ├── beetlsql/ │ │ │ │ ├── ${classInfo.className}.java.ftl │ │ │ │ ├── ${classInfo.className}.md.ftl │ │ │ │ └── ${classInfo.className}Controller.java.ftl │ │ │ ├── bi/ │ │ │ │ └── qliksense.ftl │ │ │ ├── cloud/ │ │ │ │ ├── bigquery.ftl │ │ │ │ └── dataflowjjs.ftl │ │ │ ├── common-mapper/ │ │ │ │ ├── tkentity.ftl │ │ │ │ └── tkmapper.ftl │ │ │ ├── controller.ftl │ │ │ ├── dao.ftl │ │ │ ├── db-record/ │ │ │ │ ├── ${classInfo.className}.java.ftl │ │ │ │ └── ${classInfo.className}Controller.java.ftl │ │ │ ├── jdbc-template-v1/ │ │ │ │ ├── jtdao.ftl │ │ │ │ └── jtdaoimpl.ftl │ │ │ ├── jdbctemplate/ │ │ │ │ ├── ${classInfo.className}DaoImpl.java.ftl │ │ │ │ └── I${classInfo.className}DAO.java.ftl │ │ │ ├── jpa/ │ │ │ │ ├── ${classInfo.className}.java.ftl │ │ │ │ ├── ${classInfo.className}Controller.java.ftl │ │ │ │ └── ${classInfo.className}Repository.java.ftl │ │ │ ├── jpa-starp/ │ │ │ │ ├── starp-entity.ftl │ │ │ │ ├── starp-jpa-controller.ftl │ │ │ │ └── starp-repository.ftl │ │ │ ├── jpa-v1/ │ │ │ │ ├── entity.ftl │ │ │ │ ├── jpacontroller.ftl │ │ │ │ └── repository.ftl │ │ │ ├── model.ftl │ │ │ ├── mybatis/ │ │ │ │ ├── ${classInfo.className}.java.ftl │ │ │ │ ├── ${classInfo.className}.xml.ftl │ │ │ │ ├── ${classInfo.className}Controller.java.ftl │ │ │ │ ├── ${classInfo.className}Mapper.java.ftl │ │ │ │ ├── ${classInfo.className}Mapper2.java.ftl │ │ │ │ ├── ${classInfo.className}Service.java.ftl │ │ │ │ └── ${classInfo.className}ServiceImpl.java.ftl │ │ │ ├── mybatis-plus/ │ │ │ │ ├── ${classInfo.className}.java.ftl │ │ │ │ ├── ${classInfo.className}Controller.java.ftl │ │ │ │ ├── ${classInfo.className}Mapper.java.ftl │ │ │ │ └── ${classInfo.className}Service.java.ftl │ │ │ ├── mybatis-plus-single/ │ │ │ │ ├── controller.ftl │ │ │ │ ├── dto.ftl │ │ │ │ ├── entity.ftl │ │ │ │ ├── mapper.ftl │ │ │ │ ├── service.ftl │ │ │ │ ├── service.impl.ftl │ │ │ │ └── vo.ftl │ │ │ ├── mybatis-plus-single-v3/ │ │ │ │ ├── ${classInfo.className}Controller.java.ftl │ │ │ │ ├── ${classInfo.className}Dto.java.ftl │ │ │ │ ├── ${classInfo.className}Entity.java.ftl │ │ │ │ ├── ${classInfo.className}Mapper.java.ftl │ │ │ │ ├── ${classInfo.className}Service.java.ftl │ │ │ │ ├── ${classInfo.className}ServiceImpl.java.ftl │ │ │ │ ├── ${classInfo.className}Vo.java.ftl │ │ │ │ ├── edit.html.ftl │ │ │ │ ├── list.html.ftl │ │ │ │ ├── list.html.v1.ftl │ │ │ │ ├── list.html.vm.ftl │ │ │ │ └── menu.sql.ftl │ │ │ ├── mybatis-plus-v1/ │ │ │ │ ├── pluscontroller.ftl │ │ │ │ ├── plusentity.ftl │ │ │ │ ├── plusmapper.ftl │ │ │ │ └── plusservice.ftl │ │ │ ├── mybatis-plus-v2/ │ │ │ │ ├── plus-controller.ftl │ │ │ │ ├── plus-dto.ftl │ │ │ │ ├── plus-entity.ftl │ │ │ │ ├── plus-mapper.ftl │ │ │ │ ├── plus-service.ftl │ │ │ │ ├── plus-serviceimpl.ftl │ │ │ │ ├── plus-vo.ftl │ │ │ │ └── pluscontroller.ftl │ │ │ ├── mybatis-v1/ │ │ │ │ ├── controller.ftl │ │ │ │ ├── mapper.ftl │ │ │ │ ├── mapper2.ftl │ │ │ │ ├── model.ftl │ │ │ │ ├── mybatis.ftl │ │ │ │ ├── service.ftl │ │ │ │ └── service_impl.ftl │ │ │ ├── mybatis.ftl │ │ │ ├── renren-fast/ │ │ │ │ ├── menu-sql.ftl │ │ │ │ ├── rr-controller.ftl │ │ │ │ ├── rr-dao.ftl │ │ │ │ ├── rr-daoxml.ftl │ │ │ │ ├── rr-entity.ftl │ │ │ │ ├── rr-service.ftl │ │ │ │ ├── vue-edit.ftl │ │ │ │ └── vue-list.ftl │ │ │ ├── service.ftl │ │ │ ├── service_impl.ftl │ │ │ ├── tk-mapper/ │ │ │ │ ├── tkentity.ftl │ │ │ │ └── tkmapper.ftl │ │ │ ├── tk-mybatis/ │ │ │ │ ├── tk-controller.ftl │ │ │ │ ├── tk-entity.ftl │ │ │ │ └── tk-mapper.ftl │ │ │ ├── ui/ │ │ │ │ ├── ${classInfo.className}bootstrap.html.ftl │ │ │ │ ├── ${classInfo.className}element.vuel.ftl │ │ │ │ ├── ${classInfo.className}layui-edit.html.ftl │ │ │ │ ├── ${classInfo.className}layui-edit2.html.ftl │ │ │ │ ├── ${classInfo.className}layui-list.html.ftl │ │ │ │ └── ${classInfo.className}swagger.json.ftl │ │ │ └── util/ │ │ │ ├── ${classInfo.className}beanutil.java.ftl │ │ │ ├── ${classInfo.className}json.json.ftl │ │ │ ├── ${classInfo.className}sql.sql.ftl │ │ │ ├── ${classInfo.className}swagger.yml.ftl │ │ │ └── ${classInfo.className}xml.xml.ftl │ │ └── test/ │ │ ├── datas/ │ │ │ └── test_data_system_in.txt │ │ └── java/ │ │ └── io/ │ │ └── github/ │ │ └── wujun728/ │ │ ├── code/ │ │ │ └── CodeUtilTest.java │ │ ├── generator/ │ │ │ └── CodeGeneratorTest.java │ │ ├── groovy/ │ │ │ └── GroovyScriptTest.java │ │ ├── rest/ │ │ │ └── RestApiTest.java │ │ ├── sql/ │ │ │ ├── SqlEngineTest.java │ │ │ ├── TestSqlUser.java │ │ │ └── User.java │ │ └── stater/ │ │ ├── groovy/ │ │ │ ├── GroovyApplicationTests.java │ │ │ └── GroovyScriptControllerTest.java │ │ └── service/ │ │ ├── CompileTest.java │ │ └── ExecuteStringSourceServiceTest.java │ ├── jun-job-spring-boot-starter/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── io/ │ │ │ └── github/ │ │ │ └── wujun728/ │ │ │ └── quartz/ │ │ │ ├── config/ │ │ │ │ └── QuartzAutoConfig.java │ │ │ ├── controller/ │ │ │ │ ├── SysJobController.java │ │ │ │ └── SysJobLogController.java │ │ │ ├── entity/ │ │ │ │ ├── SysJobEntity.java │ │ │ │ └── SysJobLogEntity.java │ │ │ ├── mapper/ │ │ │ │ ├── SysJobLogMapper.java │ │ │ │ └── SysJobMapper.java │ │ │ ├── service/ │ │ │ │ ├── SysJobLogService.java │ │ │ │ ├── SysJobService.java │ │ │ │ └── impl/ │ │ │ │ ├── SysJobLogServiceImpl.java │ │ │ │ └── SysJobServiceImpl.java │ │ │ ├── task/ │ │ │ │ └── TestTask11.java │ │ │ └── utils/ │ │ │ ├── ScheduleJob.java │ │ │ └── ScheduleUtils.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── spring.factories.bk │ ├── jun-log-spring-boot-starter/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ ├── io/ │ │ │ │ └── github/ │ │ │ │ └── wujun728/ │ │ │ │ └── aoplog/ │ │ │ │ ├── annotation/ │ │ │ │ │ └── LogAnnotation.java │ │ │ │ ├── config/ │ │ │ │ │ └── LogAutoConfig.java │ │ │ │ ├── controller/ │ │ │ │ │ └── SysLogController.java │ │ │ │ ├── entity/ │ │ │ │ │ └── SysLog.java │ │ │ │ ├── mapper/ │ │ │ │ │ └── SysLogMapper.java │ │ │ │ └── service/ │ │ │ │ ├── LogService.java │ │ │ │ └── impl/ │ │ │ │ └── LogServiceImpl.java │ │ │ └── org/ │ │ │ └── slf4j/ │ │ │ └── TtlMDCAdapter.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ ├── dubbo/ │ │ │ │ └── com.alibaba.dubbo.rpc.Filter │ │ │ └── spring.factories.bk │ │ └── logback-spring.xml │ ├── jun-minio-spring-boot-starter/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── io/ │ │ │ └── github/ │ │ │ └── wujun728/ │ │ │ └── minio/ │ │ │ ├── MinioAutoConfiguration.java │ │ │ ├── MinioAutoProperties.java │ │ │ └── server/ │ │ │ ├── MinioTemplate.java │ │ │ └── MinioTemplateImpl.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── spring.factories │ ├── jun-mybatis-sql-engine/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ ├── readme.md │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── io/ │ │ │ └── github/ │ │ │ └── wujun728/ │ │ │ └── sql/ │ │ │ ├── DataSourcePool.java │ │ │ ├── SqlEngine.java │ │ │ ├── SqlMeta.java │ │ │ ├── SqlXmlUtil.java │ │ │ ├── context/ │ │ │ │ └── Context.java │ │ │ ├── engine/ │ │ │ │ ├── Cache.java │ │ │ │ └── DynamicSqlEngine.java │ │ │ ├── node/ │ │ │ │ ├── ForeachSqlNode.java │ │ │ │ ├── IfSqlNode.java │ │ │ │ ├── MixedSqlNode.java │ │ │ │ ├── SetSqlNode.java │ │ │ │ ├── SqlNode.java │ │ │ │ ├── TextSqlNode.java │ │ │ │ ├── TrimSqlNode.java │ │ │ │ └── WhereSqlNode.java │ │ │ ├── tag/ │ │ │ │ ├── ForeachHandler.java │ │ │ │ ├── IfHandler.java │ │ │ │ ├── SetHandler.java │ │ │ │ ├── TagHandler.java │ │ │ │ ├── TrimHandler.java │ │ │ │ ├── WhereHandler.java │ │ │ │ └── XmlParser.java │ │ │ ├── token/ │ │ │ │ ├── TokenHandler.java │ │ │ │ └── TokenParser.java │ │ │ └── util/ │ │ │ ├── OgnlUtil.java │ │ │ └── RegexUtil.java │ │ └── test/ │ │ └── java/ │ │ └── io/ │ │ └── github/ │ │ └── wujun728/ │ │ └── sql/ │ │ ├── TestUser.java │ │ └── User.java │ ├── jun-onlineForm-spring-boot-starter/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ ├── io/ │ │ │ │ └── github/ │ │ │ │ └── wujun728/ │ │ │ │ ├── isolated/ │ │ │ │ │ └── IsolatedApp.java │ │ │ │ ├── minimal/ │ │ │ │ │ ├── MinimalApp.java │ │ │ │ │ └── MinimalController.java │ │ │ │ └── online/ │ │ │ │ ├── common/ │ │ │ │ │ ├── BaseDao.java │ │ │ │ │ ├── BaseService.java │ │ │ │ │ ├── PageResult.java │ │ │ │ │ ├── Query.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── BaseServiceImpl.java │ │ │ │ ├── config/ │ │ │ │ │ └── OnlineFormAutoConfiguration.java │ │ │ │ ├── controller/ │ │ │ │ │ ├── OnlineFormController.java │ │ │ │ │ ├── OnlineTableController.java │ │ │ │ │ ├── TestOnlineController.java │ │ │ │ │ └── WebController.java │ │ │ │ ├── convert/ │ │ │ │ │ ├── OnlineTableColumnConvert.java │ │ │ │ │ ├── OnlineTableColumnConvertImpl.java │ │ │ │ │ ├── OnlineTableConvert.java │ │ │ │ │ └── OnlineTableConvertImpl.java │ │ │ │ ├── dao/ │ │ │ │ │ ├── OnlineFormDao.java │ │ │ │ │ ├── OnlineTableColumnDao.java │ │ │ │ │ └── OnlineTableDao.java │ │ │ │ ├── ddl/ │ │ │ │ │ ├── AbstractTable.java │ │ │ │ │ └── MySQLTable.java │ │ │ │ ├── entity/ │ │ │ │ │ ├── OnlineTableColumnEntity.java │ │ │ │ │ └── OnlineTableEntity.java │ │ │ │ ├── enums/ │ │ │ │ │ └── FieldTypeEnum.java │ │ │ │ ├── query/ │ │ │ │ │ ├── OnlineFormQuery.java │ │ │ │ │ └── OnlineTableQuery.java │ │ │ │ ├── service/ │ │ │ │ │ ├── OnlineFormService.java │ │ │ │ │ ├── OnlineTableColumnService.java │ │ │ │ │ ├── OnlineTableService.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── OnlineFormServiceImpl.java │ │ │ │ │ ├── OnlineTableColumnServiceImpl.java │ │ │ │ │ └── OnlineTableServiceImpl.java │ │ │ │ └── vo/ │ │ │ │ ├── OnlineTableColumnVO.java │ │ │ │ ├── OnlineTableVO.java │ │ │ │ ├── form/ │ │ │ │ │ ├── OnlineFormVO.java │ │ │ │ │ ├── WidgetFormConfigVO.java │ │ │ │ │ ├── WidgetFormItemColumnVO.java │ │ │ │ │ ├── WidgetFormItemOptionsVO.java │ │ │ │ │ ├── WidgetFormItemVO.java │ │ │ │ │ ├── WidgetFormVO.java │ │ │ │ │ └── component/ │ │ │ │ │ ├── AbstractComponent.java │ │ │ │ │ ├── CheckboxComponent.java │ │ │ │ │ ├── ComponentContext.java │ │ │ │ │ ├── DateComponent.java │ │ │ │ │ ├── DateTimeComponent.java │ │ │ │ │ ├── InputComponent.java │ │ │ │ │ ├── NumberComponent.java │ │ │ │ │ ├── RadioComponent.java │ │ │ │ │ ├── RateComponent.java │ │ │ │ │ ├── SelectComponent.java │ │ │ │ │ ├── SliderComponent.java │ │ │ │ │ ├── SwitchComponent.java │ │ │ │ │ ├── TextareaComponent.java │ │ │ │ │ └── TimeComponent.java │ │ │ │ └── query/ │ │ │ │ ├── AbstractQuery.java │ │ │ │ ├── DateQuery.java │ │ │ │ ├── DateTimeQuery.java │ │ │ │ ├── InputQuery.java │ │ │ │ ├── QueryContext.java │ │ │ │ └── SelectQuery.java │ │ │ └── net/ │ │ │ └── maku/ │ │ │ └── framework/ │ │ │ ├── common/ │ │ │ │ └── exception/ │ │ │ │ └── ServerException.java │ │ │ └── controller/ │ │ │ └── OnlineFormController.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ ├── spring.factories │ │ │ └── spring.factories.bk │ │ ├── application.yml │ │ ├── mapper/ │ │ │ ├── OnlineFormDao.xml │ │ │ ├── OnlineTableColumnDao.xml │ │ │ └── OnlineTableDao.xml │ │ ├── online_table.sql │ │ ├── static/ │ │ │ ├── index.html │ │ │ ├── layui/ │ │ │ │ ├── css/ │ │ │ │ │ └── layui.css │ │ │ │ └── layui.js │ │ │ └── online/ │ │ │ ├── form.html │ │ │ ├── index.html │ │ │ └── test.html │ │ └── templates/ │ │ └── biztest/ │ │ └── list.html │ ├── jun-oss-spring-boot-starter/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── io/ │ │ │ └── github/ │ │ │ └── wujun728/ │ │ │ ├── file/ │ │ │ │ ├── config/ │ │ │ │ │ ├── FileAutoConfig.java │ │ │ │ │ ├── FileProperties.java │ │ │ │ │ └── ResourcesConfig.java │ │ │ │ ├── controller/ │ │ │ │ │ ├── FileControl.java │ │ │ │ │ ├── QiniuController.java │ │ │ │ │ └── SysFilesController.java │ │ │ │ ├── entity/ │ │ │ │ │ └── SysFilesEntity.java │ │ │ │ ├── mapper/ │ │ │ │ │ └── SysFilesMapper.java │ │ │ │ ├── service/ │ │ │ │ │ ├── FileService.java │ │ │ │ │ ├── SysFilesService.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── FileServiceImpl.java │ │ │ │ │ └── SysFilesServiceImpl.java │ │ │ │ └── utils/ │ │ │ │ ├── ExecuteResult.java │ │ │ │ ├── FileUtils.java │ │ │ │ └── QiniuUtils.java │ │ │ └── oss/ │ │ │ ├── config/ │ │ │ │ └── OssAutoConfigure.java │ │ │ ├── model/ │ │ │ │ └── ObjectInfo.java │ │ │ ├── properties/ │ │ │ │ ├── FdfsProperties.java │ │ │ │ ├── FileServerProperties.java │ │ │ │ └── S3Properties.java │ │ │ ├── service/ │ │ │ │ └── IOssService.java │ │ │ └── template/ │ │ │ ├── FdfsTemplate.java │ │ │ └── S3Template.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── spring.factories.bk │ ├── jun-p6spy-spring-boot-starter/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── github/ │ │ │ └── klboke/ │ │ │ └── springboot/ │ │ │ └── autoconfigure/ │ │ │ └── p6spy/ │ │ │ ├── P6spyAutoConfiguration.java │ │ │ └── P6spyProperties.java │ │ └── resources/ │ │ └── META-INF/ │ │ ├── spring-configuration-metadata.json │ │ └── spring.factories │ ├── jun-redis-spring-boot-starter/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── io/ │ │ │ └── github/ │ │ │ └── wujun728/ │ │ │ └── common/ │ │ │ └── redis/ │ │ │ ├── RedisAutoConfigure.java │ │ │ ├── constant/ │ │ │ │ └── RedisToolsConstant.java │ │ │ ├── lock/ │ │ │ │ ├── RedisDistributedLock.java │ │ │ │ └── RedissonDistributedLock.java │ │ │ ├── properties/ │ │ │ │ └── CacheManagerProperties.java │ │ │ ├── service/ │ │ │ │ └── RedisService.java │ │ │ └── template/ │ │ │ └── RedisRepository.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── spring.factories.bk │ │ └── limit.lua │ ├── jun-security-spring-boot-starter/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jun/ │ │ │ └── plugin/ │ │ │ └── security/ │ │ │ ├── AuthAutoConfiguration.java │ │ │ ├── AuthProperties.java │ │ │ ├── annotation/ │ │ │ │ ├── Ignore.java │ │ │ │ ├── RequiresPermissions.java │ │ │ │ └── RequiresRoles.java │ │ │ ├── consts/ │ │ │ │ └── AuthConsts.java │ │ │ ├── enums/ │ │ │ │ └── Logical.java │ │ │ ├── exception/ │ │ │ │ ├── AuthException.java │ │ │ │ ├── NoPermissionException.java │ │ │ │ └── UnAuthorizedException.java │ │ │ ├── interceptor/ │ │ │ │ ├── AuthenticeInterceptor.java │ │ │ │ ├── PermissionInterceptor.java │ │ │ │ └── holder/ │ │ │ │ ├── AuthenticeHolder.java │ │ │ │ ├── PermissionHolder.java │ │ │ │ └── RoleHolder.java │ │ │ ├── interfaces/ │ │ │ │ └── PermissionInfoInterface.java │ │ │ ├── provider/ │ │ │ │ ├── AbstractAuthProvider.java │ │ │ │ ├── AuthProvider.java │ │ │ │ ├── JdbcAuthProvider.java │ │ │ │ ├── RedisAuthProvider.java │ │ │ │ └── SingleAuthProvider.java │ │ │ └── util/ │ │ │ ├── AuthUtil.java │ │ │ ├── CommonUtil.java │ │ │ ├── CookieUtil.java │ │ │ ├── JsonUtil.java │ │ │ ├── LocalHostUtil.java │ │ │ ├── TokenGenUtil.java │ │ │ ├── idgen/ │ │ │ │ ├── NanoId.java │ │ │ │ ├── ObjectId.java │ │ │ │ └── Snowflake.java │ │ │ └── secure/ │ │ │ ├── AESUtil.java │ │ │ ├── HexUtil.java │ │ │ ├── MD5Hash.java │ │ │ ├── RSAUtil.java │ │ │ ├── SM3Hash.java │ │ │ ├── Sha256Hash.java │ │ │ └── sm3/ │ │ │ ├── SM3.java │ │ │ ├── SM3ConvertUtil.java │ │ │ └── SM3Digest.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── spring.factories │ │ └── sql/ │ │ └── s_auth_token.sql │ ├── jun-sentinel-spring-boot-starter/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── io/ │ │ │ └── github/ │ │ │ └── wujun728/ │ │ │ └── sentinel/ │ │ │ └── config/ │ │ │ └── SentinelAutoConfigure.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── spring.factories.bk │ ├── jun-snakerflow-spring-boot-starter/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── io/ │ │ │ └── github/ │ │ │ └── wujun728/ │ │ │ └── snakerflow/ │ │ │ ├── SnakerflowFacetsController.java │ │ │ ├── StatisticsController.java │ │ │ ├── WorkflowsConfig.java │ │ │ ├── config/ │ │ │ │ └── SankerflowAutoConfig.java │ │ │ ├── ext/ │ │ │ │ ├── controller/ │ │ │ │ │ ├── ExtLeaveController.java │ │ │ │ │ └── ExtLogController.java │ │ │ │ ├── entity/ │ │ │ │ │ ├── ExtLeave.java │ │ │ │ │ └── ExtLog.java │ │ │ │ ├── mapper/ │ │ │ │ │ ├── ExtLeaveMapper.java │ │ │ │ │ └── ExtLogMapper.java │ │ │ │ ├── service/ │ │ │ │ │ ├── IExtLeaveService.java │ │ │ │ │ ├── IExtLogService.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── ExtLeaveServiceImpl.java │ │ │ │ │ └── ExtLogServiceImpl.java │ │ │ │ └── vo/ │ │ │ │ ├── LogStatisticsTop10Vo.java │ │ │ │ └── LogStatisticsVo.java │ │ │ ├── module/ │ │ │ │ ├── EasyCustomHandler.java │ │ │ │ ├── EasyGlobalCreateTaskInterceptor.java │ │ │ │ ├── EasyPartEndProcessInterceptor.java │ │ │ │ ├── GeneralCompletion.java │ │ │ │ ├── PageResponse.java │ │ │ │ └── Response.java │ │ │ └── process/ │ │ │ ├── BaseFlowController.java │ │ │ ├── BaseFlowStatus.java │ │ │ ├── SnakerEngineFacets.java │ │ │ ├── SnakerHelper.java │ │ │ └── SnakerflowTestService.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── spring.factories.bk │ │ ├── flows/ │ │ │ ├── assessment.snaker │ │ │ ├── becomemember.snaker │ │ │ ├── borrow.snaker │ │ │ ├── contract.snaker │ │ │ ├── customer.snaker │ │ │ ├── daily.snaker │ │ │ ├── daily_old.snaker │ │ │ ├── dimission.snaker │ │ │ ├── draft.snaker │ │ │ ├── draft2.snaker │ │ │ ├── entryJob.snaker │ │ │ ├── examination.snaker │ │ │ ├── expense.snaker │ │ │ ├── hire.snaker │ │ │ ├── invoice.snaker │ │ │ ├── leave.snaker │ │ │ ├── leaveNew.snaker │ │ │ ├── member.snaker │ │ │ ├── money.snaker │ │ │ ├── office.snaker │ │ │ ├── office2.snaker │ │ │ ├── outsite.snaker │ │ │ ├── plan.snaker │ │ │ ├── project.snaker │ │ │ ├── projectCheck.snaker │ │ │ ├── project_old.snaker │ │ │ ├── recheck.snaker │ │ │ └── weekly.snaker │ │ └── templates/ │ │ └── biztest/ │ │ └── list.html │ ├── jun-swagger2-spring-boot-starter/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── io/ │ │ │ └── github/ │ │ │ └── wujun728/ │ │ │ └── common/ │ │ │ └── swagger2/ │ │ │ ├── SwaggerAutoConfiguration.java │ │ │ └── SwaggerProperties.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── spring.factories.bk │ ├── jun-uidgenerator-spring-boot-starter/ │ │ ├── pom.xml │ │ ├── readme.md │ │ ├── scripts/ │ │ │ ├── WORKER_NODE.sql │ │ │ └── uid_info.sql │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── io/ │ │ │ │ └── github/ │ │ │ │ └── wujun728/ │ │ │ │ └── uidgenerator/ │ │ │ │ ├── BitsAllocator.java │ │ │ │ ├── UidGenerator.java │ │ │ │ ├── UidgeneratorApplication.java │ │ │ │ ├── buffer/ │ │ │ │ │ ├── BufferPaddingExecutor.java │ │ │ │ │ ├── BufferedUidProvider.java │ │ │ │ │ ├── RejectedPutBufferHandler.java │ │ │ │ │ ├── RejectedTakeBufferHandler.java │ │ │ │ │ └── RingBuffer.java │ │ │ │ ├── config/ │ │ │ │ │ ├── UidAutoConfig.java │ │ │ │ │ ├── UidDbConfiguration.java │ │ │ │ │ ├── UidGeneratorConfig.java │ │ │ │ │ └── UidGeneratorProperties.java │ │ │ │ ├── exception/ │ │ │ │ │ └── UidGenerateException.java │ │ │ │ ├── impl/ │ │ │ │ │ ├── CachedUidGenerator.java │ │ │ │ │ └── DefaultUidGenerator.java │ │ │ │ ├── utils/ │ │ │ │ │ ├── DateUtils.java │ │ │ │ │ ├── DockerUtils.java │ │ │ │ │ ├── EnumUtils.java │ │ │ │ │ ├── NamingThreadFactory.java │ │ │ │ │ ├── NetUtils.java │ │ │ │ │ ├── PaddedAtomicLong.java │ │ │ │ │ └── ValuedEnum.java │ │ │ │ └── worker/ │ │ │ │ ├── DisposableWorkerIdAssigner.java │ │ │ │ ├── WorkerIdAssigner.java │ │ │ │ ├── WorkerNodeType.java │ │ │ │ ├── dao/ │ │ │ │ │ └── WorkerNodeDAO.java │ │ │ │ ├── entity/ │ │ │ │ │ └── WorkerNodeEntity.java │ │ │ │ └── repository/ │ │ │ │ ├── DbWorkerNodeResposity.java │ │ │ │ └── WorkerNodeResposity.java │ │ │ └── resources/ │ │ │ ├── META-INF/ │ │ │ │ ├── spring/ │ │ │ │ │ └── spring-boot/ │ │ │ │ │ └── starters/ │ │ │ │ │ └── spring-boot-starter-uid.properties │ │ │ │ └── spring.factories.bk │ │ │ └── application.yml │ │ └── test/ │ │ ├── java/ │ │ │ └── io/ │ │ │ └── github/ │ │ │ └── wujun728/ │ │ │ └── uidgenerator/ │ │ │ ├── CachedUidGeneratorTest.java │ │ │ └── DefaultUidGeneratorTest.java │ │ └── resources/ │ │ └── uid/ │ │ ├── cached-uid-spring.xml │ │ ├── default-uid-spring.xml │ │ ├── mybatis-spring.xml │ │ └── mysql.properties │ ├── pom.xml │ ├── pom2.xml │ └── replay_pid8756.log ├── jun_springcloud_plugin/ │ ├── .gitignore │ ├── .keep │ ├── README.md │ ├── doc/ │ │ ├── Netflix Zuul与Nginx的性能对比.md │ │ ├── Spring Cloud实战小贴士:Feign的继承特性(伪RPC模式).md │ │ ├── Spring Cloud实战小贴士:Ribbon的饥饿加载(eager-load)模式.md │ │ ├── Spring Cloud实战小贴士:Zuul处理Cookie和重定向.md │ │ ├── Spring Cloud实战小贴士:Zuul的饥饿加载(eager-load)使用.md │ │ ├── Spring Cloud实战小贴士:Zuul统一异常处理(一).md │ │ ├── Spring Cloud实战小贴士:Zuul统一异常处理(三)【Dalston版】.md │ │ ├── Spring Cloud实战小贴士:Zuul统一异常处理(二).md │ │ ├── Spring Cloud实战小贴士:turbine如何聚合设置了context-path的hystrix数据.md │ │ ├── Spring Cloud实战小贴士:健康检查.md │ │ ├── Spring Cloud实战小贴士:版本依赖关系.md │ │ ├── Spring Cloud实战小贴士:随机端口.md │ │ ├── Spring Cloud源码分析(一)Eureka.md │ │ ├── Spring Cloud源码分析(二)Ribbon.md │ │ ├── Spring Cloud源码分析(四)Zuul:核心过滤器.md │ │ ├── Spring cloud alibaba之Nacos 系统版本兼容性.md │ │ ├── SpringBoot与SpringCloud的版本对应详细版.md │ │ ├── 为Spring Cloud Ribbon配置请求重试(Camden.SR2+).md │ │ ├── 使用Spring Boot Actuator、Jolokia和Grafana实现准实时监控.md │ │ ├── 基于Consul的分布式信号量实现.md │ │ └── 基于Consul的分布式锁实现.md │ └── pom.xml └── pom.xml