Full Code of wujun728/jun_java_plugin for AI

master d103f6bd12c0 cached
6149 files
20.3 MB
5.8M tokens
25026 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (24,362K chars total). Download the full file to get everything.
Repository: wujun728/jun_java_plugin
Branch: master
Commit: d103f6bd12c0
Files: 6149
Total size: 20.3 MB

Directory structure:
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
│   │   

================================================
FILE CONTENTS
================================================

================================================
FILE: #### wujun个人开发作品集(持续更新)###.md
================================================
## [俊哥个人技术栈代码库(持续更新)](https://github.com/wujun728)
--------------------------------------------------------------------------------------------------------------

#### 产品篇:[产品及解决方案(重点)][jun_product_center,jun_website,wujun728.github.io]

> 企业信息化系统:

【企业TPG门户系统】[仿中软国际TPG门户系统](https://github.com/wujun728/jun_product/jun_portal/)<br/>
【企业财经服务系统】[产品功能说明](https://github.com/wujun728/jun_product/tree/master/jun_finance)<br/>
【企业HR服务系统】[产品功能说明](https://github.com/wujun728/jun_product/jun_hr)<br/>
【企业项目管理系统】[产品功能说明](https://github.com/wujun728/jun_product/jun_project)<br/>
【企业OA系统】[产品功能说明](https://github.com/wujun728/jun_product/jun_oa)<br/>
【企业CRM系统】[产品功能说明](https://github.com/wujun728/jun_product/jun_crm)<br/>
【企业ERP系统】[产品功能说明](https://github.com/wujun728/jun_product/jun_erp)<br/>
【企业信息管理系统】[产品功能说明](https://github.com/wujun728/jun_product/jun_mis)<br/>
【Blog管理系统】[产品功能说明](https://github.com/wujun728/jun_product/jun_blog)<br/>
【俊哥的个人简历】[产品功能说明](https://github.com/wujun728/jun_product/jun_resume)<br/>
【企业官网门户】[产品功能说明,企业网站产品,网站开发](https://github.com/wujun728/jun_website/jun_official_website)<br/>
【企业CMS系统】[产品功能说明](https://github.com/wujun728/jun_website/jun_cms)<br/>
【WordPress】[基于WordPress的CMS管理系统](https://github.com/wujun728/jun_website/jun_wordpress)<br/>

#### 移动篇:产品及解决方案(重点) [jun_android,jun_app,jun_weixin]

> APP开发框架 jun_app, APP开发,Android开发,Vue+uniapp+Nodejs+Bigdata:

【Android程序开发】[产品功能说明](https://github.com/wujun728/jun_android)<br/>
【H5混合App程序开发】[产品功能说明](https://github.com/wujun728/jun_app)<br/>

> 微信开发框架, 微信开发 [jun_weixin]

【微信小程序】[产品功能说明](https://github.com/wujun728/jun_weixin/weixin_miniprogram)<br/>
【微信小程序管理系统】[产品功能说明](https://github.com/wujun728/jun_weixin/weixin_manager)<br/>
【微信公众号】[产品功能说明](https://github.com/wujun728/jun_weixin//weixin_product)<br/>
【微信公众号管理系统】[产品功能说明](https://github.com/wujun728/jun_weixin/weixin_manager)<br/>
【微信工具系统-爬虫-代码生成器】[产品功能说明](https://github.com/wujun728/jun_weixin/weixin_crawler)<br/>
【微信推送更新订阅管理系统】[产品功能说明](https://github.com/wujun728/jun_weixin/weixin_push)<br/>

--------------------------------------------------------------------------------------------------------------
#### 大数据篇:大数据场景,大数据开发,Hadoop、Spark、Strom开发 [jun_bigdata,jun_linux]

【Hadoop大数据】[Spring连接Hadoop实现CRUD](https://github.com/wujun728/jun_bigdata/Spring-mongoDB)<br/>
【Spark大数据】[Spring连接Spark实现CRUD](https://github.com/wujun728/jun_bigdata/Spring-mongoDB)<br/>
【MongoDB数据库】[Spring连接mongoDB数据库实现增删改查](https://github.com/wujun728/jun_bigdata/Spring-mongoDB)<br/>
【Oracle数据库】[实现Oracle数据库的CRUD](https://github.com/wujun728/jun_bigdata/Spring-redis)<br/>
【MySQL数据库】[实现Mysql数据库的主从复制、读写分离、分表分库、负载均衡和高可用](https://github.com/wujun728/jun_bigdata/Spring-redis)<br/>
【H2数据库】[Spring连接H2数据库实现CRUD](https://github.com/wujun728/jun_bigdata/Spring-redis)<br/>
【SQLite数据库】[Spring连接SQLite实现CRUD](https://github.com/wujun728/jun_bigdata/Spring-redis)<br/>
【Neo4j图数据库】[Spring连接图存数据库Neo4j实现增删改查](https://github.com/wujun728/jun_bigdata/Spring-neo4j)<br/>
【ETL数据转换Kettle】[使用ETL工具Kettle的实例](https://github.com/wujun728/jun_bigdata/Kettle-demo)<br/>
【Zeppelin数据分析】[使用数据仓库进行OLAP数据分析(Mysql+Kettle+Zeppelin)](https://github.com/wujun728/jun_bigdata)<br/>

--------------------------------------------------------------------------------------------------------------
#### 微服务篇:基于Spring系微服务[jun_springcloud,jun_springboot]

【微服务快速开发平台SpringCoud】[产品功能说明](https://github.com/wujun728/jun_cloud)<br/>
【微服务快速开发平台SpringBoot】[产品功能说明](https://github.com/wujun728/jun_boot)<br/>
【SpringBoot微服务】[基于SpringBoot实现各种服务应用](https://github.com/wujun728/jun_cloud)<br/>
【SpringCloud微服务Netflex】[基于SpringCloud2.1的微服务开发脚手架,整合了oauth2、nacos、gateway等](https://github.com/zhoutaoo/SpringCloud)<br/>
【SpringCloud微服务2020】[基于SpringCloud2020最新版构建微服务框架](https://github.com/wujun728/jun_cloud)<br/>
【SpringCloudAlibaba微服务】[基于SpringCloudAlibaba提供微服务开发的一站式解决方案](https://github.com/wujun728/jun_cloud)<br/>
【ApacheDubbo微服务】[基于Dubbo实现高性能、轻量级的Java微服务框架](https://github.com/wujun728/jun_cloud)<br/>
【分布式session】[Spring框架的session模块实现集中式session管理 ](https://github.com/wujun728/jun_cloud)<br/>
【分布式文件】[使用FastDFS搭建分布式文件系统(高可用、负载均衡)](https://github.com/wujun728/jun_cloud/Spring-fastdfs)<br/>
【分布式事务】[基于可靠消息最终一致性实现分布式事务(activeMQ),使用TCC框架实现分布式事务]<br/>
【高并发事务】[高并发,数据库锁机制和事务隔离级别的实现](https://github.com/wujun728/jun_cloud)<br/>
【分布式锁】[高并发:使用redis实现分布式锁,使用zookeeper实现分布式锁](https://github.com/wujun728/jun_cloud)<br/>
【线程池&异步现场】[高并发:Java多线程编程实例 ](https://github.com/wujun728/jun_cloud)<br/>
【高性能NIO】[高并发:使用netty实现高性能NIO通信]<br/>
【dubbo RPC服务】[Spring boot整合Apache dubbo v2.7实现分布式服务治理(SOA架构)]<br/>
【Spring Cloud微服务】[使用Spring Cloud实现微服务架构(MSA架构)]<br/>
【Redis&Redis Cluster】[基于Redis集群实现分布式缓存](https://github.com/wujun728/jun_cloud/Spring-redis)<br/>
【分库分表Mycat】[实现Mysql数据库的主从复制、读写分离、分表分库、负载均衡和高可用](https://github.com/wujun728/jun_cloud/Spring-redis)<br/>

> Linux环境部署&架构&分布式&高并发,Linux环境部署、各种中间件部署 [jun_linux]

【Gitlib&SVN服务&搭建】[Git指南和分支管理策略

吴俊:
【Gitlib&SVN服务&搭建】[Git指南和分支管理策略](https://github.com/wujun728/jun_linux)<br/>
【Nginx集群】[搭建高可用nginx集群和Tomcat负载均衡](https://github.com/wujun728/jun_linux)<br/>
【zookeeper注册中心】[产品功能说明](https://github.com/wujun728/jun_linux)<br/>
【jenkins自动化部署】[使用jenkins+git+maven搭建持续集成环境自动化部署分布式服务]<br/>
【Docker微服务自动化】[使用docker+jenkins+gitlab+spring cloud实现微服务的编排、持续集成和动态扩容]<br/>
【kubernetes服务编排】[基于Kubernetes实现服务编排、自动部署,扩展和管理容器化]<br/>

--------------------------------------------------------------------------------------------------------------

#### 基础篇:企业级开发组件(开发组件、代码生成、前端组件) [jun_java_plugin,jun_ssm,jun_frontend_ui]

> Java基础系开发组件jun_plugin 常用开发组件,调整,新增并优化项目组件:

【Java基础】[文件上传下载,邮件、Echart报表、二维码,开发工具](https://github.com/wujun728/jun_plugin/jun_redis)<br/>
【设计模式】[23种设计模式及常见数据结构与算法](https://github.com/wujun728/jun_plugin/SSM)<br/>

> Spring系开发框架组件 Spring常用开发组件,万能粘合剂,企业级J2EE实际标准平台

【SSH框架】[Struts2,Hibernate,Spring三大框架](https://github.com/wujun728/jun_spring_plugin/S2SH)<br/>
【SSM框架】 [SpringMVC,Mybatis,Spring三大框架](https://github.com/wujun728/jun_spring_plugin/SSM)<br/>
【SSH框架2】 [Spring,SpringMVC和Hibernate的整合实现增删改查](https://github.com/wujun728/jun_spring_plugin/SSH)<br/>
【SSM微服务】[使用Spring boot整合mybatis,rabbitmq,redis,mongodb实现增删改查](https://github.com/wujun728/jun_spring_plugin)<br/>
【Activiti工作流】 [Spring平台整合activiti工作流引擎实现OA开发](https://github.com/wujun728/jun_spring_plugin/Spring-activiti)<br/>
【WebService服务】 [Spring发布与调用REST风格的WebService](https://github.com/wujun728/jun_spring_plugin/Spring-REST)<br/>
【Shiro权限控制】 [Spring整合Apache Shiro框架,实现用户管理和权限控制](https://github.com/wujun728/jun_spring_plugin/Spring-shiro)<br/>
【Spring security权限控制】 [使用Spring security做权限控制](https://github.com/wujun728/jun_spring_plugin/spring-security-demo)<br/>
【Quartz定时JOB】[SpringTask 使用Spring security做权限控制](https://github.com/wujun728/jun_spring_plugin/spring-security-demo)<br/>
【Lucence搜索】[SpringTask 使用Spring security做权限控制](https://github.com/wujun728/jun_spring_plugin/spring-security-demo)<br/>
【ActiveMQ消息队列】[Spring平台整合消息队列ActiveMQ实现发布订阅、生产者消费者模型(JMS)](https://github.com/wujun728/jun_spring_plugin/Spring-activeMQ)<br/>
【RabbitMQ消息队列】[Spring整合消息队列RabbitMQ实现四种消息模式(AMQP)](https://github.com/wujun728/jun_spring_plugin/Spring-rabbitMQ)<br/>
【Websocket协议】[Spring整合websocket实现即时通讯](https://github.com/wujun728/jun_spring_plugin/Spring-websocket)<br/>
【Elastic search全文检索】[Spring整合Elastic search实现全文检索](https://github.com/wujun728/jun_spring_plugin/Spring-elastic_search)<br/>
【单点登录】[Spring整合CAS框架&JWT实现单点登录](https://github.com/wujun728/jun_spring_plugin/Spring-cas-sso)<br/>

Java基础系开发组件,代码生成器&开发模板,基于freemarker及MetaData&SQL解析的代码生成器
【Java代码生成模块】[数据库表代码生成、页面代码生成](https://github.com/wujun728/jun_code_generator/jun_code_helper)<br/>
【Mybatis代码生成模块】[Mybatis代码生成](https://github.com/wujun728/jun_code_generator)<br/>
【MybatisPlus代码生成模块】[Mybatis-Plus代码生成](https://github.com/wujun728/jun_code_generator)<br/>
【Maven项目模板】常用项目开发模板,新增SSH、SSM、Boot、Cloud、Android、APP模板

> 前端系开发框架[jun_frontend_ui]:

【JQueryEasyUI】[基于JQuery的前端UI组件快速开发框架](https://github.com/wujun728/jun_frontend)<br/>
【LayUI框架】[经典模块化前端UI 框架](https://github.com/wujun728/jun_frontend/)<br/>
【Bootstrap框架】[前端响应式CSS/HTML框架](https://github.com/wujun728/jun_frontend)<br/>
【Vue框架】[前端、构建用户界面的渐进式JavaScript框架](https://github.com/wujun728/jun_frontend)<br/>


 
TODO待办:
1、单表生成
2、树表生成
3、一对一生成(上下表单)
4、一对多生成(上表单下列表)

5、父子表单生成(上下)
6、树表+表单或列表生成

Step1,代码生成器
Step2,动态API
Step3、动态表单

> > jun_code_generator 代码生成器
> > 为ssh项目写个代码生成器
> > mvn_template 开发模板,调整,新增项目模板;
> > 新增SSH、SSM、SpringBoot、SpringCloud、Android、APP   
> > 模板,新增+jun_ssh+ssm+springboot+mybatis+JPA

1、精简代码生成器
2、拆分成多个模块
3、切换freemarker
4、使用公共的数据源
5、维护多套模板-ssh

6、微信登录
7、切换前端模板为 easy-web-iframe 模板


注册邮箱wujun728@163.com
原始IDgh_f4dcc9db8bc9
appid wx427dae3919204962

> > jun_plugin  
> > jun_java_plugin 常用开发组件,调整,新增并优化项目组件
> > https://github.com/whirlys/Elastic-In-Practice/tree/master/guava
> > fileServer-master\
> > fileServer-master (1)\
> > haima-front-dist-master\
> > jun_spring Spring开发组件,调整,新增Spring系常用plugin
> > jun_springboot SpringBoot开发组件,调整,SpringBoot系组件

> > jun_ssh_parent
> > Jun_ssh_eaayui
> > Jun_ssh_springboot
> > jun_ssm_parent
> > 整理ssm项目,写模板,模板还没梳理完
> > 美化ssh项目
> > https://github.com/doujinxian/renren-security
> > jun_springboot
> > jun_frontend_ui
> > jun_springcloud
> > SpringCloud开发组件,调整,SpringCloud系组件
> > Vue+uniapp+Nodejs+WordPress+PHP+Android+Bigdata 。
> > https://github.com/wujun728/vue-login-java
> > https://blog.csdn.net/xiaojinlai123/article/details/90694372
> > https://blog.csdn.net/sxdtzhaoxinguo/article/details/77965226
> > jun_linux
> > Linux开发组件,调整
> > jun_website
> > https://github.com/zhangdaiscott/luban-h5
> > https://github.com/zhangdaiscott/h5huodong
> > jun_bigdata

吴俊:
jun_website
https://github.com/zhangdaiscott/luban-h5
https://github.com/zhangdaiscott/h5huodong
jun_bigdata
jun_product_center
常用项目模板及常用项目,调整,常用项目的集合,私有的
财务系统
OA办公系统
https://github.com/hjp1011/uniapp-oa
http://www.yiiframe.com/
后端源码:官网下载
https://github.com/misstt123/oasys
https://github.com/yunchaoyun/active4j-oa
https://github.com/yunchaoyun/active4j-jsp        
HR服务系统
CRM客户关系
行政服务系统
问答系统
知识学习系统
jun_weixin
微信开发,调整
weixin_api
weixin_boot
weixin_manager
jun_android
jun_app
APP开发,调整
jun_uniapp
https://github.com/chenbool/uniapp-douyin
jun_app_cms

待办:
https://github.com/lerry903/spring-boot-api-project-seed
https://github.com/jackying/H-ui.admin
https://github.com/xiaoshaDestiny/spring-cloud-2020

https://github.com/stylefeng/Guns
https://github.com/jsnjfz/WebStack-Guns
https://github.com/1477551037/exam
https://github.com/itd2008/My-Blog
https://github.com/qiaokun-sh/spring-token

https://github.com/wujun728/inspinia_admin_java_ssm

https://github.com/xwjie/ElementVueSpringbootCodeTemplate
https://github.com/RudeCrab/rude-java
https://github.com/Wjhsmart/Front-end-UI
https://github.com/zongjl/JavaWeb
https://github.com/zongjl/Jeebase
https://github.com/xzt1995/nideshop-springboot

fsLayui
VIEWUI-FOR-EASYUI 迁移到UI
spring-boot-starter-motan
java
layoutit
Personnel-Management-System
fiction_house
inspinia_admin_java_ssm
springboot-mui
Jobs-search
xxyms————————————————————————————————————————————————————————————————————————————————————————————————————————
​      

TODO PLAN:

1、清空readme,新增readme图片,新增胶片方案模板供截图
2、调整package,调整author,调整每个工程大小,调整每个项目jar包
3、调整每个项目运行
4、mvn_template 开发模板,调整,新增项目模板;新增

jun_code_generator
0、默认生成模板调整,默认下载zip包调整
1、代码生成器jun_code_generator 默认提供Spring、Hibernate、MyBatis、Spring JDBC模板
2、代码生成器,将easyexcel的demo合并到code_generator
3、代码生成器的模板跟maven_template再整一下
4、代码生成器新模板
	Ssm+easyUI
	SSM+jwt+layui
	boot+Bootstrap
	boot+jwt+vue
5、单表生成
6、关联表生成
7、整理ssm项目
8、整理boot项目
9、SSH、SSM、SpringBoot、SpringCloud、Android、APP模板,
10、新增+jun_ssh+ssm+springboot+mybatis+JPA
jun_springboot_vue
1、ruoyi-vue-pro    ---迁移到
jun_product_center 产品中心,常用项目模板及常用项目工程,调整,常用项目的集合,私有的
0、整chinasoft的login.html跟index.html的page,适配Nginx跟ssm_jwt;
1、整理cs的login页面
2、整理cs的index页面
3、整理layui的静态前端页面并归档
4、整理adminlte及hplus
5、整理easyui的前端页面并归档
6、整理代码生成器
先根据邮件去掉非必须的项目
综合配置login及index的页面的归档

wujun728.github.io
jun_springcloud
jun_linux    Linux开发组件
Nginx优化,nginx优化单台机器抗10万并发
https://www.jianshu.com/p/5149a7a700b9
jun_weixin   微信开发
jun_android Android开发
jun_app    APP开发,Vue+uniapp+Nodejs++Android
jun_temp    临时仓库,干掉
jun_website    网站开发,以WordPress+网站模板为主
jun_bigdata   大数据开发

https://blog.csdn.net/yf275908654/article/details/50171607

 

Ssh_parent
aicode\      干掉
authority\ jsp hplus boot jpa
biu\   迁移到vue里面
mis\ 干掉
ShiroJwt\ 迁移到vue里面

不要的东西删掉,重新拟定计划跟技术选型及产品
1、新增产品规划,产品及技术选型
2、先技术规划,技术规划
3、新增管理规划,功能点补充及二次开发规划
4、功能地图及产品中心规划
5、整理胶片的模板发挥架构的优势

###TODO待办清单
NOTE20210311
jun_2021\
jun_framework\
jun_ssm\
jun_test\
jun_test11\
About
代码生成器jun_code_generator 默认提供Spring、Hibernate、MyBatis、Spring JDBC模板,也可以根据FreeMarker语法编写自定义模板生成代码。

https://www.bejson.com/
Nginx优化
https://www.jianshu.com/p/5149a7a700b9
Netty
https://blog.csdn.net/yuanzhenwei521/article/details/79194275

jun_boot
jun_plugin
jun_weixin
jun_ssm
jun_cloud
jun_app
jun_website 
fsLayui 
VIEWUI-FOR-EASYUI 
spring-boot-starter-motan 
java
layoutit
Personnel-Management-System
fiction_house
inspinia_admin_java_ssm
springboot-mui
Jobs-search
xxyms
jun_temp1\
jun_temp2\
TODO PLAN:

Vue+uniapp+Nodejs+WordPress+PHP+Android+Bigdata

https://blog.csdn.net/xiaojinlai123/article/details/90694372
https://blog.csdn.net/sxdtzhaoxinguo/article/details/77965226

https://github.com/moshowgame/SpringBootCodeGenerator
https://github.com/SpringCloud/spring-cloud-codegen
http://hub.fastgit.org/thinkgem/jeesite_autocode

Readme.md template

plugin
https://github.com/RudeCrab/rude-java/tree/master/project-practice

干掉,放到plugin里面
https://github.com/wujun728/jun_frontend_ui

boot

https://github.com/wujun728/jun_springboot 
合并到jun_ssm,并重命名

https://github.com/wangyushuai/inspinia_admin_java_ssm

前端模板-合并到front里面
https://github.com/wenfengSAT/wenfengSAT-UI
迁移到CRM里面
https://github.com/wenfengSAT/SpringbootCRM
迁移到plugin里面
https://github.com/wenfengSAT/wenfengSAT-SpringBoot
迁移到uniapp里面
https://github.com/fanchaoo/netease-cloud-music-community
待处理:
迁移到cloud里面
fsLayui
VIEWUI-FOR-EASYUI
spring-boot-starter-motan
总体待办:
吴俊-补充TODO待办清单
Jun_code-generator
临时分支

Jun_code_generator
doc\ 
	simple-fast-generator\   合并到code_mplus
	
jun_code_generator\
	hub.fastgit.org/alibaba/easyexcel
	集成easyexcel读取文件的功能noModelRead
jun_code_mybatis\
jun_code_mybatisplus\  

### 附录:个人作品索引目录(持续更新)

#### 基础篇:职业化,从做好OA系统开始
1. [Spring boot整合Mybatis实现增删改查(支持多数据源)](https://gitee.com/shenzhanwang/SSM)![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题")
2. [Struts2,Hibernate,Spring三大框架的整合实现增删改查](https://gitee.com/shenzhanwang/S2SH)
3. [Spring,SpringMVC和Hibernate的整合实现增删改查](https://gitee.com/shenzhanwang/SSH)
4. [Spring平台整合activiti工作流引擎实现OA开发](https://gitee.com/shenzhanwang/Spring-activiti)![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题")
5. [Spring发布与调用REST风格的WebService](https://gitee.com/shenzhanwang/Spring-REST)
6. [Spring整合Apache Shiro框架,实现用户管理和权限控制](https://gitee.com/shenzhanwang/Spring-shiro)
7. [使用Spring security做权限控制](https://gitee.com/shenzhanwang/spring-security-demo)
8. [Spring整合Jasig CAS框架实现单点登录](https://gitee.com/shenzhanwang/Spring-cas-sso)
#### 中级篇:中间件的各种姿势
9. [Spring连接mongoDB数据库实现增删改查](https://gitee.com/shenzhanwang/Spring-mongoDB)
10. [Spring连接Redis实现缓存](https://gitee.com/shenzhanwang/Spring-redis)
11. [Spring连接图存数据库Neo4j实现增删改查](https://gitee.com/shenzhanwang/Spring-neo4j)
12. [Spring平台整合消息队列ActiveMQ实现发布订阅、生产者消费者模型(JMS)](https://gitee.com/shenzhanwang/Spring-activeMQ)
13. [Spring整合消息队列RabbitMQ实现四种消息模式(AMQP)](https://gitee.com/shenzhanwang/Spring-rabbitMQ)
14. Spring框架的session模块实现集中式session管理 [购买](http://t.cn/Ai80zekN)
15. [Spring整合websocket实现即时通讯](https://gitee.com/shenzhanwang/Spring-websocket)![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题")
16. 使用Spring boot整合mybatis,rabbitmq,redis,mongodb实现增删改查 [购买](http://t.cn/Ai8Yh8Oy)
17. [Spring MVC整合FastDFS客户端实现文件上传](https://gitee.com/shenzhanwang/Spring-fastdfs)
18. 23种设计模式,源码、注释、使用场景 [购买](http://t.cn/Ai8Y7tEF)
19. [使用ETL工具Kettle的实例](https://gitee.com/shenzhanwang/Kettle-demo)
20. Git指南和分支管理策略 [购买](http://t.cn/Ai8Y7948)
21. 使用数据仓库进行OLAP数据分析(Mysql+Kettle+Zeppelin) ![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题")[购买](http://t.cn/Ai8Y7dVD)
#### 高级篇:架构之美
22. [zookeeper原理、架构、使用场景和可视化](https://gitee.com/shenzhanwang/zookeeper-practice)
23. Spring boot整合Apache dubbo v2.7.5实现分布式服务治理(SOA架构) ![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题") [购买](https://dwz.lc/beP9N33)
>  包含组件Spring boot v2.2.2+Dubbo v2.7.5+Nacos v1.1.1
<a href="https://images.gitee.com/uploads/images/2020/0114/084731_fd0b7a82_1110335.gif" target="_blank">效果图</a>
24. 使用Spring Cloud Alibaba v2.1.0实现微服务架构(MSA架构)![输入图片说明](https://img.shields.io/badge/-%E6%8B%9B%E7%89%8C-yellow.svg)   [购买](https://dwz.lc/IdmrHzd)
>  包含组件Nacos+Feign+Gateway+Ribbon+Sentinel+Zipkin
<a href="https://images.gitee.com/uploads/images/2020/0106/201827_ac61db63_1110335.gif" target="_blank">效果图</a>
25. 使用jenkins+centos+git+maven搭建持续集成环境自动化部署分布式服务 [购买](http://t.cn/Ai8YZbaX)
26. 使用docker+compose+jenkins+gitlab+spring cloud实现微服务的编排、持续集成和动态扩容 [购买](http://t.cn/Ai8YZCYK)
27. 使用FastDFS搭建分布式文件系统(高可用、负载均衡)[购买](http://t.cn/Ai8YZePu)
28. 搭建高可用nginx集群和Tomcat负载均衡 [购买](http://t.cn/Ai8Ywlr8)
29. 搭建可扩展的ActiveMQ高可用集群 [购买](http://t.cn/Ai8YAbA8)
30. 实现Mysql数据库的主从复制、读写分离、分表分库、负载均衡和高可用 [购买](http://t.cn/Ai8YAOAK)
31. 搭建高可用redis集群实现分布式缓存 [购买](http://t.cn/Ai8Y2NQy)
32. [Spring boot整合Elastic search实现全文检索](https://gitee.com/shenzhanwang/Spring-elastic_search) ![输入图片说明](https://img.shields.io/badge/-%E6%8B%9B%E7%89%8C-yellow.svg "在这里输入图片标题")
#### 特别篇:分布式事务和并发控制
33. 基于可靠消息最终一致性实现分布式事务(activeMQ)[购买](http://t.cn/Ai8YLPBL)
34. Spring boot dubbo整合seata实现分布式事务![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题") [购买](https://dwz.lc/csO0rp2)
> 包含组件nacos v1.1.0 + seata v0.7.1 +spring boot dubbo v2.7.5
<a href="https://images.gitee.com/uploads/images/2020/0119/112233_62a33a77_1110335.gif" target="_blank">效果图</a>
35. Spring cloud alibaba v2.1.0整合seata实现分布式事务 ![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题")[购买](https://dwz.lc/0T8KCTC)
> 包含组件nacos v1.1.0 + seata v0.7.1 +spring cloud alibaba v2.1.0
<a href="https://images.gitee.com/uploads/images/2020/0119/134408_ee14a016_1110335.gif" target="_blank">效果图</a>
36. 决战高并发:数据库锁机制和事务隔离级别的实现![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题") [购买](http://t.cn/Ai8YyAQE)
37. 决战高并发:使用redis实现分布式锁  ![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题")[购买](http://t.cn/Ai8Y4bER)
38. 决战高并发:使用zookeeper实现分布式锁 [购买](http://t.cn/Ai8Y4Cuq)
39. 决战高并发:Java多线程编程实例 [购买](http://t.cn/Ai8Y4s0r)
40. 决战高并发:使用netty实现高性能NIO通信 [购买](http://t.cn/Ai8Ybq3e)
 

<a href="https://www.jianguofaka.com/details/B1143645" target="_blank">全套大礼包2020年版</a>

1、jun_api_service
初始化API_Service
https://github.com/lihengming/spring-boot-api-project-seed
干掉jun_api-plugin

2、jun_cache   ---干掉
新增springcache
https://github.com/iamsixer/spring-cache-demo
https://github.com/zheng-zy/spring-boot-redis-guava-caffeine-cache

3、camel 干掉,没啥用

4、jun_crawler 调整,跑起来,净化

5、jun_datasource_cluster rename 到 DataSource
新增 https://github.com/ran-jit/tomcat-cluster-redis-session-manager

6、分解jun_dbutils
https://github.com/objcoding/jdbc-utils

7、jun_demo rename到 jun_test

8、设计模式,合并到一起,分三种合并,中文转英文

9、jun_note 新增
https://github.com/GourdErwa/review-notes

10、新增jun_webservlet_guice_dbutil
https://www.cnblogs.com/huzi007/p/5802022.html
https://www.cnblogs.com/huzi007/p/5796372.html

11、drools https://github.com/maxxbwsDemo

12、email 调整,清理
https://github.com/biezhi/oh-my-email/blob/master/pom.xml
https://github.com/isliqian/NiceEmail

13、excel 集成 easyexcel
https://github.com/HowieYuan/easyexcel-encapsulation
新增jun_poi demo

14、jun_fileupload
https://github.com/wemakebug/FileUpload.Java
Spring fileupload
https://github.com/jdmr/fileUpload

15、freemarker boot https://github.com/JavaCodeMood/freemarker

16、guava
https://github.com/tiantiangao/guava-study
https://github.com/tfnico/guava-examples

17、guice
https://github.com/timlien/servlet-guice
https://github.com/greengerong/guice-demo
https://github.com/lg625740749/GuiceDemo

18、hibernate
https://github.com/hibernate/hibernate-demos

19、httpclient
https://github.com/Arronlong/httpclientutil
https://github.com/JourWon/httpclientutil

20、image
https://github.com/xuehuayous/ImageUpload
https://github.com/jmitchener/spring-images
https://github.com/woobong/spring-boot-jpa-summernote-image-upload-example
https://github.com/mrmodise/java-spring-file-upload

21、jbpm4
https://github.com/xxg3053/jbpm-study
https://github.com/American/workflow/tree/master/workflow

22.jdk 清理,调整

23、lucenne
https://github.com/abel533/SearchEngine
https://github.com/doushini/lucene
https://github.com/pumadong/cl-search
Springboot+ElasticSearch
https://github.com/Motianshi/all-search

24、pay
https://github.com/kongzhidea/pay
https://github.com/iyangyuan/pay-spring-boot

Spring-cloud

 

41、 webmagic
https://github.com/scsfwgy/WebMagic_CSDN_Demo
https://github.com/EzioL/neteasemusic

42、api_service
合并都api里面,其他的2个干掉

Spring
43、 jwt rename一下
新增springboot jwt
https://github.com/dolyw/VueStudy/tree/master/VueStudy08-JWT
https://github.com/dolyw/ShiroJwt.git

44、spring activemq
清理代码,优化test及readme
https://github.com/888xin/activeMQ

45、camel 调整为zip里面的spring
46、cas 干掉
新增oauth

47、cors 调整为filter过滤器

48、config 迁移到cloud里面

49、fastdfs

50、dubbo
https://github.com/GenshenWang/DubboDemo

51、quartz
https://github.com/ameizi/spring-quartz-cluster-sample

52、新增xxl-job
https://github.com/xuxueli/xxl-job

53、email
https://github.com/fangjieDevp/spring-email-master

54、Excel 干掉

55、hibernate
https://github.com/zhonglinlin1305/Spring
https://github.com/zhonglinlin1305/spring-projects/

0、Boot&cloud
https://github.com/zhonglinlin1305/spring-boot-sample/
https://github.com/zhonglinlin1305/spring-cloud-microservice
https://github.com/SpringForAll/springcloud-thoth

56、kafka
https://github.com/smallnest/spring-kafka-demo

57、lucenne
https://github.com/FuZhucheng/SSM

 

00、boot starter
https://github.com/battcn/extend-spring-boot

00、util
https://github.com/864381832/xJavaFxTool-spring

00、ppt
https://github.com/aalansehaiyang/technology-talk

1、plugin 代码全部梳理一遍,package/pom/test/readme
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
2、ssh 代码合并到一个,调整功能
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
3、ssm 代码合并到一个,调整功能
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
4、代码生成器、代码一套,功能一套,合并ry_gen
https://www.jianshu.com/p/31e532392a74
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
5、ui 整理ui
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
6、apiservice 代码一套,功能一套,同步ssm
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
https://github.com/callicoder/spring-webflux-reactive-rest-api-demo
https://blog.csdn.net/qq_35067322/article/details/106935320
https://github.com/dolyw/ShiroJwt
7、linux 部署文档,部署包、docker部署
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
部署环境

Step2
main
https://github.com/Heeexy/SpringBoot-Shiro-Vue
jun_springboot_jwt_layui\   合并到ssm框架
jun_springboot_jwt_shiro_api\   空的
jun_springboot_vue\   干掉
jun_springboot_vue_pro\ 合并到上面里面

Step4
1、uniapp
https://github.com/zsptsf/uniapp.git
https://github.com/c1013529993/springboot-uniapp-21cake

Step1
Jdbc_template
https://gitee.com/jervain_y/repository

https://github.com/horsecms/layuiCMS

Step2
1、vue-element-admin
https://github.com/panjiachen/vue-element-admin-site
https://panjiachen.github.io/vue-element-admin-site/zh/guide/
2、cloud
https://www.8kee.com/article/17347.html
https://github.com/JourWon/springcloud-learning
https://github.com/wenren0819/Spring-Cloud-2020
https://blog.csdn.net/ThinkWon/article/details/103726655

2、api_service
https://github.com/koocyton/reactor-guice
https://github.com/jwpttcg66/NettyGameServer
3、bigdata
爬虫
https://github.com/brianway/webporter
ETL
https://github.com/zhaxiaodong9860/kettle-scheduler
数仓
https://github.com/fenglei110/DataWarehouse
https://github.com/jd-bigdata/rtf-lake
https://github.com/xzt1995/Data-Warehouse
新增用户画像、用户行为
https://github.com/monsonlee/BigData
https://github.com/whirlys/BigData-In-Practice
https://github.com/597365581/bigdata_tools
https://blog.csdn.net/u013967628/article/details/83656560

1、plugin 代码全部梳理一遍,package/pom/test/readme
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
2、ssh 代码合并到一个,调整功能
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
3、ssm 代码合并到一个,调整功能
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
4、代码生成器、代码一套,功能一套,合并ry_gen
https://www.jianshu.com/p/31e532392a74
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
5、ui 整理ui
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
6、apiservice 代码一套,功能一套,同步ssm
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
https://github.com/callicoder/spring-webflux-reactive-rest-api-demo
https://blog.csdn.net/qq_35067322/article/details/106935320
https://github.com/dolyw/ShiroJwt
7、linux 部署文档,部署包、docker部署
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
部署环境

Step2
main
https://github.com/Heeexy/SpringBoot-Shiro-Vue
jun_springboot_jwt_layui\   合并到ssm框架
jun_springboot_jwt_shiro_api\   空的
jun_springboot_vue\   干掉
jun_springboot_vue_pro\ 合并到上面里面

Step4
1、uniapp
https://github.com/zsptsf/uniapp.git
https://github.com/c1013529993/springboot-uniapp-21cake

Step1
Jdbc_template
https://gitee.com/jervain_y/repository

https://github.com/horsecms/layuiCMS

Step2
1、vue-element-admin
https://github.com/panjiachen/vue-element-admin-site
https://panjiachen.github.io/vue-element-admin-site/zh/guide/
2、cloud
https://www.8kee.com/article/17347.html
https://github.com/JourWon/springcloud-learning
https://github.com/wenren0819/Spring-Cloud-2020
https://blog.csdn.net/ThinkWon/article/details/103726655

2、api_service
https://github.com/koocyton/reactor-guice
https://github.com/jwpttcg66/NettyGameServer
3、bigdata
爬虫
https://github.com/brianway/webporter
ETL
https://github.com/zhaxiaodong9860/kettle-scheduler
数仓
https://github.com/fenglei110/DataWarehouse
https://github.com/jd-bigdata/rtf-lake
https://github.com/xzt1995/Data-Warehouse
新增用户画像、用户行为
https://github.com/monsonlee/BigData
https://github.com/whirlys/BigData-In-Practice
https://github.com/597365581/bigdata_tools
https://blog.csdn.net/u013967628/article/details/83656560

Eureka
https://www.cnblogs.com/rickiyang/p/11802413.html
Rebbon
https://blog.csdn.net/forezp/article/details/74820899
Ribbon的负载均衡,主要通过LoadBalancerClient来实现的,而LoadBalancerClient具体交给了ILoadBalancer来处理,ILoadBalancer通过配置IRule、IPing等信息,并向EurekaClient获取注册列表的信息,并默认10秒一次向EurekaClient发送“ping”,进而检查是否更新服务列表,最后,得到注册列表后,ILoadBalancer根据IRule的策略进行负载均衡。在RestTemplate 被@LoadBalance注解后,能过用负载均衡,主要是维护了一个被@LoadBalance注解的RestTemplate列表,并给列表中的RestTemplate添加拦截器,进而交给负载均衡器去处理。

架构
https://blog.csdn.net/shenhuxi10000/article/details/105058723

https://github.com/wujun728/learningSummary

Springboot security
https://blog.csdn.net/yuanlaijike/article/details/80249235

mxtheme02

https://github.com/hemin1003
jun_temp     临时仓库
https://github.com/c1013529993/springboot-uniapp-21cake

JWT+VUE
https://github.com/cailichao/easyweb-jwt
https://github.com/whvcse/JwtPermission

Elasticsearch

来自 <https://www.cnblogs.com/sunsky303/p/9438737.html>

 

https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/zh-cn/index.html

***************************************************************************************************

Springboot_fileupload
https://github.com/gaoyuyue/MyUploader-Backend

springcloud_plugin
Superboot    --- 迁移到jun_cloud_center
Jun_dubbo ---迁移到jun_microservice
Spring

https://github.com/liuge1988/kitty-generator
https://github.com/zhoutaoo/SpringCloud

Api_service
1、API_BOOT代码生成器合并到code_generator里面
2、api里面的layui抽出来,合并到
https://github.com/Radom7/springboot-layui
jun_layuiadmin
3、新增apijson
https://github.com/APIJSON/APIJSON-Demo
https://vincentcheng.github.io/apijson-doc/

Api_service
1、API_BOOT代码生成器合并到code_generator里面
2、api里面的layui抽出来,合并到
https://github.com/Radom7/springboot-layui
jun_layuiadmin
3、新增apijson
https://github.com/APIJSON/APIJSON-Demo
https://vincentcheng.github.io/apijson-doc/

https://github.com/scaladte

https://github.com/malizhigithub/CRM

https://blog.csdn.net/qq_22211217/article/details/83759513
https://www.cnblogs.com/softidea/p/10271266.html
Mysql 递归查询
 

WordPress 多站点
企业官网
中软门户网站



================================================
FILE: .claude/settings.local.json
================================================
{
  "permissions": {
    "allow": [
      "Bash(mvn compile -q)",
      "Bash(mvn test -Dtest=io.github.wujun728.db.DbActiveRecordTest)",
      "Bash(ls -d \"D:\\\\workspace\\\\github-new\\\\jun_java_plugin\\\\jun_java_plugins\"*/)",
      "Bash(ls -d \"D:\\\\workspace\\\\github-new\\\\jun_java_plugin\\\\jun_java_plugins\"jun_*/)",
      "Bash(ls -d \"D:\\\\workspace\\\\github-new\\\\jun_java_plugin\\\\jun_java_plugins\"/jun_*/)",
      "Bash(mvn compile -T 4 --fail-at-end)",
      "Bash(git add jun_java_plugins/pom.xml jun_java_plugins/jun_mybatisplus/pom.xml jun_java_plugins/jun_redis/pom.xml jun_java_plugins/jun_email/pom.xml jun_java_plugins/jun_serialization/pom.xml jun_java_plugins/jun_quartz/pom.xml jun_java_plugins/jun_jdk/pom.xml)",
      "Bash(git commit -m \"$\\(cat <<''EOF''\ncleanup: remove empty/duplicate modules and fix dependency issues in jun_java_plugins\n\n- Comment out 9 empty shell modules \\(no Java source files\\) from parent POM\n- Comment out 4 redundant/duplicate modules from parent POM\n- Fix 12 duplicate dependencies across 5 POMs, including 4 version-mismatch bugs:\n  - jun_mybatisplus: spring-context was hardcoded 4.3.10 instead of $spring.version 5.1.9\n  - jun_redis: jedis duplicated with 2.9.0 vs 2.2.1\n  - jun_quartz: two spring version properties \\(4.0.6 vs 5.0.8\\) unified to 5.0.8\n- Remove unused spark-core, spark-sql, hadoop-client from jun_jdk \\(zero imports\\)\nEOF\n\\)\")",
      "Bash(ls -d \"D:\\\\workspace\\\\github-new\\\\jun_java_plugin\\\\jun_java_plugins\"/*/)",
      "Bash(xargs -I{} basename \"{}\")",
      "Bash(ls -d D:/workspace/github-new/jun_java_plugin/jun_java_plugins/*/)",
      "Bash(mvn compile -T 4)",
      "Bash(mvn clean package -q)",
      "Bash(cmd.exe /c \"cd /d D:\\\\workspace\\\\github-new\\\\jun_java_plugin\\\\jun_springboot_starter\\\\jun-mybatis-sql-engine && mvn clean package -q 2>&1\")",
      "Bash(cmd.exe /c \"cd /d D:\\\\workspace\\\\github-new\\\\jun_java_plugin\\\\jun_springboot_starter\\\\jun-mybatis-sql-engine && mvn clean package 2>&1\")",
      "Bash(cmd.exe /c \"D: && cd D:\\\\workspace\\\\github-new\\\\jun_java_plugin\\\\jun_springboot_starter\\\\jun-mybatis-sql-engine && mvn clean package\")",
      "Bash(powershell.exe -Command \"Set-Location ''D:\\\\workspace\\\\github-new\\\\jun_java_plugin\\\\jun_springboot_starter\\\\jun-mybatis-sql-engine''; mvn clean package 2>&1\")",
      "Bash(powershell.exe -Command \"Set-Location ''D:\\\\workspace\\\\github-new\\\\jun_java_plugin\\\\jun_springboot_starter\\\\jun-mybatis-sql-engine''; mvn clean package -Dmaven.javadoc.skip=true 2>&1\")",
      "Bash(mvn clean compile -q)",
      "Bash(mvn install -pl jun-db-activerecord -q -DskipTests)",
      "Bash(mvn install -pl jun-mybatis-sql-engine -q -DskipTests)",
      "Bash(dir \"C:\\\\Users\\\\Administrator\\\\.m2\\\\repository\\\\io\\\\github\\\\wujun728\\\\jun-db-activerecord\\\\1.0.25\"\")",
      "Bash(mvn install -pl jun-common-base,jun-db-activerecord,jun-mybatis-sql-engine -DskipTests -am)",
      "Bash(mvn clean compile)",
      "Bash(jar tf \"D:\\\\Java\\\\.m2\\\\repository\\\\io\\\\github\\\\wujun728\\\\jun-db-activerecord\\\\1.0.25\\\\jun-db-activerecord-1.0.25.jar\")",
      "Bash(mvn compile -pl jun-db-activerecord)",
      "Bash(mvn install -pl jun-db-activerecord -DskipTests)",
      "Bash(jar tf \"D:\\\\Java\\\\.m2\\\\repository\\\\io\\\\github\\\\wujun728\\\\jun-mybatis-sql-engine\\\\1.0.25\\\\jun-mybatis-sql-engine-1.0.25.jar\")",
      "Bash(mvn test -Dtest=\"io.github.wujun728.groovy.GroovyScriptTest,io.github.wujun728.rest.RestApiTest,io.github.wujun728.sql.SqlEngineTest,io.github.wujun728.generator.CodeGeneratorTest\")",
      "Bash(mvn test -Dtest=\"io.github.wujun728.generator.CodeGeneratorTest\")",
      "Bash(mvn clean compile test-compile)",
      "Bash(mvn test -Dtest=ModelTest -pl .)",
      "Bash(mvn test)",
      "Bash(mvn clean compile test-compile -q)",
      "Bash(mvn clean test)",
      "Bash(dir /s /b \"D:\\\\workspace\\\\github-new\\\\jun_java_plugin\\\\jun_springboot_starter\\\\jun-db-activerecord\\\\src\\\\main\\\\java\\\\io\\\\github\\\\wujun728\\\\db\\\\*.java\")",
      "Bash(mvn test -Dtest=CodeGeneratorTest -pl .)",
      "Bash(mvn test -pl .)",
      "Bash(git add VERSION_CONSTANTS.md)",
      "Bash(git add */pom.xml)",
      "Bash(git commit -m \"$\\(cat <<''EOF''\nrefactor: 重构 jun_springboot_starter 模块 - 移除所有 Parent 依赖\n\n- 创建 VERSION_CONSTANTS.md 文档,统一记录所有版本号\n- 移除16个模块的parent POM引用,使其可以独立编译\n- 添加显式的groupId和version到所有模块\n- 为每个模块添加完整的properties和dependencyManagement配置\n- 统一所有内部模块版本号为1.0.25\n- 更新所有模块间依赖,明确指定版本号\n- 修正4个模块的错误parent引用(从jun_springcloud_starter改正)\n- 编译验证:jun-common-base、jun-swagger2、jun-groovy-api-spring-boot-starter等模块编译成功\n\n重构范围:\n- 新增模块:VERSION_CONSTANTS.md\n- 修改模块:16个pom.xml文件\n  - 正确parent改为无parent:jun-activerecord、jun-db-spring-boot-starter、\n    jun-groovy-api、jun-groovy-api-spring-boot-starter、jun-swagger2-spring-boot-starter、\n    jun-uidgenerator-spring-boot-starter、jun-sentinel-spring-boot-starter、\n    jun-job-spring-boot-starter、jun-snakerflow-spring-boot-starter、\n    jun-minio-spring-boot-starter、jun-encrypt-body-spring-boot-starter\n  - 错误parent改为无parent:jun-log-spring-boot-starter、\n    jun-redis-spring-boot-starter、jun-onlineForm-spring-boot-starter、\n    jun-db-activerecord2、jun-oss-spring-boot-starter\n\n预期结果:\n✓ 所有模块都可以独立使用 mvn clean compile 编译\n✓ 模块间依赖关系清晰明确,版本号统一\n✓ 第三方用户可以独立引用任何模块而无需关心parent POM\nEOF\n\\)\")"
    ]
  }
}


================================================
FILE: .gitignore
================================================
*.class
.DS_Store
application.pid

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

# Eclipse
.classpath
.project
target
bin
classes
.settings
.factorypath
doc2
doc1
*bak
log
logs
target
*.zip

node_modules

# Idea
.idea
*.iml
.mvn

# git
*.orig
jun_spring_plugin

================================================
FILE: README.md
================================================
### `jun_java_plugin` 项目  

### 项目说明
jun_java_plugin 整合Java企业级各种开发组件、开箱即用、不写重复代码,包含基础Java基础开发组件,Spring企业级开发组,SpringBoot常用开发组件、SpringCloud开发组件

### 功能清单

1. 集成Java常用开发组件:**java_plugin**,Java常用开发组件,当前**包含60+类各种**lib类库示例与文档。
2. 集成SpringBoot常用开发组件:**springboot_plugin**,当前**集成100+**种类库示例与文档。
3. 集成Maven常用项目模板:**maven_template**,当前集成了**10种模板**,含单体及多模块、SSH、SSM、Boot、Cloud等。
4. 集成SpringCloud常用开发组件:**springcloud_plugin**,含个版本netflix、alibaba、dubbo等,主要为示例与文档。
5. 集成Spring常用开发组件:**spring_plugin**,企业级开发常用组件,当前**集成100+种**lib类库示例与文档(Spring的XML时代)。


#### 基础篇:企业级开发组件(开发组件、代码生成、前端组件) [jun_java_plugin]

> Java基础系开发组件-通用篇(jun_plugin) 常用开发组件,基础公共lib包的组件不依赖Spring的组件,主要供原生开发的项目集成:




#### 工程截图(组件较多,随意截了几个,所有组件正常编译运行)

<table>
    <tr>
		<td><img src="doc/java1.png"/> 
     </tr>
    <tr>
		<td><img src="doc/spring1.png"/>
    </tr>
    <tr>
	<td><img src="doc/springboot1.png"/>
</tr>
<tr>
	<td><img src="doc/maven1.png"/>
   </tr>
</table>



#### 模块清单(组件较多,随意写了几个,具体见代码明细)

【jun_activiti】[流程引擎,Activiti工作流,完成工作流常用操作]<br/>
【jun_ajax】[完成ajax操作,前端及后端的ajax]<br/>
【jun_aliyun_sms】[短信工具,集成阿里云短信、腾讯云短信发送及验证码等功能]<br/>
【jun_apache_commons】[ Common工具集,集成Apache通用工具集] <br/>
【jun_api】[ API中心,API注册测试校验管控鉴权中心] <br/>
【jun_cron】 [cron表达式的java的实现及调度] <br/>
【jun_cache】[分布式缓存,缓存工具,集成Redis分布式缓存功能] <br/>
【jun_camel】[消息路由,ESB服务总线,EIP框架,处理不同系统之间的消息传输] <br/>
【jun_captcha】[ 验证码工具,GoogleKaptcha及各种验证码工具] <br/>
【jun_crawler】[ 爬虫引擎,网络爬虫引擎,Xpath解析HTML] <br/>
【jun_datasource_cluster】[原生集成各种JDBC DataSource数据源,分布式数据源,Druid、DBCP等数据源] <br/>
【jun_dbutil】[原生集成Apache 的Dbutils完成单表及多表的增删改查,原生JDBC操作,简单封装] <br/>
【jun_demo】[ DEMO测试,DEMO测试工具集] <br/>
【jun_designpattern】[23种涉及模式的Java实现] <br/>
【jun_drools】[ 规则引擎,规则引擎的各种demo及工具] <br/>
【jun_dubbo】[ Dubbo,阿里巴巴Dubbo RPC demo及工具集] <br/>
【jun_executor】[原生的并发多线程demo操作] <br/>
【jun_email】[原生邮件发送、纯文本、HTML邮件、带附件的邮件] <br/>
【jun_excel】[ Excel工具集,Excel导入导出工具集] <br/>
【jun_fileupload】[原生的文件上传及下载操作的实现基于common fileupload,OSS上传下载] <br/>
【jun_freemarker】[原生集成freemarker模板引擎,数据+模板=输出,可输出代码生成器] <br/>  
【jun_guava】[ GoogleGuava,谷歌工具集,集合工具,缓存工具] <br/>
【jun_guice】[ GoogleGuice,谷歌依赖注入框架(配合Servlet3.0+Dbutil)] <br/>
【jun_gzip】[ Gzip压缩,Gzip压缩及解压缩] <br/>
【jun_hibernate】[原生集成hibernate及使用,Hibernate,JPA框架,持久化框架] <br/>
【jun_httpclient】[原生集成httpclient,发送http请求、下载文件等,配合Postman发起各种HTTP请求] <br/>
【jun_image】[原生图片操作包、包括图片上传、下载、展示、转码、压缩转Base64、缩略图等] <br/>
【jun_jdk】[JDK原生demo代码,了解的越多才会了解的越深] <br/>
【jun_jdbc】[原生JDBC操作,简单封装,需要的可以看下] <br/>
【jun_j2cache】[ 缓存j2cache,缓存工具,OSCHACHE使用的缓存工具] <br/>
【jun_jar2maven】[ Jar转Maven,Jar转Maven工具集,老web项目转maven项目] <br/>
【jun_jbpm】[ 流程引擎JBPM,流程引擎JBPM,老牌流程引擎] <br/>
【jun_jdk】[ JDK核心,JDK核心工具,常用Demo等] <br/>
【jun_jsoup】[HTM标记语言解析包,完成HTML解析、主要爬虫使用,解析HTML渲染数据] <br/>
【jun_lucene】[老牌搜索引擎、可以看下,搜索框架,搜索框架,全文检索工具] <br/>
【jun_leetcode】[算法刷题大全] <br/>
【jun_mybatisplus】[ MybatisPlus,MybatisPlus数据持久化映射框架] <br/>
【jun_pay】[ 支付工具,支付工具,集成微信及阿里支付] <br/>
【jun_pdf】[ PDF工具,PDF工具,生成PDF及PDF文件] <br/>
【jun_poi】[原生POI完成Excel文件的导入、解析、导出及持久化等] <br/>
【jun_qrcode】[二维码生成器,二维码生成工具,WEB二维码服务] <br/>
【jun_quartz】[job任务调度,任务调度框架,分布式任务调度] <br/>
【jun_redis】[ Redis缓存,Redis缓存,分布式缓存,分布式锁] <br/>
【jun_rpc】[原生RPC调用、客户端及服务端] <br/>
【jun_restlet】[REST工具,轻量级REST框架,不依赖Servlet的REST的工具] <br/>
【jun_serializable】[ 序列化,序列化与反序列化工具集] <br/>
【jun_shiro】[ 认证与鉴权,认证与鉴权,URL过滤,用户任务,角色功能鉴权] <br/>
【jun_sso】[原生SSO的实现单点登录,SSO单点登录工具,提供单点登录服务] <br/>
【jun_servlet】[原生Servlet、WEB开发的基础] <br/>
【jun_templatespider】[ 模板爬虫,模板爬虫工具,直接下载url到html文件] <br/>
【jun_test】[JUNIT框架及TestNG框架] <br/>  
【jun_util】[开发工具util,常用开发工具集、非常重要!!!] <br/>
【jun_webmagic】[ 爬虫引擎Webmagic,爬虫引擎Webmagic,爬取整个网站] <br/>
【jun_webservice】[原生的webservice调用、基于apache cxf实现服务调用及发布,CXF,Axis等] <br/>
【jun_webservlet】[原生Servlet 3.0的实现,Servlet3.0新特性demo,原生注解Servlet] <br/>
【jun_websocket】[原生的WebSocket的实现长链接,Websocket长链接demo,消息推送及异步工具] <br/>
【jun_xml】[原生的XML解析及生产XML、提供SAX、DOM、DOM4J解析生成XML] <br/>


> **Maven常用项目模板,含maven单体分布式、SSH、SSM、SpringBoot、SpringCloud等**

【maven_javaproject】[Java单体项目模板,Java单体项目模板] <br/>
【maven_spring4_multi_modules】[Spring4多模块项目模板,Spring4多模块项目模板] <br/>
【maven_spring5_multi_modules】[Spring5多模块项目模板,Spring5多模块项目模板] <br/>
【maven_spring5template】[Spring5微服务项目模板,Spring5微服务项目模板] <br/>
【maven_springboot】[SpringBoot微服务项目模板,SpringBoot微服务项目模板] <br/>
【maven_project_template】[Java单体项目模板,Java单体项目模板] <br/>
【maven_springboot_jpa_jsp】[Java单体项目模板,Java单体项目模板] <br/>
【maven_springboot_mybatis】[Java单体项目模板,Java单体项目模板] <br/>
【maven_springboot_permission_example】[Java单体项目模板,Java单体项目模板] <br/>
【maven_springboot_template】[Java单体项目模板,Java单体项目模板] <br/>



> **Spring系企业级开发框架组件 Spring常用开发组件100+,万能粘合剂**

*模块太多,描述写太麻烦了,直接贴编译清单吧,具体如下:*<br/>
` [INFO] --------------------< com.jun.plugin:spring_plugin >--------------------` <br/>
` [INFO] Building spring_plugin 1.0                                     [111/111]` <br/>
` [INFO] --------------------------------[ pom ]---------------------------------` <br/>
` [INFO]` <br/> <br/>
` [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ spring_plugin ---` <br/><br/>
` [INFO] ------------------------------------------------------------------------` <br/>
` [INFO] Reactor Summary:` <br/>
` [INFO]` <br/>
` [INFO] spring_activemq 1.0 ................................ SUCCESS [  1.337 s]` <br/>
` [INFO] spring_atomikos 1.0 ................................ SUCCESS [  1.070 s]` <br/>
` [INFO] spring_autowired 1.0 ............................... SUCCESS [  0.649 s]` <br/>
` [INFO] spring_camel 1.0 ................................... SUCCESS [  0.444 s]` <br/>
` [INFO] spring_captcha 1.1.9 ............................... SUCCESS [  0.601 s]` <br/>
` [INFO] spring_data_jpa 1.0 ................................ SUCCESS [  0.526 s]` <br/>
` [INFO] spring_demo 1.0 .................................... SUCCESS [  0.341 s]` <br/>
` [INFO] spring_distributed_datasource 1.0 .................. SUCCESS [  0.291 s]` <br/>
` [INFO] spring_distributed_fastdfs 1.0 ..................... SUCCESS [  0.030 s]` <br/>
` [INFO] fastdfs_client 1.0 ................................. SUCCESS [  0.391 s]` <br/>
` [INFO] fastdfs_app 1.0 .................................... SUCCESS [  0.646 s]` <br/>
` [INFO] fastdfs_core 1.0 ................................... SUCCESS [  1.811 s]` <br/>
` [INFO] spring_distributed_lock 1.0 ........................ SUCCESS [  0.224 s]` <br/>
` [INFO] spring_distributed_multidatasource Maven Webapp 1.0  SUCCESS [  0.594 s]` <br/>
` [INFO] spring_distributed_netty 1.0 ....................... SUCCESS [  0.008 s]` <br/>
` [INFO] spring_netty_common 1.0 ............................ SUCCESS [  0.086 s]` <br/>
` [INFO] spring_netty_server 1.0 ............................ SUCCESS [  0.223 s]` <br/>
` [INFO] spring_distributed_oss_qiniu Maven Webapp 1.0 ...... SUCCESS [  0.544 s]` <br/>
` [INFO] spring_distributed_rpc 1.0 ......................... SUCCESS [  0.004 s]` <br/>
` [INFO] fastrpc_core 1.0 ................................... SUCCESS [  0.178 s]` <br/>
` [INFO] fastrpc_server 1.0 ................................. SUCCESS [  0.195 s]` <br/>
` [INFO] fastrpc_client 1.0 ................................. SUCCESS [  0.174 s]` <br/>
` [INFO] spring_distributed_session 1.0.0 ................... SUCCESS [  0.238 s]` <br/>
` [INFO] spring_distributed_transaction_tcc 1.2.12 .......... SUCCESS [  0.037 s]` <br/>
` [INFO] tcc-transaction-api 1.2.12 ......................... SUCCESS [  0.642 s]` <br/>
` [INFO] tcc-transaction-core 1.2.12 ........................ SUCCESS [  1.058 s]` <br/>
` [INFO] tcc-transaction-spring 1.2.12 ...................... SUCCESS [  0.741 s]` <br/>
` [INFO] tcc-transaction-unit-test 1.2.12 ................... SUCCESS [  0.858 s]` <br/>
` [INFO] tcc-transaction-server 1.2.12 ...................... SUCCESS [  0.826 s]` <br/>
` [INFO] tcc-transaction-dubbo 1.2.12 ....................... SUCCESS [  0.831 s]` <br/>
` [INFO] tcc-transaction-bom 1.2.12 ......................... SUCCESS [  0.003 s]` <br/>
` [INFO] spring_drools 1.0 .................................. SUCCESS [  0.573 s]` <br/>
` [INFO] spring_dynamic_datasource 1.0 ...................... SUCCESS [  0.259 s]` <br/>
` [INFO] spring_dynamic_job 1.0 ............................. SUCCESS [  0.644 s]` <br/>
` [INFO] easy-excel-util 1.0 ................................ SUCCESS [  0.952 s]` <br/>
` [INFO] spring_easyexcel 1.0 ............................... SUCCESS [  0.004 s]` <br/>
` [INFO] my-base-common 1.0-SNAPSHOT ........................ SUCCESS [  1.416 s]` <br/>
` [INFO] my-web 1.0-SNAPSHOT ................................ SUCCESS [  2.728 s]` <br/>
` [INFO] spring_elasticsearch Maven Webapp 1.0 .............. SUCCESS [  0.637 s]` <br/>
` [INFO] spring_email 1.0 ................................... SUCCESS [  0.107 s]` <br/>
` [INFO] spring_fastdfs 1.0 ................................. SUCCESS [  0.214 s]` <br/>
` [INFO] spring_fastdfs_test 1.0 ............................ SUCCESS [  0.501 s]` <br/>
` [INFO] spring_fileupload 1.0 .............................. SUCCESS [  1.736 s]` <br/>
` [INFO] spring_hibernate 1.0.0-SNAPSHOT .................... SUCCESS [  0.666 s]` <br/>
` [INFO] spring_hibernate_plus 1.0 .......................... SUCCESS [  1.278 s]` <br/>
` [INFO] spring_hibernate_validator 1.0 ..................... SUCCESS [  0.010 s]` <br/>
` [INFO] spring_images 1.0 .................................. SUCCESS [  0.720 s]` <br/>
` [INFO] spring_ioc_aop 1.0 ................................. SUCCESS [  0.414 s]` <br/>
` [INFO] spring_jedis_cluster 1.0 ........................... SUCCESS [  0.310 s]` <br/>
` [INFO] spring_jedis_simple 1.0 ............................ SUCCESS [  0.217 s]` <br/>
` [INFO] spring_jpa 1.0 ..................................... SUCCESS [  2.663 s]` <br/>
` [INFO] spring_jqgrid 1.0 .................................. SUCCESS [  0.244 s]` <br/>
` [INFO] spring_json_view 1.0 ............................... SUCCESS [  0.238 s]` <br/>
` [INFO] spring_jsonp 1.0 ................................... SUCCESS [  0.192 s]` <br/>
` [INFO] spring_jsoup 1.0 ................................... SUCCESS [  0.165 s]` <br/>
` [INFO] spring_jwt_ssm Maven Webapp 1.0 .................... SUCCESS [  0.673 s]` <br/>
` [INFO] spring_lucene 1.0 .................................. SUCCESS [  0.551 s]` <br/>
` [INFO] spring_mina 1.0 .................................... SUCCESS [  0.470 s]` <br/>
` [INFO] spring_mongodb 1.0 ................................. SUCCESS [  0.688 s]` <br/>
` [INFO] spring_mybatis 1.0 ................................. SUCCESS [  0.717 s]` <br/>
` [INFO] spring_mybatis_generator 1.0 ....................... SUCCESS [  1.976 s]` <br/>
` [INFO] spring_mybatis_generator_gui 0.7.2 ................. SUCCESS [  0.557 s]` <br/>
` [INFO] spring_mybatis_mulidatasource 1.0 .................. SUCCESS [  0.351 s]` <br/>
` [INFO] spring_mybatis_mulidatasource_atomikos 1.0 ......... SUCCESS [  0.270 s]` <br/>
` [INFO] spring_mybatis_plus_generator 1.0 .................. SUCCESS [  0.480 s]` <br/>
` [INFO] spring_mybatis3_simple 1.0 ......................... SUCCESS [  0.272 s]` <br/>
` [INFO] spring_mybatisplus 1.0 ............................. SUCCESS [  0.428 s]` <br/>
` [INFO] spring_netty 1.0 ................................... SUCCESS [  0.662 s]` <br/>
` [INFO] spring_oauth_client 1.1 ............................ SUCCESS [  0.806 s]` <br/>
` [INFO] spring_oauth_server 1.0 ............................ SUCCESS [  0.751 s]` <br/>
` [INFO] spring_oauth_server2 1.01 .......................... SUCCESS [  0.663 s]` <br/>
` [INFO] spring_oauth 1.0 ................................... SUCCESS [  0.004 s]` <br/>
` [INFO] spring_oschina 1.0 ................................. SUCCESS [  0.174 s]` <br/>
` [INFO] spring_plupload 1.0 ................................ SUCCESS [  0.188 s]` <br/>
` [INFO] spring_projects 1.0 ................................ SUCCESS [  0.003 s]` <br/>
` [INFO] spring-mvc-session-with-redis Maven Webapp 1.0 ..... SUCCESS [  0.331 s]` <br/>
` [INFO] spring-mvc-with-redis Maven Webapp 1.0 ............. SUCCESS [  0.306 s]` <br/>
` [INFO] web-native-jar Maven Webapp 1.0 .................... SUCCESS [  0.212 s]` <br/>
` [INFO] spring-with-ehcache Maven Webapp 1.0 ............... SUCCESS [  0.304 s]` <br/>
` [INFO] spring-mvc-with-redis-rank Maven Webapp 1.0 ........ SUCCESS [  0.298 s]` <br/>
` [INFO] spring_quartz 1.0 .................................. SUCCESS [  0.478 s]` <br/>
` [INFO] spring_quartz_task 1.0 ............................. SUCCESS [  1.270 s]` <br/>
` [INFO] spring_rabbitmq 1.0 ................................ SUCCESS [  0.360 s]` <br/>
` [INFO] spring_redis 1.0 ................................... SUCCESS [  0.556 s]` <br/>
` [INFO] redis-demo-publisher 1.0 ........................... SUCCESS [  0.533 s]` <br/>
` [INFO] redis-demo-subscriber1 1.0 ......................... SUCCESS [  0.310 s]` <br/>
` [INFO] redis-demo-subscriber2 1.0 ......................... SUCCESS [  0.303 s]` <br/>
` [INFO] spring_redis_queue 1.0 ............................. SUCCESS [  0.003 s]` <br/>
` [INFO] spring_rest_client 1.0 ............................. SUCCESS [  0.237 s]` <br/>
` [INFO] spring_rest_server 1.0 ............................. SUCCESS [  0.326 s]` <br/>
` [INFO] spring_rest 1.0 .................................... SUCCESS [  0.004 s]` <br/>
` [INFO] spring-session-demo.javaconfig Maven Webapp 1.0 .... SUCCESS [  0.343 s]` <br/>
` [INFO] spring-session-demo.xml Maven Webapp 1.0 ........... SUCCESS [  0.223 s]` <br/>
` [INFO] spring_session 1.0 ................................. SUCCESS [  0.004 s]` <br/>
` [INFO] spring_shiro_redis Maven Webapp 1.0 ................ SUCCESS [  0.658 s]` <br/>
` [INFO] spring_solr 1.0 .................................... SUCCESS [  0.282 s]` <br/>
` [INFO] spring_springbatch 1.0 ............................. SUCCESS [  0.967 s]` <br/>
` [INFO] spring_springjdbc 1.0 .............................. SUCCESS [  0.250 s]` <br/>
` [INFO] spring_springmv_bootstrap Maven Webapp 1.0 ......... SUCCESS [  2.355 s]` <br/>
` [INFO] spring_springmvc 1.0 ............................... SUCCESS [  0.863 s]` <br/>
` [INFO] spring_springtest 1.0 .............................. SUCCESS [  0.453 s]` <br/>
` [INFO] spring_ssh 1.0 ..................................... SUCCESS [  0.351 s]` <br/>
` [INFO] spring_ssh2 1.0 .................................... SUCCESS [  0.389 s]` <br/>
` [INFO] spring_ssm_layui 1.0 ............................... SUCCESS [  1.909 s]` <br/>
` [INFO] spring_ssm2 1.0 .................................... SUCCESS [  0.422 s]` <br/>
` [INFO] spring_swagger Maven Webapp 1.0 .................... SUCCESS [  1.483 s]` <br/>
` [INFO] spring_task 1.0 .................................... SUCCESS [  0.236 s]` <br/>
` [INFO] spring_thymeleaf 1.0 ............................... SUCCESS [  0.154 s]` <br/>
` [INFO] spring_transaction 1.0 ............................. SUCCESS [  1.995 s]` <br/>
` [INFO] spring_websocket 1.0 ............................... SUCCESS [  0.796 s]` <br/>
` [INFO] spring_plugin 1.0 .................................. SUCCESS [  0.003 s]` <br/>
` [INFO] ------------------------------------------------------------------------` <br/>
` [INFO] BUILD SUCCESS` <br/>
` [INFO] ------------------------------------------------------------------------` <br/>
` [INFO] Total time:  01:04 min` <br/>
` [INFO] Finished at: 2023-06-01T11:25:59+08:00` <br/>
` [INFO] ------------------------------------------------------------------------` <br/>

` Process finished with exit code 0` <br/>




> **SpringBoot系开发框架组件,基于SpringBoot微服务开发组件100+,**

*模块太多,描述写太麻烦了,直接贴编译清单吧,具体如下(编译内存溢出可调整JVM参数):*<br/>
`[INFO] ----------------< com.jun.plugin:springboot_zookeeper >-----------------` <br/>
` [INFO] Building springboot_zookeeper 1.0                              [107/107]` <br/>
` [INFO] ------------------------------------------------------------------------` <br/>
` [INFO] Reactor Summary:` <br/>
` [INFO]` <br/>
` [INFO] springboot_a_test 1.0 .............................. SUCCESS [  3.311 s]` <br/>
` [INFO] springboot_actuator 1.0 ............................ SUCCESS [  0.624 s]` <br/>
` [INFO] springboot_aop 1.0 ................................. SUCCESS [  0.638 s]` <br/>
` [INFO] springboot_async 1.0 ............................... SUCCESS [  1.988 s]` <br/>
` [INFO] springboot_batch 1.0 ............................... SUCCESS [  1.620 s]` <br/>
` [INFO] springboot_cache 1.0 ............................... SUCCESS [  0.974 s]` <br/>
` [INFO] springboot_canal 1.0 ............................... SUCCESS [  3.105 s]` <br/>
` [INFO] jun_springboot_plugin 1.0 .......................... SUCCESS [  0.047 s]` <br/>
` [INFO] springboot_codegen 1.0.0-SNAPSHOT .................. SUCCESS [  3.042 s]` <br/>
` [INFO] springboot_content_negotiation 1.0 ................. SUCCESS [  0.355 s]` <br/>
` [INFO] springboot_cxf 1.0 ................................. SUCCESS [  0.601 s]` <br/>
` [INFO] springboot_data_jpa 1.0 ............................ SUCCESS [  1.028 s]` <br/>
` [INFO] springboot_distributed_seckill 1.0 ................. SUCCESS [  2.698 s]` <br/>
` [INFO] springboot_docker 1.0.0-SNAPSHOT ................... SUCCESS [  0.209 s]` <br/>
` [INFO] springboot_drools 1.0 .............................. SUCCESS [  1.185 s]` <br/>
` [INFO] springboot_dubbo_zookeeper 1.0 ..................... SUCCESS [  0.004 s]` <br/>
` [INFO] common-api 1.0 ..................................... SUCCESS [  0.289 s]` <br/>
` [INFO] server-provider 1.0 ................................ SUCCESS [  0.283 s]` <br/>
` [INFO] server-consumer 1.0 ................................ SUCCESS [  0.284 s]` <br/>
` [INFO] springboot_dynamic_datasource 1.0.0-SNAPSHOT ....... SUCCESS [  2.692 s]` <br/>
` [INFO] springboot_echarts 1.0 ............................. SUCCESS [  2.748 s]` <br/>
` [INFO] springboot_ehcache_cache 1.0 ....................... SUCCESS [  0.591 s]` <br/>
` [INFO] springboot_elastic_job 1.0 ......................... SUCCESS [  0.769 s]` <br/>
` [INFO] springboot_email 1.0 ............................... SUCCESS [  0.332 s]` <br/>
` [INFO] springboot_excel 1.0 ............................... SUCCESS [  3.125 s]` <br/>
` [INFO] springboot_fastdfs 1.0 ............................. SUCCESS [  0.418 s]` <br/>
` [INFO] springboot_file_upload 1.0 ......................... SUCCESS [  0.359 s]` <br/>
` [INFO] springboot_file_uploaderr 1.0 ...................... SUCCESS [  0.993 s]` <br/>
` [INFO] springboot_flowable 1.0 ............................ SUCCESS [  2.156 s]` <br/>
` [INFO] springboot_flyway 1.0 .............................. SUCCESS [  0.318 s]` <br/>
` [INFO] springboot_freemarker 1.0 .......................... SUCCESS [  0.318 s]` <br/>
` [INFO] springboot_graphql_mongodb 1.0 ..................... SUCCESS [  2.263 s]` <br/>
` [INFO] springboot_graylog 1.0 ............................. SUCCESS [  0.194 s]` <br/>
` [INFO] springboot_groovy 1.0 .............................. SUCCESS [  1.795 s]` <br/>
` [INFO] springboot_hibernate 1.0 ........................... SUCCESS [  0.381 s]` <br/>
` [INFO] springboot_hibernate_validator 1.0 ................. SUCCESS [  1.741 s]` <br/>
` [INFO] springboot_https 1.0 ............................... SUCCESS [  0.272 s]` <br/>
` [INFO] springboot_upload_h2db 1.0 ......................... SUCCESS [  1.197 s]` <br/>
` [INFO] springboot_jasypt 1.0 .............................. SUCCESS [  2.108 s]` <br/>
` [INFO] springboot_jackson2 1.0 ............................ SUCCESS [  0.265 s]` <br/>
` [INFO] springboot_jdbctemplate_multidatasource 1.0 ........ SUCCESS [  0.374 s]` <br/>
` [INFO] springboot_jpa_thymeleaf_curd 1.0 .................. SUCCESS [  0.529 s]` <br/>
` [INFO] springboot_jsp 1.0 ................................. SUCCESS [  2.043 s]` <br/>
` [INFO] springboot_junit 1.0 ............................... SUCCESS [  0.358 s]` <br/>
` [INFO] springboot_jwt 1.0 ................................. SUCCESS [  0.735 s]` <br/>
` [INFO] springboot_kafka 1.0 ............................... SUCCESS [  0.549 s]` <br/>
` [INFO] springboot_kisso 1.0 ............................... SUCCESS [  0.385 s]` <br/>
` [INFO] springboot_ldap 1.0 ................................ SUCCESS [  1.751 s]` <br/>
` [INFO] springboot_log4jmonitor 1.0 ........................ SUCCESS [  0.338 s]` <br/>
` [INFO] springboot_logback 1.0 ............................. SUCCESS [  1.237 s]` <br/>
` [INFO] springboot_mapper_pagehelper 1.0 ................... SUCCESS [  0.506 s]` <br/>
` [INFO] springboot_minio 1.0 ............................... SUCCESS [  3.098 s]` <br/>
` [INFO] springboot_mongodb 1.0 ............................. SUCCESS [  2.908 s]` <br/>
` [INFO] springboot_mq_rabbitmq 1.0 ......................... SUCCESS [  0.011 s]` <br/>
` [INFO] springboot_mq_rocketmq 1.0 ......................... SUCCESS [  0.007 s]` <br/>
` [INFO] springboot_multi_datasource_jpa 1.0 ................ SUCCESS [  2.141 s]` <br/>
` [INFO] springboot_multi_datasource_mybatis 1.0 ............ SUCCESS [  1.369 s]` <br/>
` [INFO] springboot_multi_threading 1.0 ..................... SUCCESS [  1.262 s]` <br/>
` [INFO] springboot_multisource 1.0 ......................... SUCCESS [  0.780 s]` <br/>
` [INFO] springboot_mybatis 1.0 ............................. SUCCESS [  0.301 s]` <br/>
` [INFO] springboot_mybatis_jsp 1.0 ......................... SUCCESS [  0.581 s]` <br/>
` [INFO] springboot_mybatisplus 1.0 ......................... SUCCESS [  0.789 s]` <br/>
` [INFO] springboot_netty_websocket 1.0 ..................... SUCCESS [  4.037 s]` <br/>
` [INFO] springboot_oauth2 1.0 .............................. SUCCESS [  0.017 s]` <br/>
` [INFO] authorization-server 1.0 ........................... SUCCESS [  2.646 s]` <br/>
` [INFO] resource-server 1.0 ................................ SUCCESS [  0.734 s]` <br/>
` [INFO] springboot_orm_jdbctemplate 1.0 .................... SUCCESS [  2.003 s]` <br/>
` [INFO] springboot_oss_aliyun 1.0 .......................... SUCCESS [  0.695 s]` <br/>
` [INFO] springboot_oss_qiniu 1.0 ........................... SUCCESS [  0.583 s]` <br/>
` [INFO] springboot_pay 1.0 ................................. SUCCESS [  2.203 s]` <br/>
` [INFO] springboot_quartz 1.0 .............................. SUCCESS [  1.343 s]` <br/>
` [INFO] springboot_ratelimit_guava 1.0 ..................... SUCCESS [  1.538 s]` <br/>
` [INFO] springboot_ratelimit_redis 1.0 ..................... SUCCESS [  2.114 s]` <br/>
` [INFO] springboot_rbac_security 1.0 ....................... SUCCESS [  4.486 s]` <br/>
` [INFO] springboot_rbac_shiro 1.0 .......................... SUCCESS [  1.549 s]` <br/>
` [INFO] springboot_redis 1.0 ............................... SUCCESS [  0.845 s]` <br/>
` [INFO] springboot_redis_cluster 1.0 ....................... SUCCESS [  0.519 s]` <br/>
` [INFO] springboot_redis_sentinel 1.0 ...................... SUCCESS [  0.386 s]` <br/>
` [INFO] springboot_redislock 1.0 ........................... SUCCESS [  0.550 s]` <br/>
` [INFO] springboot_resttemplate 1.0 ........................ SUCCESS [  0.960 s]` <br/>
` [INFO] springboot_schedule 1.0 ............................ SUCCESS [  0.203 s]` <br/>
` [INFO] simple-security-jwt 1.0.0 .......................... SUCCESS [  1.704 s]` <br/>
` [INFO] simple-security-jwt-demo 1.0.0 ..................... SUCCESS [  0.300 s]` <br/>
` [INFO] springboot_security2 1.0 ........................... SUCCESS [  0.005 s]` <br/>
` [INFO] springboot_session 1.0 ............................. SUCCESS [  0.424 s]` <br/>
` [INFO] springboot_shardingsphere-mybatisplus 1.0 .......... SUCCESS [  2.885 s]` <br/>
` [INFO] springboot_shiro 1.0 ............................... SUCCESS [  1.735 s]` <br/>
` [INFO] springboot_snaker 1.0 .............................. SUCCESS [  0.990 s]` <br/>
` [INFO] springboot_justauth 1.0 ............................ SUCCESS [  1.590 s]` <br/>
` [INFO] springboot_socketio 1.0 ............................ SUCCESS [  0.373 s]` <br/>
` [INFO] springboot_starter 1.0 ............................. SUCCESS [  0.270 s]` <br/>
` [INFO] springboot_swagger_beauty 1.0 ...................... SUCCESS [  1.668 s]` <br/>
` [INFO] springboot_task_xxl_job 1.0 ........................ SUCCESS [  2.488 s]` <br/>
` [INFO] springboot_template_freemarker 1.0 ................. SUCCESS [  1.326 s]` <br/>
` [INFO] springboot_template_thymeleaf 1.0 .................. SUCCESS [  1.287 s]` <br/>
` [INFO] springboot_testing 1.0 ............................. SUCCESS [  0.435 s]` <br/>
` [INFO] springboot_thumbnailator 0.0.1-SNAPSHOT ............ SUCCESS [  0.809 s]` <br/>
` [INFO] springboot_thymeleaf 1.0 ........................... SUCCESS [  0.447 s]` <br/>
` [INFO] springboot_transaction 1.0 ......................... SUCCESS [  0.922 s]` <br/>
` [INFO] springboot_upload 1.0 .............................. SUCCESS [  2.881 s]` <br/>
` [INFO] springboot_validation 1.0 .......................... SUCCESS [  1.393 s]` <br/>
` [INFO] springboot_war 1.0 ................................. SUCCESS [  0.204 s]` <br/>
` [INFO] springboot_webflux 1.0 ............................. SUCCESS [  0.879 s]` <br/>
` [INFO] springboot_webservice 0.0.1-SNAPSHOT ............... SUCCESS [  0.741 s]` <br/>
` [INFO] springboot_websocket 1.0 ........................... SUCCESS [  0.487 s]` <br/>
` [INFO] springboot_websocket_socketio 1.0 .................. SUCCESS [  2.226 s]` <br/>
` [INFO] springboot_zookeeper 1.0 ........................... SUCCESS [  2.068 s]` <br/>
` [INFO] ------------------------------------------------------------------------` <br/>
` [INFO] BUILD SUCCESS` <br/>
` [INFO] ------------------------------------------------------------------------` <br/>
` [INFO] Total time:  02:09 min` <br/>
` [INFO] Finished at: 2023-06-01T11:29:50+08:00` <br/>
` [INFO] ------------------------------------------------------------------------` <br/>

` Process finished with exit code 0` <br/>



#### 开发环境
- **JDK 1.8 
- **Maven 3.5 
- **IDEA 2018.2 + or  STS 4.5 +** (*注意:安装lombok插件)
- **TOKEN  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Abc
#### 笔者其他项目   
 [俊哥个人技术栈代码库(持续更新)](https://github.com/wujun728)  
TODO PLAN:  
【Step1基础篇】:  
	jun_java_plugin  Java基础框架-Java开发组件、Spring开发组件、SpringBoot开发组件、SpringCloud开发组件、Maven项目模板  
	jun_ssh_parent  SSH基础框架-SpringBoot+EasyUI+JSP  
	jun_ssm_springboot SSM基础框架-SpringBoot+MybatisPlus+Boostrap+Shiro+JWT  
	jun_code_generator 代码生成器-SpringBoot+Freemarker+API接口  
	jun_frontend_ui    前端框架,Bootstrap、LayUI、Vue、Vue-element-admin  
	jun_linux    服务器部署、gitlab部署、Nginx部署、Redis部署、Docker部署、MySQL部署、等等  
 	---TODO审视项目本身,给出待办调整清单,给出下步计划  
【Step2微服务&大数据】:  
	jun_api_service API接口服务框架,SpringBoot+Rest API  
	jun_springboot_vue 前后端分离框架,SpringBoot+Vue+JWT  
	jun_springcloud 微服务框架,SpringCloud Netflix、SpringCloud Alibaba、Dubbo框架  
	jun_bigdata 大数据框架,支持数据清理、数据推荐、大数据分析、大数据企业看板、大数据报表等  

【Step3产品篇】:  
	jun_product_center 产品中心,包含企业官网、企业办公自动化系统、企业资源管理ERP系统等  
	jun_website   CMS网站系统,基于WordPress的网站系统、支持博客、企业官网、及各种网站模板  
	wujun728.github.io 个人博客  

【Step4移动产品篇】:  
	jun_app    移动APP开发平台、支持Uniapp开发独立APP、小程序、企业办公等  
	jun_weixin   微信开发平台、微信公众号、微信小程序、微信管理后台、微信API接口后台  
	jun_android Android移动开发框架,APP开发模板、后台管理系统、后台API接口平台  



================================================
FILE: doc/#### wujun个人开发作品集(持续更新)###.md
================================================
## [俊哥个人技术栈代码库(持续更新)](https://github.com/wujun728)
--------------------------------------------------------------------------------------------------------------

#### 产品篇:[产品及解决方案(重点)][jun_product_center,jun_website,wujun728.github.io]

> 企业信息化系统:

【企业TPG门户系统】[仿中软国际TPG门户系统](https://github.com/wujun728/jun_product/jun_portal/)<br/>
【企业财经服务系统】[产品功能说明](https://github.com/wujun728/jun_product/tree/master/jun_finance)<br/>
【企业HR服务系统】[产品功能说明](https://github.com/wujun728/jun_product/jun_hr)<br/>
【企业项目管理系统】[产品功能说明](https://github.com/wujun728/jun_product/jun_project)<br/>
【企业OA系统】[产品功能说明](https://github.com/wujun728/jun_product/jun_oa)<br/>
【企业CRM系统】[产品功能说明](https://github.com/wujun728/jun_product/jun_crm)<br/>
【企业ERP系统】[产品功能说明](https://github.com/wujun728/jun_product/jun_erp)<br/>
【企业信息管理系统】[产品功能说明](https://github.com/wujun728/jun_product/jun_mis)<br/>
【Blog管理系统】[产品功能说明](https://github.com/wujun728/jun_product/jun_blog)<br/>
【俊哥的个人简历】[产品功能说明](https://github.com/wujun728/jun_product/jun_resume)<br/>
【企业官网门户】[产品功能说明,企业网站产品,网站开发](https://github.com/wujun728/jun_website/jun_official_website)<br/>
【企业CMS系统】[产品功能说明](https://github.com/wujun728/jun_website/jun_cms)<br/>
【WordPress】[基于WordPress的CMS管理系统](https://github.com/wujun728/jun_website/jun_wordpress)<br/>

#### 移动篇:产品及解决方案(重点) [jun_android,jun_app,jun_weixin]

> APP开发框架 jun_app, APP开发,Android开发,Vue+uniapp+Nodejs+Bigdata:

【Android程序开发】[产品功能说明](https://github.com/wujun728/jun_android)<br/>
【H5混合App程序开发】[产品功能说明](https://github.com/wujun728/jun_app)<br/>

> 微信开发框架, 微信开发 [jun_weixin]

【微信小程序】[产品功能说明](https://github.com/wujun728/jun_weixin/weixin_miniprogram)<br/>
【微信小程序管理系统】[产品功能说明](https://github.com/wujun728/jun_weixin/weixin_manager)<br/>
【微信公众号】[产品功能说明](https://github.com/wujun728/jun_weixin//weixin_product)<br/>
【微信公众号管理系统】[产品功能说明](https://github.com/wujun728/jun_weixin/weixin_manager)<br/>
【微信工具系统-爬虫-代码生成器】[产品功能说明](https://github.com/wujun728/jun_weixin/weixin_crawler)<br/>
【微信推送更新订阅管理系统】[产品功能说明](https://github.com/wujun728/jun_weixin/weixin_push)<br/>

--------------------------------------------------------------------------------------------------------------
#### 大数据篇:大数据场景,大数据开发,Hadoop、Spark、Strom开发 [jun_bigdata,jun_linux]

【Hadoop大数据】[Spring连接Hadoop实现CRUD](https://github.com/wujun728/jun_bigdata/Spring-mongoDB)<br/>
【Spark大数据】[Spring连接Spark实现CRUD](https://github.com/wujun728/jun_bigdata/Spring-mongoDB)<br/>
【MongoDB数据库】[Spring连接mongoDB数据库实现增删改查](https://github.com/wujun728/jun_bigdata/Spring-mongoDB)<br/>
【Oracle数据库】[实现Oracle数据库的CRUD](https://github.com/wujun728/jun_bigdata/Spring-redis)<br/>
【MySQL数据库】[实现Mysql数据库的主从复制、读写分离、分表分库、负载均衡和高可用](https://github.com/wujun728/jun_bigdata/Spring-redis)<br/>
【H2数据库】[Spring连接H2数据库实现CRUD](https://github.com/wujun728/jun_bigdata/Spring-redis)<br/>
【SQLite数据库】[Spring连接SQLite实现CRUD](https://github.com/wujun728/jun_bigdata/Spring-redis)<br/>
【Neo4j图数据库】[Spring连接图存数据库Neo4j实现增删改查](https://github.com/wujun728/jun_bigdata/Spring-neo4j)<br/>
【ETL数据转换Kettle】[使用ETL工具Kettle的实例](https://github.com/wujun728/jun_bigdata/Kettle-demo)<br/>
【Zeppelin数据分析】[使用数据仓库进行OLAP数据分析(Mysql+Kettle+Zeppelin)](https://github.com/wujun728/jun_bigdata)<br/>

--------------------------------------------------------------------------------------------------------------
#### 微服务篇:基于Spring系微服务[jun_springcloud,jun_springboot]

【微服务快速开发平台SpringCoud】[产品功能说明](https://github.com/wujun728/jun_cloud)<br/>
【微服务快速开发平台SpringBoot】[产品功能说明](https://github.com/wujun728/jun_boot)<br/>
【SpringBoot微服务】[基于SpringBoot实现各种服务应用](https://github.com/wujun728/jun_cloud)<br/>
【SpringCloud微服务Netflex】[基于SpringCloud2.1的微服务开发脚手架,整合了oauth2、nacos、gateway等](https://github.com/zhoutaoo/SpringCloud)<br/>
【SpringCloud微服务2020】[基于SpringCloud2020最新版构建微服务框架](https://github.com/wujun728/jun_cloud)<br/>
【SpringCloudAlibaba微服务】[基于SpringCloudAlibaba提供微服务开发的一站式解决方案](https://github.com/wujun728/jun_cloud)<br/>
【ApacheDubbo微服务】[基于Dubbo实现高性能、轻量级的Java微服务框架](https://github.com/wujun728/jun_cloud)<br/>
【分布式session】[Spring框架的session模块实现集中式session管理 ](https://github.com/wujun728/jun_cloud)<br/>
【分布式文件】[使用FastDFS搭建分布式文件系统(高可用、负载均衡)](https://github.com/wujun728/jun_cloud/Spring-fastdfs)<br/>
【分布式事务】[基于可靠消息最终一致性实现分布式事务(activeMQ),使用TCC框架实现分布式事务]<br/>
【高并发事务】[高并发,数据库锁机制和事务隔离级别的实现](https://github.com/wujun728/jun_cloud)<br/>
【分布式锁】[高并发:使用redis实现分布式锁,使用zookeeper实现分布式锁](https://github.com/wujun728/jun_cloud)<br/>
【线程池&异步现场】[高并发:Java多线程编程实例 ](https://github.com/wujun728/jun_cloud)<br/>
【高性能NIO】[高并发:使用netty实现高性能NIO通信]<br/>
【dubbo RPC服务】[Spring boot整合Apache dubbo v2.7实现分布式服务治理(SOA架构)]<br/>
【Spring Cloud微服务】[使用Spring Cloud实现微服务架构(MSA架构)]<br/>
【Redis&Redis Cluster】[基于Redis集群实现分布式缓存](https://github.com/wujun728/jun_cloud/Spring-redis)<br/>
【分库分表Mycat】[实现Mysql数据库的主从复制、读写分离、分表分库、负载均衡和高可用](https://github.com/wujun728/jun_cloud/Spring-redis)<br/>

> Linux环境部署&架构&分布式&高并发,Linux环境部署、各种中间件部署 [jun_linux]

【Gitlib&SVN服务&搭建】[Git指南和分支管理策略

吴俊:
【Gitlib&SVN服务&搭建】[Git指南和分支管理策略](https://github.com/wujun728/jun_linux)<br/>
【Nginx集群】[搭建高可用nginx集群和Tomcat负载均衡](https://github.com/wujun728/jun_linux)<br/>
【zookeeper注册中心】[产品功能说明](https://github.com/wujun728/jun_linux)<br/>
【jenkins自动化部署】[使用jenkins+git+maven搭建持续集成环境自动化部署分布式服务]<br/>
【Docker微服务自动化】[使用docker+jenkins+gitlab+spring cloud实现微服务的编排、持续集成和动态扩容]<br/>
【kubernetes服务编排】[基于Kubernetes实现服务编排、自动部署,扩展和管理容器化]<br/>

--------------------------------------------------------------------------------------------------------------

#### 基础篇:企业级开发组件(开发组件、代码生成、前端组件) [jun_java_plugin,jun_ssm,jun_frontend_ui]

> Java基础系开发组件jun_plugin 常用开发组件,调整,新增并优化项目组件:

【Java基础】[文件上传下载,邮件、Echart报表、二维码,开发工具](https://github.com/wujun728/jun_plugin/jun_redis)<br/>
【设计模式】[23种设计模式及常见数据结构与算法](https://github.com/wujun728/jun_plugin/SSM)<br/>

> Spring系开发框架组件 Spring常用开发组件,万能粘合剂,企业级J2EE实际标准平台

【SSH框架】[Struts2,Hibernate,Spring三大框架](https://github.com/wujun728/jun_spring_plugin/S2SH)<br/>
【SSM框架】 [SpringMVC,Mybatis,Spring三大框架](https://github.com/wujun728/jun_spring_plugin/SSM)<br/>
【SSH框架2】 [Spring,SpringMVC和Hibernate的整合实现增删改查](https://github.com/wujun728/jun_spring_plugin/SSH)<br/>
【SSM微服务】[使用Spring boot整合mybatis,rabbitmq,redis,mongodb实现增删改查](https://github.com/wujun728/jun_spring_plugin)<br/>
【Activiti工作流】 [Spring平台整合activiti工作流引擎实现OA开发](https://github.com/wujun728/jun_spring_plugin/Spring-activiti)<br/>
【WebService服务】 [Spring发布与调用REST风格的WebService](https://github.com/wujun728/jun_spring_plugin/Spring-REST)<br/>
【Shiro权限控制】 [Spring整合Apache Shiro框架,实现用户管理和权限控制](https://github.com/wujun728/jun_spring_plugin/Spring-shiro)<br/>
【Spring security权限控制】 [使用Spring security做权限控制](https://github.com/wujun728/jun_spring_plugin/spring-security-demo)<br/>
【Quartz定时JOB】[SpringTask 使用Spring security做权限控制](https://github.com/wujun728/jun_spring_plugin/spring-security-demo)<br/>
【Lucence搜索】[SpringTask 使用Spring security做权限控制](https://github.com/wujun728/jun_spring_plugin/spring-security-demo)<br/>
【ActiveMQ消息队列】[Spring平台整合消息队列ActiveMQ实现发布订阅、生产者消费者模型(JMS)](https://github.com/wujun728/jun_spring_plugin/Spring-activeMQ)<br/>
【RabbitMQ消息队列】[Spring整合消息队列RabbitMQ实现四种消息模式(AMQP)](https://github.com/wujun728/jun_spring_plugin/Spring-rabbitMQ)<br/>
【Websocket协议】[Spring整合websocket实现即时通讯](https://github.com/wujun728/jun_spring_plugin/Spring-websocket)<br/>
【Elastic search全文检索】[Spring整合Elastic search实现全文检索](https://github.com/wujun728/jun_spring_plugin/Spring-elastic_search)<br/>
【单点登录】[Spring整合CAS框架&JWT实现单点登录](https://github.com/wujun728/jun_spring_plugin/Spring-cas-sso)<br/>

Java基础系开发组件,代码生成器&开发模板,基于freemarker及MetaData&SQL解析的代码生成器
【Java代码生成模块】[数据库表代码生成、页面代码生成](https://github.com/wujun728/jun_code_generator/jun_code_helper)<br/>
【Mybatis代码生成模块】[Mybatis代码生成](https://github.com/wujun728/jun_code_generator)<br/>
【MybatisPlus代码生成模块】[Mybatis-Plus代码生成](https://github.com/wujun728/jun_code_generator)<br/>
【Maven项目模板】常用项目开发模板,新增SSH、SSM、Boot、Cloud、Android、APP模板

> 前端系开发框架[jun_frontend_ui]:

【JQueryEasyUI】[基于JQuery的前端UI组件快速开发框架](https://github.com/wujun728/jun_frontend)<br/>
【LayUI框架】[经典模块化前端UI 框架](https://github.com/wujun728/jun_frontend/)<br/>
【Bootstrap框架】[前端响应式CSS/HTML框架](https://github.com/wujun728/jun_frontend)<br/>
【Vue框架】[前端、构建用户界面的渐进式JavaScript框架](https://github.com/wujun728/jun_frontend)<br/>


 


> > jun_code_generator 代码生成器
> > 为ssh项目写个代码生成器
> > mvn_template 开发模板,调整,新增项目模板;
> > 新增SSH、SSM、SpringBoot、SpringCloud、Android、APP   
> > 模板,新增+jun_ssh+ssm+springboot+mybatis+JPA

1、精简代码生成器
2、拆分成多个模块
3、切换freemarker
4、使用公共的数据源
5、维护多套模板-ssh

> > jun_plugin  
> > jun_java_plugin 常用开发组件,调整,新增并优化项目组件
> > https://github.com/whirlys/Elastic-In-Practice/tree/master/guava
> > fileServer-master\
> > fileServer-master (1)\
> > haima-front-dist-master\
> > jun_spring Spring开发组件,调整,新增Spring系常用plugin
> > jun_springboot SpringBoot开发组件,调整,SpringBoot系组件

> > jun_ssh_parent
> > Jun_ssh_eaayui
> > Jun_ssh_springboot
> > jun_ssm_parent
> > 整理ssm项目,写模板,模板还没梳理完
> > 美化ssh项目
> > https://github.com/doujinxian/renren-security
> > jun_springboot
> > jun_frontend_ui
> > jun_springcloud
> > SpringCloud开发组件,调整,SpringCloud系组件
> > Vue+uniapp+Nodejs+WordPress+PHP+Android+Bigdata 。
> > https://github.com/wujun728/vue-login-java
> > https://blog.csdn.net/xiaojinlai123/article/details/90694372
> > https://blog.csdn.net/sxdtzhaoxinguo/article/details/77965226
> > jun_linux
> > Linux开发组件,调整
> > jun_website
> > https://github.com/zhangdaiscott/luban-h5
> > https://github.com/zhangdaiscott/h5huodong
> > jun_bigdata

吴俊:
jun_website
https://github.com/zhangdaiscott/luban-h5
https://github.com/zhangdaiscott/h5huodong
jun_bigdata
jun_product_center
常用项目模板及常用项目,调整,常用项目的集合,私有的
财务系统
OA办公系统
https://github.com/hjp1011/uniapp-oa
http://www.yiiframe.com/
后端源码:官网下载
https://github.com/misstt123/oasys
https://github.com/yunchaoyun/active4j-oa
https://github.com/yunchaoyun/active4j-jsp        
HR服务系统
CRM客户关系
行政服务系统
问答系统
知识学习系统
jun_weixin
微信开发,调整
weixin_api
weixin_boot
weixin_manager
jun_android
jun_app
APP开发,调整
jun_uniapp
https://github.com/chenbool/uniapp-douyin
jun_app_cms

待办:
https://github.com/lerry903/spring-boot-api-project-seed
https://github.com/jackying/H-ui.admin
https://github.com/xiaoshaDestiny/spring-cloud-2020

https://github.com/stylefeng/Guns
https://github.com/jsnjfz/WebStack-Guns
https://github.com/1477551037/exam
https://github.com/itd2008/My-Blog
https://github.com/qiaokun-sh/spring-token

https://github.com/wujun728/inspinia_admin_java_ssm

https://github.com/xwjie/ElementVueSpringbootCodeTemplate
https://github.com/RudeCrab/rude-java
https://github.com/Wjhsmart/Front-end-UI
https://github.com/zongjl/JavaWeb
https://github.com/zongjl/Jeebase
https://github.com/xzt1995/nideshop-springboot

fsLayui
VIEWUI-FOR-EASYUI 迁移到UI
spring-boot-starter-motan
java
layoutit
Personnel-Management-System
fiction_house
inspinia_admin_java_ssm
springboot-mui
Jobs-search
xxyms————————————————————————————————————————————————————————————————————————————————————————————————————————
​      

TODO PLAN:

1、清空readme,新增readme图片,新增胶片方案模板供截图
2、调整package,调整author,调整每个工程大小,调整每个项目jar包
3、调整每个项目运行
4、mvn_template 开发模板,调整,新增项目模板;新增

jun_code_generator
0、默认生成模板调整,默认下载zip包调整
1、代码生成器jun_code_generator 默认提供Spring、Hibernate、MyBatis、Spring JDBC模板
2、代码生成器,将easyexcel的demo合并到code_generator
3、代码生成器的模板跟maven_template再整一下
4、代码生成器新模板
	Ssm+easyUI
	SSM+jwt+layui
	boot+Bootstrap
	boot+jwt+vue
5、单表生成
6、关联表生成
7、整理ssm项目
8、整理boot项目
9、SSH、SSM、SpringBoot、SpringCloud、Android、APP模板,
10、新增+jun_ssh+ssm+springboot+mybatis+JPA
jun_springboot_vue
1、ruoyi-vue-pro    ---迁移到
jun_product_center 产品中心,常用项目模板及常用项目工程,调整,常用项目的集合,私有的
0、整chinasoft的login.html跟index.html的page,适配Nginx跟ssm_jwt;
1、整理cs的login页面
2、整理cs的index页面
3、整理layui的静态前端页面并归档
4、整理adminlte及hplus
5、整理easyui的前端页面并归档
6、整理代码生成器
先根据邮件去掉非必须的项目
综合配置login及index的页面的归档

wujun728.github.io
jun_springcloud
jun_linux    Linux开发组件
Nginx优化,nginx优化单台机器抗10万并发
https://www.jianshu.com/p/5149a7a700b9
jun_weixin   微信开发
jun_android Android开发
jun_app    APP开发,Vue+uniapp+Nodejs++Android
jun_temp    临时仓库,干掉
jun_website    网站开发,以WordPress+网站模板为主
jun_bigdata   大数据开发

https://blog.csdn.net/yf275908654/article/details/50171607

 

Ssh_parent
aicode\      干掉
authority\ jsp hplus boot jpa
biu\   迁移到vue里面
mis\ 干掉
ShiroJwt\ 迁移到vue里面

不要的东西删掉,重新拟定计划跟技术选型及产品
1、新增产品规划,产品及技术选型
2、先技术规划,技术规划
3、新增管理规划,功能点补充及二次开发规划
4、功能地图及产品中心规划
5、整理胶片的模板发挥架构的优势

###TODO待办清单
NOTE20210311
jun_2021\
jun_framework\
jun_ssm\
jun_test\
jun_test11\
About
代码生成器jun_code_generator 默认提供Spring、Hibernate、MyBatis、Spring JDBC模板,也可以根据FreeMarker语法编写自定义模板生成代码。

https://www.bejson.com/
Nginx优化
https://www.jianshu.com/p/5149a7a700b9
Netty
https://blog.csdn.net/yuanzhenwei521/article/details/79194275

jun_boot
jun_plugin
jun_weixin
jun_ssm
jun_cloud
jun_app
jun_website 
fsLayui 
VIEWUI-FOR-EASYUI 
spring-boot-starter-motan 
java
layoutit
Personnel-Management-System
fiction_house
inspinia_admin_java_ssm
springboot-mui
Jobs-search
xxyms
jun_temp1\
jun_temp2\
TODO PLAN:

Vue+uniapp+Nodejs+WordPress+PHP+Android+Bigdata

https://blog.csdn.net/xiaojinlai123/article/details/90694372
https://blog.csdn.net/sxdtzhaoxinguo/article/details/77965226

https://github.com/moshowgame/SpringBootCodeGenerator
https://github.com/SpringCloud/spring-cloud-codegen
http://hub.fastgit.org/thinkgem/jeesite_autocode

Readme.md template

plugin
https://github.com/RudeCrab/rude-java/tree/master/project-practice

干掉,放到plugin里面
https://github.com/wujun728/jun_frontend_ui

boot

https://github.com/wujun728/jun_springboot 
合并到jun_ssm,并重命名

https://github.com/wangyushuai/inspinia_admin_java_ssm

前端模板-合并到front里面
https://github.com/wenfengSAT/wenfengSAT-UI
迁移到CRM里面
https://github.com/wenfengSAT/SpringbootCRM
迁移到plugin里面
https://github.com/wenfengSAT/wenfengSAT-SpringBoot
迁移到uniapp里面
https://github.com/fanchaoo/netease-cloud-music-community
待处理:
迁移到cloud里面
fsLayui
VIEWUI-FOR-EASYUI
spring-boot-starter-motan
总体待办:
吴俊-补充TODO待办清单
Jun_code-generator
临时分支

Jun_code_generator
doc\ 
	simple-fast-generator\   合并到code_mplus
	
jun_code_generator\
	hub.fastgit.org/alibaba/easyexcel
	集成easyexcel读取文件的功能noModelRead
jun_code_mybatis\
jun_code_mybatisplus\  

### 附录:个人作品索引目录(持续更新)

#### 基础篇:职业化,从做好OA系统开始
1. [Spring boot整合Mybatis实现增删改查(支持多数据源)](https://gitee.com/shenzhanwang/SSM)![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题")
2. [Struts2,Hibernate,Spring三大框架的整合实现增删改查](https://gitee.com/shenzhanwang/S2SH)
3. [Spring,SpringMVC和Hibernate的整合实现增删改查](https://gitee.com/shenzhanwang/SSH)
4. [Spring平台整合activiti工作流引擎实现OA开发](https://gitee.com/shenzhanwang/Spring-activiti)![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题")
5. [Spring发布与调用REST风格的WebService](https://gitee.com/shenzhanwang/Spring-REST)
6. [Spring整合Apache Shiro框架,实现用户管理和权限控制](https://gitee.com/shenzhanwang/Spring-shiro)
7. [使用Spring security做权限控制](https://gitee.com/shenzhanwang/spring-security-demo)
8. [Spring整合Jasig CAS框架实现单点登录](https://gitee.com/shenzhanwang/Spring-cas-sso)
#### 中级篇:中间件的各种姿势
9. [Spring连接mongoDB数据库实现增删改查](https://gitee.com/shenzhanwang/Spring-mongoDB)
10. [Spring连接Redis实现缓存](https://gitee.com/shenzhanwang/Spring-redis)
11. [Spring连接图存数据库Neo4j实现增删改查](https://gitee.com/shenzhanwang/Spring-neo4j)
12. [Spring平台整合消息队列ActiveMQ实现发布订阅、生产者消费者模型(JMS)](https://gitee.com/shenzhanwang/Spring-activeMQ)
13. [Spring整合消息队列RabbitMQ实现四种消息模式(AMQP)](https://gitee.com/shenzhanwang/Spring-rabbitMQ)
14. Spring框架的session模块实现集中式session管理 [购买](http://t.cn/Ai80zekN)
15. [Spring整合websocket实现即时通讯](https://gitee.com/shenzhanwang/Spring-websocket)![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题")
16. 使用Spring boot整合mybatis,rabbitmq,redis,mongodb实现增删改查 [购买](http://t.cn/Ai8Yh8Oy)
17. [Spring MVC整合FastDFS客户端实现文件上传](https://gitee.com/shenzhanwang/Spring-fastdfs)
18. 23种设计模式,源码、注释、使用场景 [购买](http://t.cn/Ai8Y7tEF)
19. [使用ETL工具Kettle的实例](https://gitee.com/shenzhanwang/Kettle-demo)
20. Git指南和分支管理策略 [购买](http://t.cn/Ai8Y7948)
21. 使用数据仓库进行OLAP数据分析(Mysql+Kettle+Zeppelin) ![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题")[购买](http://t.cn/Ai8Y7dVD)
#### 高级篇:架构之美
22. [zookeeper原理、架构、使用场景和可视化](https://gitee.com/shenzhanwang/zookeeper-practice)
23. Spring boot整合Apache dubbo v2.7.5实现分布式服务治理(SOA架构) ![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题") [购买](https://dwz.lc/beP9N33)
>  包含组件Spring boot v2.2.2+Dubbo v2.7.5+Nacos v1.1.1
<a href="https://images.gitee.com/uploads/images/2020/0114/084731_fd0b7a82_1110335.gif" target="_blank">效果图</a>
24. 使用Spring Cloud Alibaba v2.1.0实现微服务架构(MSA架构)![输入图片说明](https://img.shields.io/badge/-%E6%8B%9B%E7%89%8C-yellow.svg)   [购买](https://dwz.lc/IdmrHzd)
>  包含组件Nacos+Feign+Gateway+Ribbon+Sentinel+Zipkin
<a href="https://images.gitee.com/uploads/images/2020/0106/201827_ac61db63_1110335.gif" target="_blank">效果图</a>
25. 使用jenkins+centos+git+maven搭建持续集成环境自动化部署分布式服务 [购买](http://t.cn/Ai8YZbaX)
26. 使用docker+compose+jenkins+gitlab+spring cloud实现微服务的编排、持续集成和动态扩容 [购买](http://t.cn/Ai8YZCYK)
27. 使用FastDFS搭建分布式文件系统(高可用、负载均衡)[购买](http://t.cn/Ai8YZePu)
28. 搭建高可用nginx集群和Tomcat负载均衡 [购买](http://t.cn/Ai8Ywlr8)
29. 搭建可扩展的ActiveMQ高可用集群 [购买](http://t.cn/Ai8YAbA8)
30. 实现Mysql数据库的主从复制、读写分离、分表分库、负载均衡和高可用 [购买](http://t.cn/Ai8YAOAK)
31. 搭建高可用redis集群实现分布式缓存 [购买](http://t.cn/Ai8Y2NQy)
32. [Spring boot整合Elastic search实现全文检索](https://gitee.com/shenzhanwang/Spring-elastic_search) ![输入图片说明](https://img.shields.io/badge/-%E6%8B%9B%E7%89%8C-yellow.svg "在这里输入图片标题")
#### 特别篇:分布式事务和并发控制
33. 基于可靠消息最终一致性实现分布式事务(activeMQ)[购买](http://t.cn/Ai8YLPBL)
34. Spring boot dubbo整合seata实现分布式事务![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题") [购买](https://dwz.lc/csO0rp2)
> 包含组件nacos v1.1.0 + seata v0.7.1 +spring boot dubbo v2.7.5
<a href="https://images.gitee.com/uploads/images/2020/0119/112233_62a33a77_1110335.gif" target="_blank">效果图</a>
35. Spring cloud alibaba v2.1.0整合seata实现分布式事务 ![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题")[购买](https://dwz.lc/0T8KCTC)
> 包含组件nacos v1.1.0 + seata v0.7.1 +spring cloud alibaba v2.1.0
<a href="https://images.gitee.com/uploads/images/2020/0119/134408_ee14a016_1110335.gif" target="_blank">效果图</a>
36. 决战高并发:数据库锁机制和事务隔离级别的实现![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题") [购买](http://t.cn/Ai8YyAQE)
37. 决战高并发:使用redis实现分布式锁  ![输入图片说明](https://img.shields.io/badge/-%E7%B2%BE%E5%93%81-orange.svg "在这里输入图片标题")[购买](http://t.cn/Ai8Y4bER)
38. 决战高并发:使用zookeeper实现分布式锁 [购买](http://t.cn/Ai8Y4Cuq)
39. 决战高并发:Java多线程编程实例 [购买](http://t.cn/Ai8Y4s0r)
40. 决战高并发:使用netty实现高性能NIO通信 [购买](http://t.cn/Ai8Ybq3e)
 

<a href="https://www.jianguofaka.com/details/B1143645" target="_blank">全套大礼包2020年版</a>

1、jun_api_service
初始化API_Service
https://github.com/lihengming/spring-boot-api-project-seed
干掉jun_api-plugin

2、jun_cache   ---干掉
新增springcache
https://github.com/iamsixer/spring-cache-demo
https://github.com/zheng-zy/spring-boot-redis-guava-caffeine-cache

3、camel 干掉,没啥用

4、jun_crawler 调整,跑起来,净化

5、jun_datasource_cluster rename 到 DataSource
新增 https://github.com/ran-jit/tomcat-cluster-redis-session-manager

6、分解jun_dbutils
https://github.com/objcoding/jdbc-utils

7、jun_demo rename到 jun_test

8、设计模式,合并到一起,分三种合并,中文转英文

9、jun_note 新增
https://github.com/GourdErwa/review-notes

10、新增jun_webservlet_guice_dbutil
https://www.cnblogs.com/huzi007/p/5802022.html
https://www.cnblogs.com/huzi007/p/5796372.html

11、drools https://github.com/maxxbwsDemo

12、email 调整,清理
https://github.com/biezhi/oh-my-email/blob/master/pom.xml
https://github.com/isliqian/NiceEmail

13、excel 集成 easyexcel
https://github.com/HowieYuan/easyexcel-encapsulation
新增jun_poi demo

14、jun_fileupload
https://github.com/wemakebug/FileUpload.Java
Spring fileupload
https://github.com/jdmr/fileUpload

15、freemarker boot https://github.com/JavaCodeMood/freemarker

16、guava
https://github.com/tiantiangao/guava-study
https://github.com/tfnico/guava-examples

17、guice
https://github.com/timlien/servlet-guice
https://github.com/greengerong/guice-demo
https://github.com/lg625740749/GuiceDemo

18、hibernate
https://github.com/hibernate/hibernate-demos

19、httpclient
https://github.com/Arronlong/httpclientutil
https://github.com/JourWon/httpclientutil

20、image
https://github.com/xuehuayous/ImageUpload
https://github.com/jmitchener/spring-images
https://github.com/woobong/spring-boot-jpa-summernote-image-upload-example
https://github.com/mrmodise/java-spring-file-upload

21、jbpm4
https://github.com/xxg3053/jbpm-study
https://github.com/American/workflow/tree/master/workflow

22.jdk 清理,调整

23、lucenne
https://github.com/abel533/SearchEngine
https://github.com/doushini/lucene
https://github.com/pumadong/cl-search
Springboot+ElasticSearch
https://github.com/Motianshi/all-search

24、pay
https://github.com/kongzhidea/pay
https://github.com/iyangyuan/pay-spring-boot

Spring-cloud

 

41、 webmagic
https://github.com/scsfwgy/WebMagic_CSDN_Demo
https://github.com/EzioL/neteasemusic

42、api_service
合并都api里面,其他的2个干掉

Spring
43、 jwt rename一下
新增springboot jwt
https://github.com/dolyw/VueStudy/tree/master/VueStudy08-JWT
https://github.com/dolyw/ShiroJwt.git

44、spring activemq
清理代码,优化test及readme
https://github.com/888xin/activeMQ

45、camel 调整为zip里面的spring
46、cas 干掉
新增oauth

47、cors 调整为filter过滤器

48、config 迁移到cloud里面

49、fastdfs

50、dubbo
https://github.com/GenshenWang/DubboDemo

51、quartz
https://github.com/ameizi/spring-quartz-cluster-sample

52、新增xxl-job
https://github.com/xuxueli/xxl-job

53、email
https://github.com/fangjieDevp/spring-email-master

54、Excel 干掉

55、hibernate
https://github.com/zhonglinlin1305/Spring
https://github.com/zhonglinlin1305/spring-projects/

0、Boot&cloud
https://github.com/zhonglinlin1305/spring-boot-sample/
https://github.com/zhonglinlin1305/spring-cloud-microservice
https://github.com/SpringForAll/springcloud-thoth

56、kafka
https://github.com/smallnest/spring-kafka-demo

57、lucenne
https://github.com/FuZhucheng/SSM

 

00、boot starter
https://github.com/battcn/extend-spring-boot

00、util
https://github.com/864381832/xJavaFxTool-spring

00、ppt
https://github.com/aalansehaiyang/technology-talk

1、plugin 代码全部梳理一遍,package/pom/test/readme
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
2、ssh 代码合并到一个,调整功能
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
3、ssm 代码合并到一个,调整功能
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
4、代码生成器、代码一套,功能一套,合并ry_gen
https://www.jianshu.com/p/31e532392a74
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
5、ui 整理ui
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
6、apiservice 代码一套,功能一套,同步ssm
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
https://github.com/callicoder/spring-webflux-reactive-rest-api-demo
https://blog.csdn.net/qq_35067322/article/details/106935320
https://github.com/dolyw/ShiroJwt
7、linux 部署文档,部署包、docker部署
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
部署环境

Step2
main
https://github.com/Heeexy/SpringBoot-Shiro-Vue
jun_springboot_jwt_layui\   合并到ssm框架
jun_springboot_jwt_shiro_api\   空的
jun_springboot_vue\   干掉
jun_springboot_vue_pro\ 合并到上面里面

Step4
1、uniapp
https://github.com/zsptsf/uniapp.git
https://github.com/c1013529993/springboot-uniapp-21cake

Step1
Jdbc_template
https://gitee.com/jervain_y/repository

https://github.com/horsecms/layuiCMS

Step2
1、vue-element-admin
https://github.com/panjiachen/vue-element-admin-site
https://panjiachen.github.io/vue-element-admin-site/zh/guide/
2、cloud
https://www.8kee.com/article/17347.html
https://github.com/JourWon/springcloud-learning
https://github.com/wenren0819/Spring-Cloud-2020
https://blog.csdn.net/ThinkWon/article/details/103726655

2、api_service
https://github.com/koocyton/reactor-guice
https://github.com/jwpttcg66/NettyGameServer
3、bigdata
爬虫
https://github.com/brianway/webporter
ETL
https://github.com/zhaxiaodong9860/kettle-scheduler
数仓
https://github.com/fenglei110/DataWarehouse
https://github.com/jd-bigdata/rtf-lake
https://github.com/xzt1995/Data-Warehouse
新增用户画像、用户行为
https://github.com/monsonlee/BigData
https://github.com/whirlys/BigData-In-Practice
https://github.com/597365581/bigdata_tools
https://blog.csdn.net/u013967628/article/details/83656560

1、plugin 代码全部梳理一遍,package/pom/test/readme
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
2、ssh 代码合并到一个,调整功能
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
3、ssm 代码合并到一个,调整功能
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
4、代码生成器、代码一套,功能一套,合并ry_gen
https://www.jianshu.com/p/31e532392a74
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
5、ui 整理ui
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
6、apiservice 代码一套,功能一套,同步ssm
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
https://github.com/callicoder/spring-webflux-reactive-rest-api-demo
https://blog.csdn.net/qq_35067322/article/details/106935320
https://github.com/dolyw/ShiroJwt
7、linux 部署文档,部署包、docker部署
1、清理没用代码、工程pom、工程package、工程test、readme、截图、胶片
部署环境

Step2
main
https://github.com/Heeexy/SpringBoot-Shiro-Vue
jun_springboot_jwt_layui\   合并到ssm框架
jun_springboot_jwt_shiro_api\   空的
jun_springboot_vue\   干掉
jun_springboot_vue_pro\ 合并到上面里面

Step4
1、uniapp
https://github.com/zsptsf/uniapp.git
https://github.com/c1013529993/springboot-uniapp-21cake

Step1
Jdbc_template
https://gitee.com/jervain_y/repository

https://github.com/horsecms/layuiCMS

Step2
1、vue-element-admin
https://github.com/panjiachen/vue-element-admin-site
https://panjiachen.github.io/vue-element-admin-site/zh/guide/
2、cloud
https://www.8kee.com/article/17347.html
https://github.com/JourWon/springcloud-learning
https://github.com/wenren0819/Spring-Cloud-2020
https://blog.csdn.net/ThinkWon/article/details/103726655

2、api_service
https://github.com/koocyton/reactor-guice
https://github.com/jwpttcg66/NettyGameServer
3、bigdata
爬虫
https://github.com/brianway/webporter
ETL
https://github.com/zhaxiaodong9860/kettle-scheduler
数仓
https://github.com/fenglei110/DataWarehouse
https://github.com/jd-bigdata/rtf-lake
https://github.com/xzt1995/Data-Warehouse
新增用户画像、用户行为
https://github.com/monsonlee/BigData
https://github.com/whirlys/BigData-In-Practice
https://github.com/597365581/bigdata_tools
https://blog.csdn.net/u013967628/article/details/83656560

Eureka
https://www.cnblogs.com/rickiyang/p/11802413.html
Rebbon
https://blog.csdn.net/forezp/article/details/74820899
Ribbon的负载均衡,主要通过LoadBalancerClient来实现的,而LoadBalancerClient具体交给了ILoadBalancer来处理,ILoadBalancer通过配置IRule、IPing等信息,并向EurekaClient获取注册列表的信息,并默认10秒一次向EurekaClient发送“ping”,进而检查是否更新服务列表,最后,得到注册列表后,ILoadBalancer根据IRule的策略进行负载均衡。在RestTemplate 被@LoadBalance注解后,能过用负载均衡,主要是维护了一个被@LoadBalance注解的RestTemplate列表,并给列表中的RestTemplate添加拦截器,进而交给负载均衡器去处理。

架构
https://blog.csdn.net/shenhuxi10000/article/details/105058723

https://github.com/wujun728/learningSummary

Springboot security
https://blog.csdn.net/yuanlaijike/article/details/80249235

mxtheme02

https://github.com/hemin1003
jun_temp     临时仓库
https://github.com/c1013529993/springboot-uniapp-21cake

JWT+VUE
https://github.com/cailichao/easyweb-jwt
https://github.com/whvcse/JwtPermission

Elasticsearch

来自 <https://www.cnblogs.com/sunsky303/p/9438737.html>

 

https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/zh-cn/index.html

***************************************************************************************************

Springboot_fileupload
https://github.com/gaoyuyue/MyUploader-Backend

springcloud_plugin
Superboot    --- 迁移到jun_cloud_center
Jun_dubbo ---迁移到jun_microservice
Spring

https://github.com/liuge1988/kitty-generator
https://github.com/zhoutaoo/SpringCloud

Api_service
1、API_BOOT代码生成器合并到code_generator里面
2、api里面的layui抽出来,合并到
https://github.com/Radom7/springboot-layui
jun_layuiadmin
3、新增apijson
https://github.com/APIJSON/APIJSON-Demo
https://vincentcheng.github.io/apijson-doc/

Api_service
1、API_BOOT代码生成器合并到code_generator里面
2、api里面的layui抽出来,合并到
https://github.com/Radom7/springboot-layui
jun_layuiadmin
3、新增apijson
https://github.com/APIJSON/APIJSON-Demo
https://vincentcheng.github.io/apijson-doc/

https://github.com/scaladte

https://github.com/malizhigithub/CRM

https://blog.csdn.net/qq_22211217/article/details/83759513
https://www.cnblogs.com/softidea/p/10271266.html
Mysql 递归查询
 

WordPress 多站点
企业官网
中软门户网站



================================================
FILE: doc/Devops/CentOS使用yum安装jdk.md
================================================
# [CentOS使用yum安装jdk](https://www.cnblogs.com/zqyanywn/p/10812870.html)

1、查看系统版本命令

```
cat /etc/issue
2、查看yum包含的jdk版本
yum search java 或者 yum list java*
```

 

| 版本 | jre                       | jdk                             |
| ---- | ------------------------- | ------------------------------- |
| 1.8  | java-1.8.0-openjdk.x86_64 | java-1.8.0-openjdk-devel.x86_64 |
| 1.7  | java-1.7.0-openjdk.x86_64 | java-1.7.0-openjdk-devel.x86_64 |
| 1.6  | java-1.6.0-openjdk.x86_64 | java-1.6.0-openjdk-devel.x86_64 |

3、安装jdk
此次选择java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment

```
yum install java-1.8.0-openjdk-devel.x86_64
4、配置全局变量
```

打开配置文件,按insert进入编辑模式

```
vi /etc/profile
```

  

```
复制以下三行到文件中,按esc退出编辑模式,输入:wq保存退出(这里的JAVA_HOME以自己实际的目录为准)

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

```

  

全局变量立即生效

```
source /etc/profile
5、查看安装jdk是否成功
java -version
```

================================================
FILE: doc/Devops/Centos下如何安装MySQL5.7.md
================================================
## [Centos下如何安装MySQL5.7](https://www.cnblogs.com/wherehappens/articles/15055614.html)



####  

1、查看rpm包

`rpm-qa|grep mysql` 若有可用 `rpm-e`卸载

```
[root@4WAN_1LAN_IPSec_VPN_Router ~]# rpm -qa|grep mysql
```

查找是否有mysql

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

```
[root@4WAN_1LAN_IPSec_VPN_Router ~]# find / -name mysql
/run/lock/subsys/mysql
/etc/rc.d/init.d/mysql
/usr/bin/mysql
/usr/local/mysql-5.7.35-el7-x86_64/bin/mysql
/usr/local/mysql-5.7.35-el7-x86_64/include/mysql
/usr/local/mysql
/usr/local/mysql/bin/mysql
/usr/local/mysql/include/mysql
/data/mysql
/data/mysql/data/mysql
[root@4WAN_1LAN_IPSec_VPN_Router ~]# whereis mysql
mysql: /usr/bin/mysql /usr/local/mysql /usr/local/mysql/bin/mysql
```

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

## 2、卸载CentOS7系统自带mariadb

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

```
# 查看系统自带的Mariadb
# rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
# 卸载系统自带的Mariadb
# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
# 删除etc目录下的my.cnf ,一定要删掉,等下再重新建,之前我将就用这个文件,后面改配置各种不生效
# rm /etc/my.cnf
```

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

## 3、检查有无安装过mysql 用户组,没有的话创建

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

```
//检查mysql 用户组是否存在
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql

// 创建mysql 用户组和用户
groupadd mysql
useradd -r -g mysql mysql
```

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

```
4、下载安装,从官网安装下载mysql包
```

1. `cd /usr/local/  -- 进入local目录,下载mysql tar.gz包`
2. `# wget下载或者本地下载后上传`

```
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.35-el7-x86_64.tar.gz
这里的下载连接:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.35-el7-x86_64.tar.gz,去mysql官网下获取
```

![img](https://img2020.cnblogs.com/blog/2124930/202107/2124930-20210724162240777-615887897.png)

 

 |

|

![img](https://img2020.cnblogs.com/blog/2124930/202107/2124930-20210724162357317-995161806.png)

 

 ![img](https://img2020.cnblogs.com/blog/2124930/202107/2124930-20210724162520114-253743396.png)

 

 

```
5、解压安装mysql
tar -zxvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
```

**6、将解压的文件做文件改名**

```
mv mysql-5.7.31-linux-glibc2.12-x86_64 mysql
7、更改mysql 目录下所有文件夹所属的用户组和用户,以及权限

chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql

```

![img](https://img2020.cnblogs.com/blog/2124930/202107/2124930-20210724163429461-270271939.png)

 

 

```
8、创建mysql相关目录
 
```

1. `mkdir -p /data/mysql/{data,logs,tmp}`
2. `# 更改文件夹所属`
3. `chown -R mysql.mysql /data/mysql/`

```
9、创建mysql配置文件my.cnf
```

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

```
vi /etc/my.cnf
# 简单模板如下:
[client]
port = 3306
socket = /data/mysql/tmp/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql 
datadir = /data/mysql/data 
port = 3306 
socket = /data/mysql/tmp/mysql.sock
pid-file = /data/mysql/tmp/mysqld.pid
tmpdir = /data/mysql/tmp 
skip_name_resolve = 1
symbolic-links=0
max_connections = 2000
group_concat_max_len = 1024000
sql_mode = NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
lower_case_table_names = 1
log_timestamps=SYSTEM
character-set-server = utf8
interactive_timeout = 1800 
wait_timeout = 1800
max_allowed_packet = 32M
binlog_cache_size = 4M
sort_buffer_size = 2M
read_buffer_size = 4M
join_buffer_size = 4M
tmp_table_size = 96M
max_heap_table_size = 96M
max_length_for_sort_data = 8096
#logs
server-id = 1003306
log-error = /data/mysql/logs/error.log
slow_query_log = 1
slow_query_log_file = /data/mysql/logs/slow.log
long_query_time = 3
log-bin = /data/mysql/logs/binlog
binlog_format = row
expire_logs_days = 15
log_bin_trust_function_creators = 1
relay-log = /data/mysql/logs/relay-bin
relay-log-recovery = 1 
relay_log_purge = 1 
#innodb 
innodb_file_per_table = 1
innodb_log_buffer_size = 16M
innodb_log_file_size = 256M
innodb_log_files_in_group = 2
innodb_io_capacity = 2000
innodb_io_capacity_max = 4000
innodb_flush_neighbors = 0
innodb_flush_method = O_DIRECT
innodb_autoinc_lock_mode = 2
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_buffer_pool_size = 2G
```

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

10、配置mysql.server

```

```

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

```
cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysql
vi /etc/init.d/mysql
# 修改目录位置
basedir=/usr/local/mysql
datadir=/data/mysql/data
# 注册开机启动服务
chkconfig --add mysql
chkconfig --list
```

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

```

```

11、添加环境变量

```

echo "PATH=$PATH:/usr/local/mysql/bin " >> /etc/profile 
source /etc/profile

```

12、初始化mysql

```
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
# 临时密码保存在errlog中 
# 获取临时密码
more /data/mysql/logs/error.log |grep password
```

![img](https://img2020.cnblogs.com/blog/2124930/202107/2124930-20210724164648099-389709896.png)

 

 13、启动mysql服务,并修改密码

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

```
# 启动mysql服务
service mysql start
# 使用初始密码登录mysql服务 并修改密码
mysql -uroot -p
alter user 'root'@'localhost' identified by 'root';
flush privileges;
```

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

![img](https://img2020.cnblogs.com/blog/2124930/202107/2124930-20210724165100493-1870359410.png)

 

 

```
[root@4WAN_1LAN_IPSec_VPN_Router ~]# /usr/local/mysql/support-files/mysql.server start
Starting MySQL.. SUCCESS! 
```

 

```

```

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

```
[root@4WAN_1LAN_IPSec_VPN_Router ~]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
[root@4WAN_1LAN_IPSec_VPN_Router ~]# service mysql restart
/etc/init.d/mysql: line 46: /usr/local/mysql: Is a directory
/etc/init.d/mysql: line 47: /data/mysql/data: Is a directory
/etc/init.d/mysql: line 46: /usr/local/mysql: Is a directory
/etc/init.d/mysql: line 47: /data/mysql/data: Is a directory
Shutting down MySQL.. SUCCESS! 
/etc/init.d/mysql: line 46: /usr/local/mysql: Is a directory
/etc/init.d/mysql: line 47: /data/mysql/data: Is a directory
Starting MySQL.. SUCCESS! 
[root@4WAN_1LAN_IPSec_VPN_Router ~]# mysql -u root -p
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
[root@4WAN_1LAN_IPSec_VPN_Router ~]# yum install libncurses*
上次元数据过期检查:1:29:23 前,执行于 2021年07月24日 星期六 00时50分20秒。
软件包 ncurses-libs-6.1-9.20180224.el8.x86_64 已安装。
依赖关系解决。
===========================================================================================================
 软件包                         架构              版本                             仓库               大小
===========================================================================================================
安装:
 ncurses-c++-libs               x86_64            6.1-9.20180224.el8               baseos             58 k
 ncurses-compat-libs            x86_64            6.1-9.20180224.el8               baseos            328 k

事务概要
===========================================================================================================
安装  2 软件包

总下载:386 k
安装大小:1.1 M
确定吗?[y/N]: y
下载软件包:
(1/2): ncurses-c++-libs-6.1-9.20180224.el8.x86_64.rpm                      188 kB/s |  58 kB     00:00    
(2/2): ncurses-compat-libs-6.1-9.20180224.el8.x86_64.rpm                   394 kB/s | 328 kB     00:00    
-----------------------------------------------------------------------------------------------------------
总计                                                                       288 kB/s | 386 kB     00:01     
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                            1/1 
  安装    : ncurses-compat-libs-6.1-9.20180224.el8.x86_64                                              1/2 
  安装    : ncurses-c++-libs-6.1-9.20180224.el8.x86_64                                                 2/2 
  运行脚本: ncurses-c++-libs-6.1-9.20180224.el8.x86_64                                                 2/2 
  验证    : ncurses-c++-libs-6.1-9.20180224.el8.x86_64                                                 1/2 
  验证    : ncurses-compat-libs-6.1-9.20180224.el8.x86_64                                              2/2 

已安装:
  ncurses-c++-libs-6.1-9.20180224.el8.x86_64         ncurses-compat-libs-6.1-9.20180224.el8.x86_64        

完毕!
[root@4WAN_1LAN_IPSec_VPN_Router ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.35-log

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> alter user 'root'@'localhost' identified by 'Admin@2020@#!';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)
```

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

```

```

 参看文档:http://www.xiaoguan.net/posts/show/426

​         https://mp.weixin.qq.com/s/ybdY6cJNG2lC4FzBsc19ag

================================================
FILE: doc/Devops/Docker cp 命令.md
================================================
Docker cp 命令
 Docker 命令大全Docker 命令大全

docker cp :用于容器与主机之间的数据拷贝。

语法
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
OPTIONS说明:

-L :保持源目标中的链接

实例
将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。

docker cp /www/runoob 96f7f14e99ab:/www/
将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。

docker cp /www/runoob 96f7f14e99ab:/www
将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。

docker cp  96f7f14e99ab:/www /tmp/

================================================
FILE: doc/Devops/Dockerfile
================================================
# 基础镜像
FROM openjdk:8-jdk-alpine
# author
MAINTAINER wenbin
# 复制jar文件到路径
ADD manager.jar manager.jar
# 时间
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
# 启动服务
ENTRYPOINT ["java","-jar","/manager.jar"]
# 暴露端口
EXPOSE 8080


================================================
FILE: doc/Devops/docker 安装 mysql5.7.md
================================================
docker 安装 mysql5.7


1.安装mysql5.7 docker镜像
拉取官方mysql5.7镜像 

docker pull mysql:5.7


查看镜像库

docker images


2.创建mysql容器
在本地创建mysql的映射目录

mkdir -p /root/mysql/data /root/mysql/logs /root/mysql/conf
在/root/mysql/conf中创建 *.cnf 文件(叫什么都行)

touch my.cnf
创建容器,将数据,日志,配置文件映射到本机

docker run -p 3306:3306 --name mysql5.7 -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysqladmin -d mysql:5.7

-d: 后台运行容器

-p 将容器的端口映射到本机的端口

-v 将主机目录挂载到容器的目录

-e 设置参数



启动mysql容器

docker start mysql5.7


 查看/root/mysql/data目录是否有数据文件



使用工具连接测试

 

测试成功
————————————————
版权声明:本文为CSDN博主「疯狂的狮子Li」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40461281/article/details/92610876

================================================
FILE: doc/Devops/docker 搭建Mysql集群.md
================================================
# [docker 搭建Mysql集群](https://www.cnblogs.com/zhenghongxin/p/9228101.html)

**docker基本指令:**

更新软件包

```
yum -y update
```

安装Docker虚拟机(centos 7)

```
yum install -y docker
```

运行、重启、关闭Docker虚拟机

```
service docker start
service docker stop
```

搜索镜像

```
 docker search 镜像名称
```

下载镜像

```
docker pull 镜像名称
```

查看镜像

```
docker images
```

删除镜像

```
docker rmi 镜像名称
```

运行容器

```
docker run 启动参数  镜像名称
```

查看容器列表

```
docker ps -a
```

当我们想要使用java环境,我们可以这么操作:

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

```
搜索:[root@VM_71_225_centos ~]# docker search java
INDEX       NAME                                                   DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/node                                         Node.js is a JavaScript-based platform for...   5752      [OK]
docker.io   docker.io/tomcat                                       Apache Tomcat is an open source implementa...   1891      [OK]
docker.io   docker.io/java                                         Java is a concurrent, class-based, and obj...   1745      [OK]
docker.io   docker.io/openjdk                                      OpenJDK is an open-source implementation o...   1031      [OK]
```

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

```
下载:[root@VM_71_225_centos ~]# docker pull docker.io/java
Using default tag: latest
Trying to pull repository docker.io/library/java ...
latest: Pulling from docker.io/library/java
5040bd298390: Downloading [=>                                                 ] 1.572 MB/51.36 MB
```

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

```
运行:[root@VM_71_225_centos ~]# docker run -it --name myjava docker.io/java bash
root@25623e12b759:/# java
```

- **-i:** 以交互模式运行容器,通常与 -t 同时使用;
- **-t:** 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

**安装PXC集群(在此不做mysql pxc集群与replication集群的方案优劣说明,在此选用pxc集群方案[多节点备份与强联合性]):**

安装PXC镜像

```
docker pull percona/percona-xtradb-cluster
```

查看本地镜像

```
[root@VM_71_225_centos ~]# docker images
REPOSITORY                                 TAG                 IMAGE ID            CREATED             SIZE
docker.io/hello-world                      latest              e38bc07ac18e        2 months ago        1.85 kB
docker.io/percona/percona-xtradb-cluster   latest              f1439de62087        3 months ago        413 MB
docker.io/java                             latest              d23bdf5b1b1b        17 months ago       643 MB
```

docker.io/percona/percona-xtradb-cluster 太长,进行改名:

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

```
[root@VM_71_225_centos ~]# docker tag percona/percona-xtradb-cluster pxc
[root@VM_71_225_centos ~]# docker images
REPOSITORY                                 TAG                 IMAGE ID            CREATED             SIZE
docker.io/hello-world                      latest              e38bc07ac18e        2 months ago        1.85 kB
docker.io/percona/percona-xtradb-cluster   latest              f1439de62087        3 months ago        413 MB
pxc                                        latest              f1439de62087        3 months ago        413 MB
docker.io/java                             latest              d23bdf5b1b1b        17 months ago       643 MB
```

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

创建net1网段:

```
docker network create --subnet=172.18.0.0/16 net1
```

创建五个数据卷(pxc无法直接存取宿组机的数据,所以创建五个docker数据卷)

```
docker volume create v1
docker volume create v2
docker volume create v3
docker volume create v4
docker volume create v5
```

查看数据卷位置:

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

```
[root@VM_71_225_centos code]# docker inspect v1
[
    {
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/v1/_data",
        "Name": "v1",
        "Options": {},
        "Scope": "local"
    }
]
```

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

创建5节点的PXC集群

```
#创建第1个MySQL节点
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -v v1:/var/lib/mysql -v backup:/data --privileged --name=node1 --net=net1 --ip 172.18.0.2 pxc
```

等待2分钟后,再创建第二个节点,等待第一个节点实例化完毕后,才能开启第二个节点实例,不然会瞬间停止

创建其他节点:

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

```
#创建第2个MySQL节点
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v2:/var/lib/mysql -v backup:/data --privileged --name=node2 --net=net1 --ip 172.18.0.3 pxc
#创建第3个MySQL节点
docker run -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v3:/var/lib/mysql --privileged --name=node3 --net=net1 --ip 172.18.0.4 pxc
#创建第4个MySQL节点
docker run -d -p 3309:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v4:/var/lib/mysql --privileged --name=node4 --net=net1 --ip 172.18.0.5 pxc
#创建第5个MySQL节点
docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v5:/var/lib/mysql -v backup:/data --privileged --name=node5 --net=net1 --ip 172.18.0.6 pxc
```

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

测试在任意mysql节点创建数据库:

```
mysql -h 172.18.0.3 -uroot -pabc123456

mysql> create database test;
Query OK, 1 row affected (0.03 sec)
```

登录其他节点数据库,能看到已经进行了同步,构成简单的mysql集群

**安装Haproxy进行高可用与负载均衡**

 拉取haproxy

```
docker pull haproxy
```

编写Haproxy配置文件

```
vi /home/soft/haproxy.cfg
```

配置文件如下:

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

```
global
    #工作目录
    chroot /usr/local/etc/haproxy
    #日志文件,使用rsyslog服务中local5日志设备(/var/log/local5),等级info
    log 127.0.0.1 local5 info
    #守护进程运行
    daemon

defaults
    log global
    mode    http
    #日志格式
    option  httplog
    #日志中不记录负载均衡的心跳检测记录
    option  dontlognull
    #连接超时(毫秒)
    timeout connect 5000
    #客户端超时(毫秒)
    timeout client  50000
    #服务器超时(毫秒)
    timeout server  50000

#监控界面   
listen  admin_stats
    #监控界面的访问的IP和端口
    bind  0.0.0.0:8888
    #访问协议
    mode        http
    #URI相对地址
    stats uri   /dbs
    #统计报告格式
    stats realm     Global\ statistics
    #登陆帐户信息
    stats auth  admin:abc123456
#数据库负载均衡
listen  proxy-mysql
    #访问的IP和端口
    bind  0.0.0.0:3306  
    #网络协议
    mode  tcp
    #负载均衡算法(轮询算法)
    #轮询算法:roundrobin
    #权重算法:static-rr
    #最少连接算法:leastconn
    #请求源IP算法:source 
    balance  roundrobin
    #日志格式
    option  tcplog
    #在MySQL中创建一个没有权限的haproxy用户,密码为空。Haproxy使用这个账户对MySQL数据库心跳检测
    option  mysql-check user haproxy
    server  MySQL_1 172.18.0.2:3306 check weight 1 maxconn 2000  
    server  MySQL_2 172.18.0.3:3306 check weight 1 maxconn 2000  
    server  MySQL_3 172.18.0.4:3306 check weight 1 maxconn 2000 
    server  MySQL_4 172.18.0.5:3306 check weight 1 maxconn 2000
    server  MySQL_5 172.18.0.6:3306 check weight 1 maxconn 2000
    #使用keepalive检测死链
    option  tcpka  
```

[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);)

创建第1个Haproxy负载均衡服务器

```
docker run -it -d -p 4001:8888 -p 4002:3306 -v /home/soft/haproxy:/usr/local/etc/haproxy --name h1 --privileged --net=net1 --ip 172.18.0.7 haproxy
```

进入h1容器,启动Haproxy

```
docker exec -it h1 bash
haproxy -f /usr/local/etc/haproxy/haproxy.cfg
```

查看是否启动成功:

访问http://ip:4001/dbs

![img](https://images2018.cnblogs.com/blog/608476/201807/608476-20180701201220668-1695009593.png)

 安装keepalive实现双击热备 

================================================
FILE: doc/Devops/docker.md
================================================

------MySQL 

1.拉取镜像。

docker pull mysql:8

2.运行镜像,name、端口和密码可自行修改。

docker run -p 3307:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=mysqladmin -d mysql:8

3.进入容器终端。

docker exec -it mysql8 bash

4.客户端连接mysql。

mysql -uroot -pmysqladmin 
  

------kkfileview
  
docker pull keking/kkfileview
docker run -it -p 8012:8012 keking/kkfileview  

docker run -p 8012:8012 --name kkfileview -d keking/kkfileview  





------manager

ps -ef |grep java

nohup java -jar manager.jar --server.port=8081  > log8081.log &  | tail -f log8081.log &

nohup java -jar manager.jar --server.port=8081  > log8081.log &  
tail -f log8081.log &


nohup java -jar manager.jar --server.port=8082  > log8081.log & 
nohup java -jar manager.jar --server.port=8083  > log8081.log & 

================================================
FILE: doc/Devops/docker安装Redis并设置密码.md
================================================
# [docker安装Redis并设置密码](https://www.cnblogs.com/zhangzimo/p/12753563.html)

## 1.搜索镜像

```
docker search redis
```

## 2.拉取镜像

```
docker pull redis
```

## 3.创建Redis容器并设置密码

```
docker run --name redis -p 6380:6379 redis-test --requirepass 123456

docker run -itd --name redis-v4-6379 -p 6379:6379 redis:4.0

docker run -itd --name redis-6379 -p 6379:6379 redis:5.0  --requirepass 123456

#前边是宿主机端口 后面是docker使用的端口
```

## 4.备注

为现有的redis创建密码或修改密码的方法:

1.进入redis的容器 docker exec -it 容器ID bash

2.进入redis目录 cd /usr/local/bin 

3.运行命令:redis-cli

4.查看现有的redis密码:config get requirepass

5.设置redis密码config set requirepass ****(****为你要设置的密码)

6.若出现(error) NOAUTH Authentication required.错误,则使用 auth 密码 来认证密码

================================================
FILE: doc/Devops/部署文档
================================================
1. 使用IDE导入本项目,IDE需要安装lombok插件
2. 下载redis 启动redis
3. 创建数据库, 导入***.sql
4. 配置application-dev.yml中的redis以及数据库连接
5. 运行项目
   1、直接运行CompanyProjectApplication.java
   2、项目根目录下执行mvn -X clean package -Dmaven.test.skip=true编译打包,然后执行java -jar manager.jar
6. 接口文档访问 http://localhost:8080/doc.html
7. 登录地址 http://localhost:8080/index/login 用户名密码:admin/123456
8. 代码生成使用:
   1、 application.yml中配置: 使用代码生成模块时 指定要生成的表存在于哪种数据库。project.database=mysql
   2、点击代码生成菜单,生成一个或多个表的代码,下载到本地
   3、解压下载的代码,直接复制main文件夹到本地项目的src目录下
   4、数据库执行sql,生成菜单
   5、修改角色所绑定的菜单的权限,刷新页面查看

================================================
FILE: doc/部署文档
================================================
1. 使用IDE导入本项目,IDE需要安装lombok插件
2. 下载redis 启动redis
3. 创建数据库, 导入***.sql
4. 配置application-dev.yml中的redis以及数据库连接
5. 运行项目
   1、直接运行CompanyProjectApplication.java
   2、项目根目录下执行mvn -X clean package -Dmaven.test.skip=true编译打包,然后执行java -jar manager.jar
6. 接口文档访问 http://localhost:8080/doc.html
7. 登录地址 http://localhost:8080/index/login 用户名密码:admin/123456
8. 代码生成使用:
   1、 application.yml中配置: 使用代码生成模块时 指定要生成的表存在于哪种数据库。project.database=mysql
   2、点击代码生成菜单,生成一个或多个表的代码,下载到本地
   3、解压下载的代码,直接复制main文件夹到本地项目的src目录下
   4、数据库执行sql,生成菜单
   5、修改角色所绑定的菜单的权限,刷新页面查看
   
   
   

chcp 65001
@echo off
set /p gd=输入要清除历史提交信息的仓库目录的绝对路径:
echo 待处理的路径:%gd%
set /p gm=输入提交说明:
pushd
cd /d %gd%
git checkout --orphan latest_branch
git add -A
git commit -am "%gm%"
git branch -D master
git branch -m master
git push -f origin master
git pull
echo "已清除全部的历史记录!"
echo "查看新仓库信息:"
git log --pretty=oneline
git branch -a
git tag
git ls-remote --tags
pause
popd
exit


git checkout --orphan latest_branch
git add -A
git commit -am "%gm%"
git branch -D main
git branch -m main
git push -f origin main
git pull

================================================
FILE: doc/重置master分支.md
================================================
重置master分支:
git checkout --orphan latest_branch
git add -A
git commit -am "commit message"
git branch -D master
git branch -m master


git branch -m latest_branch master
git push -f origin master 
git push origin latest_branch:master -f
git reset --hard origin/master

git checkout --orphan latest_branch
git push -f origin latest_branch
git push -f origin master --force

有时候我们项目中会配置很多内容,在新起一个项目的时候,重新从头配置比较浪费时间,但是直接将原来项目拿来修改远程地址后,项目里还会保存之前的提交历史和tag;这个时候我们就需要下面的操作来清空这些内容。

1.创建新分支(这个命名是基于当前所在分支新建一个赤裸裸的分支,没有任何的提交历史,但是当前分支的内容一应俱全。新建的分支,严格意义上说,还不是一个分支,因为HEAD指向的引用中没有commit值,只有在进行一次提交后,它才算得上真正的分支。)

  git checkout --orphan latest_branch

2.添加所有文件

  git add .

3.commit代码

  git commit -m "xxx"

4.删除原来的master分支

  git branch -D master
    git branch -D main

5.把当前分支重命名为master

  git branch -m master 
  git branch -m main 

6.最后把代码推送到远程仓库(有些仓库有master分支保护,不允许强制push,需要在远程仓库项目里暂时把项目保护关掉才能推送)

  git push -f origin master
    git push -f origin main
 
  
 
1、.git目录过大
要解决.git目录过大的问题,可以尝试以下方法:
使用git gc命令清理不再需要的缓存。这将帮助减小仓库的大小。
在命令行中输入以下命令:

git gc --prune=now --aggressive
1
使用git repack -ad命令来重新打包已经提交的文件。
这将有助于减小仓库的大小。在命令行中输入以下命令:

git repack -ad 
2、灵活使用 .gitignore 文件
及时排除仓库不需要的特殊目录或者文件
如下,忽略dist和build文件下内容,忽略格式为zip和exe的文件

/dist
/build
*.zip
*.exe 
3、查看仓库下文件大小
数字1代表查看当前1级子目录

du -d 1 -h 







  
方法一:强制回退法

1. 克隆仓库,但记住不可以加--depth=1这类选项;

2. 使用 git log 命令查询要回滚的 commit_id;

3. 查找最早一次提交到的commit_id;   


4. 备份原仓库目录下所有文件及文件夹(.git文件夹除外);

5. 强制还原,执行命令:git reset --hard commit_id,之后 HEAD 就会指向此次的提交记录;
git reset --hard 7ee28e8437002722a9d5ff0c7e88ff8cc66dc9de

6. 删除仓库目录下所有文件和文件夹,去除你备份的文件中包含隐私信息的部分,并还原至原仓库目录下;

7. 执行提交新commit前的常规操作:git add . 和 git commit -m "<...>";
git add .
git commit -m "xxx"

8. 强制推送到github远程仓库:git push origin HEAD --force;
git push origin HEAD --force

9. 此时只剩下第一次提交和本次提交记录,基本达到清空目的: 

 方法二:分支替换法

1. 同方法一克隆仓库;

2. 将当前分支指向一个空分支 latest_branch:git checkout --orphan latest_branch;

3. 备份原仓库目录下所有文件及文件夹(.git文件夹除外),之后清空该目录(.git文件夹除外);

4. 去除你备份的文件中包含隐私信息的部分,并还原至原仓库目录下,最后重新添加:git add -A;

5. 提交更改:git commit -am "<...>";

6. 删除原分支:git branch -D master (新版的github默认分支是main了,请根据实际情况更改,下同);

7. 将现有临时分支切换到主分支:git branch -m master;

8. 强制推送到远程:git push -f origin master --force
————————————————

                            本文是博主原创文章,未经许可不准转载!
                        
原文链接:https://blog.csdn.net/u012783994/article/details/126339284

================================================
FILE: java_project_template/jun_api_service_admin/Dockerfile
================================================
# 基础镜像
FROM openjdk:8-jre
# author
MAINTAINER wenbin
# 复制jar文件到路径
ADD manager.jar manager.jar
# 时间
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
# 启动服务
ENTRYPOINT ["java","-jar","/manager.jar"]
# 暴露端口
EXPOSE 8080


================================================
FILE: java_project_template/jun_api_service_admin/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.jun.plugin</groupId>
	<version>1.0</version>
    <artifactId>jun_api_service_admin</artifactId>
    
    <properties>
        <java.version>1.8</java.version>
        <mybatis-plus.version>3.4.0</mybatis-plus.version>
        <mybatis-plus-dynamic.version>2.5.5</mybatis-plus-dynamic.version>
        <ojdbc6.version>12.1.0.1-atlassian-hosted</ojdbc6.version>
        <sqlserver.version>4.0</sqlserver.version>
        <commons.lang.version>2.6</commons.lang.version>
        <commons.io.version>2.5</commons.io.version>
        <commons.configuration.version>1.10</commons.configuration.version>
        <velocity.version>1.7</velocity.version>
        <quartz.version>2.3.2</quartz.version>
        <shiro.version>1.4.0</shiro.version>
        <druid.version>1.1.10</druid.version>
        <fastjson.version>1.2.74</fastjson.version>
        <thymeleaf-shiro.version>2.0.0</thymeleaf-shiro.version>
        <knife4j.version>2.0.2</knife4j.version>
        <easy-captcha.version>1.6.2</easy-captcha.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-groovy-templates</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation -->
		<dependency>
		    <groupId>org.springframework.boot</groupId>
		    <artifactId>spring-boot-starter-validation</artifactId>
		    <version>2.5.14</version>
		</dependency>
        
        <!-- https://mvnrepository.com/artifact/junit/junit -->
		<dependency>
		    <groupId>junit</groupId>
		    <artifactId>junit</artifactId>
		    <version>4.13.2</version>
		    <scope>test</scope>
		</dependency>
        
        <!--数据源-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>${druid.version}</version>
        </dependency>
        <!--redis 依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        
        <!--数据库持久化 及 插件依赖-->
        <!-- <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>${mybatis-plus-dynamic.version}</version>
        </dependency> -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>${mybatis-plus.version}</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>${mybatis-plus.version}</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>${ojdbc6.version}</version>
        </dependency>
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>sqljdbc4</artifactId>
            <version>${sqlserver.version}</version>
            <scope>runtime</scope>
        </dependency>
        		<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus -->
<!-- 		<dependency>
		    <groupId>com.baomidou</groupId>
		    <artifactId>mybatis-plus</artifactId>
		    <version>3.5.2</version>
		</dependency> -->
        

<!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-all -->
<!--<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.5</version>
</dependency>-->
		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.13.3</version>
</dependency>
	<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.13.3</version>
</dependency>
	<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.13.3</version>
</dependency>
	<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml -->
<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-yaml</artifactId>
    <version>2.13.3</version>
</dependency>
	<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml -->
<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
    <version>2.13.3</version>
</dependency>
		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-properties -->
<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-properties</artifactId>
    <version>2.13.3</version>
</dependency>
	<!-- https://mvnrepository.com/artifact/org.dom4j/dom4j -->
<dependency>
    <groupId>org.dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>2.1.3</version>
</dependency>
	<!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib -->
<!-- <dependency>
    <groupId>net.sf.json-lib</groupId>
    <artifactId>json-lib</artifactId>
    <version>2.4</version>
</dependency> -->
	<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.9.0</version>
</dependency>

		
		
		
        

        <!--shiro 依赖-->
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-spring</artifactId>
            <version>${shiro.version}</version>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--fastJson-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
        </dependency>

        <!--thymeleaf默认使用html5规则标签必须闭合等 使用次此包正常解析-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.theborakompanioni</groupId>
            <artifactId>thymeleaf-extras-shiro</artifactId>
            <version>${thymeleaf-shiro.version}</version>
        </dependency>
        


        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>${knife4j.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>${commons.lang.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>${commons.io.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-configuration</groupId>
            <artifactId>commons-configuration</artifactId>
            <version>${commons.configuration.version}</version>
        </dependency>
        <dependency>
            <artifactId>velocity</artifactId>
            <groupId>org.apache.velocity</groupId>
            <version>${velocity.version}</version>
        </dependency>
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>${quartz.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>com.mchange</groupId>
                    <artifactId>c3p0</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.zaxxer</groupId>
                    <artifactId>HikariCP-java6</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.github.whvcse</groupId>
            <artifactId>easy-captcha</artifactId>
            <version>${easy-captcha.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.13</version>
        </dependency>
        
        <!-- JWT -->
        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>3.3.0</version>
        </dependency>

        <!-- Redis-Jedis -->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
        </dependency>
    </dependencies>

    <!-- 依赖声明 -->
    <dependencyManagement>
        <dependencies>
            <!-- SpringBoot的依赖配置-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <!-- <version>2.6.9</version> -->
                <!-- <version>2.3.12.RELEASE</version> -->
                <!-- <version>2.4.13</version> -->
                <version>2.5.14</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.8.0</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.6.2</version>
                <!-- 	            <version>1.3.0.BUILD-SNAPSHOT</version> -->
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>aliyun-repos</id>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>aliyun-plugin</id>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
</project>


================================================
FILE: java_project_template/jun_api_service_admin/src/main/java/com/jun/plugin/ApiServiceApplication.java
================================================
package com.jun.plugin;

import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.core.env.Environment;

import java.net.InetAddress;
@Slf4j
@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
@MapperScan("com.jun.plugin.**.mapper")
@ServletComponentScan(basePackages = {"com.jun.plugin.**.filter"})
public class ApiServiceApplication {

    public static void main(String[] args) throws Exception {
        ConfigurableApplicationContext application = SpringApplication.run(ApiServiceApplication.class, args);

        Environment env = application.getEnvironment();
        log.info("\n----------------------------------------------------------\n\t" +
                        "Application '{}' is running! Access URLs:\n\t" +
                        "Api Test Json: \thttp://{}:{}/public/json\n\t" +
                        "Api Code Generator: \thttp://{}:{}/generator/list.html\n\t" +
                        "----------------------------------------------------------",
                env.getProperty("spring.application.name"),
                InetAddress.getLocalHost().getHostAddress(),
                env.getProperty("server.port"),
                InetAddress.getLocalHost().getHostAddress(),
                env.getProperty("server.port"));
    }


    @Bean
    public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
        return args -> {
            System.out.println("Let's inspect the beans provided by Spring Boot:");
            String[] beanNames = ctx.getBeanDefinitionNames();
            System.err.println("beanNames size = "+ beanNames.length);
            for (String beanName : beanNames) {
                //System.err.println(beanName);
                /*
                 * Object bean = ctx.getBean(beanName); System.out.println(bean);
                 * System.out.println();
                 */
            }

        };
    }

}


================================================
FILE: java_project_template/jun_api_service_admin/src/main/resources/application-dev.yml
================================================
# 开发环境配置
spring:
  thymeleaf:
    cache: false
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://localhost:3306/db_qixing?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2b8
    username: root
    password: 
    driver-class-name: com.mysql.cj.jdbc.Driver
#    initialSize: 10
#    minIdle: 10
#    maxActive: 40
#    maxWait: 60000
#    test-on-borrow: true
#    test-while-idle: true
#    dynamic:
#      primary: master #设置默认的数据源或者数据源组,默认值即为master
#      datasource:
#        master:
#          username: root
#          password: 
#          driver-class-name: com.mysql.cj.jdbc.Driver
#          url: jdbc:mysql://localhost:3306/test666?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2b8
#        oracle:
#          username: root
#          password: 
#          driver-class-name: oracle.jdbc.driver.OracleDriver
#          url: jdbc:oracle:thin:@localhost:1521/company_project
#        sqlServer:
#          username: sa
#          password: 123456
#          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
#          url: jdbc:sqlserver://localhost:1433;databaseName=company_project
  redis:
    host: localhost # Redis服务器地址
    database: 0 # Redis数据库索引(默认为0)
    port: 6379 # Redis服务器连接端口
    password: # Redis服务器连接密码(默认为空)
    jedis:
      pool:
        max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
        max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
        max-idle: 8 # 连接池中的最大空闲连接
        min-idle: 0 # 连接池中的最小空闲连接
    timeout: 13000 # 连接超时时间(毫秒

filepath: "D:\\files\\"
file:
  #文件上传目录 绝对路径 末尾请加 /
  path: D:/files/ #windows
  #path: /home/data/files/ #linux
  #文件预览、下载的url, 末尾请勿加 /
  url: http://qixing.vip321.vip/files
  qiniuAccessKey: ts0n9OF16ekFkDkZTTlpmyPI-tP3HKQDyw_GR4o2
  qiniuBucketName: qixing-files
  qiniuDomain: http://qiniu.vip321.vip
  qiniuPrefix: upload
  qiniuSecretKey: c-OjjwV3ZgzCQwxc6W_bsTFKuDg8qeyqohyJU0RL
  type: 1

  
# AES密码加密私钥(Base64加密)
encryptAESKey: V2FuZzkyNjQ1NGRTQkFQSUpXVA==
# JWT认证加密私钥(Base64加密)
encryptJWTKey: U0JBUElKV1RkV2FuZzkyNjQ1NA==
# AccessToken过期时间-5分钟-5*60(秒为单位)
accessTokenExpireTime: 300
# RefreshToken过期时间-30分钟-30*60(秒为单位)
refreshTokenExpireTime: 1800
# Shiro缓存过期时间-5分钟-5*60(秒为单位)(一般设置与AccessToken过期时间一致)
shiroCacheExpireTime: 300

================================================
FILE: java_project_template/jun_api_service_admin/src/main/resources/application.yml
================================================
# 端口
server:
  port: 8088

spring:
  profiles:
    active: dev
  mvc:
    throw-exception-if-no-handler-found: true
  resources:
    add-mappings: false
  application:
    name: jun_springboot_api
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  # 文件大小限制
  servlet:
    multipart:
      max-file-size: 10MB
      max-request-size: 100MB
  # redis token信息
  redis:
    key:
      prefix:
        userToken: "user:token:"
        passwordError: "user:password:error:"
        permissionRefresh: "user:token:permissionRefresh:"
      expire:
        userToken: 604800 # 7天 7*24*3600
        passwordError: 3600 # 一个小时
        permissionRefresh: 604800 # 7天 7*24*3600
    allowMultipleLogin: true # 允许多处登陆

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  mapper-locations: classpath:mapper/${project.database}/**/*.xml,classpath:mapper/*.xml
  global-config:
    db-config:
      logic-delete-value: 0
      logic-not-delete-value: 1
      logic-delete-field: deleted

#使用代码生成模块时 指定要生成的表存在于哪种数据库,可选值有【mysql、oracle、sqlServer】
project:
  database: mysql

shiro:
  enable: false

================================================
FILE: java_project_template/jun_api_service_admin/src/main/resources/logback-spring.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 这里面定义了 CONSOLE_LOG_PATTERN, FILE_LOG_PATTERN 等日志格式, 还定义了一些日志级别 -->
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>

    <property name="LOG_LEVEL" value="INFO"/>
    <property name="LOG_PATH" value="log"/>
    <property name="LOG_FILE" value="project_manager.log"/>
    <property name="LOG_HISTORY" value="project_manager.%d{yyyy-MM-dd}.log"/>

    <!--日志输出到控制台-->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <!--日志输出到文件-->
    <springProfile name="!dev">
        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${LOG_PATH}/${LOG_FILE}</file>  <!-- 可自己定义 -->
            <encoder>
                <pattern>${FILE_LOG_PATTERN}</pattern> <!-- 输出格式也可自己定义 -->
            </encoder>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${LOG_PATH}/${LOG_HISTORY}</fileNamePattern>
                <maxHistory>30</maxHistory>
            </rollingPolicy>
        </appender>
    </springProfile>

    <!--异步到文件-->
    <springProfile name="!dev">
        <appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">
            <discardingThreshold>0</discardingThreshold>
            <queueSize>500</queueSize>
            <appender-ref ref="FILE"/>
        </appender>
    </springProfile>


    <!--开发环境:打印控制台-->
    <springProfile name="dev">
        <!-- 打印sql -->
        <logger name="com.jun.plugin.system" level="DEBUG"/>
        <root level="${LOG_LEVEL}">
            <appender-ref ref="CONSOLE"/>
        </root>
    </springProfile>

    <!-- 输出格式 appender -->
    <springProfile name="!dev">
        <root level="${LOG_LEVEL}">
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="asyncFileAppender"/>
        </root>
    </springProfile>


</configuration>

================================================
FILE: java_project_template/jun_api_service_admin/src/main/resources/templates/biztest/list.html
================================================
<!DOCTYPE html>
<html lang="en" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"
      xmlns:th="http://www.thymeleaf.org">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <link rel="stylesheet" href="/layui/css/layui.css">
  <link rel="stylesheet" href="/css/custom.form.css">
</head>
<body>
<div class="panel panel-default operation" hidden>
  <div class="panel-heading title"></div>
<div class="layui-card-body">
<form class="layui-form " action="" lay-filter="info" style="width: 700px;margin-top: 10px">
      <input name="id" hidden/>
        <div class="layui-form-item">
      <label class="layui-form-label">客户名称</label>
      <div class="layui-input-block">
        <input type="cusname" name="cusname" placeholder="请输入客户名称" autocomplete="off" class="layui-input">
      </div>
    </div>
        <div class="layui-form-item">
      <label class="layui-form-label">注册金额</label>
      <div class="layui-input-block">
        <input type="money" name="money" placeholder="请输入注册金额" autocomplete="off" class="layui-input">
      </div>
    </div>
        <div class="layui-form-item">
      <label class="layui-form-label">客户描述</label>
      <div class="layui-input-block">
        <input type="cusdesc" name="cusdesc" placeholder="请输入客户描述" autocomplete="off" class="layui-input">
      </div>
    </div>
        <div class="layui-form-item">
      <label class="layui-form-label">客户全称</label>
      <div class="layui-input-block">
        <input type="fullname" name="fullname" placeholder="请输入客户全称" autocomplete="off" class="layui-input">
      </div>
    </div>
        <div class="layui-form-item">
      <label class="layui-form-label">客户性质</label>
      <div class="layui-input-block">
        <input type="dictCussex" name="dictCussex" placeholder="请输入客户性质" autocomplete="off" class="layui-input">
      </div>
    </div>
        <div class="layui-form-item">
      <label class="layui-form-label">注册时间</label>
      <div class="layui-input-block">
        <input type="registerDate" name="registerDate" placeholder="请输入注册时间" autocomplete="off" class="layui-input">
      </div>
    </div>
        <div class="layui-form-item">
      <label class="layui-form-label">客户类型</label>
      <div class="layui-input-block">
        <input type="dictCustype" name="dictCustype" placeholder="请输入客户类型" autocomplete="off" class="layui-input">
      </div>
    </div>
        <div class="layui-form-item">
      <label class="layui-form-label"></label>
      <div class="layui-input-block">
        <input type="refId" name="refId" placeholder="请输入" autocomplete="off" class="layui-input">
      </div>
    </div>
        <div class="layui-form-item">
      <label class="layui-form-label">关联子客户名称</label>
      <div class="layui-input-block">
        <input type="refTitleUsername" name="refTitleUsername" placeholder="请输入关联子客户名称" autocomplete="off" class="layui-input">
      </div>
    </div>
        <div class="layui-form-item">
      <label class="layui-form-label">备注</label>
      <div class="layui-input-block">
        <input type="remark" name="remark" placeholder="请输入备注" autocomplete="off" class="layui-input">
      </div>
    </div>
  <div class="layui-form-item">
  <div class="layui-input-block">
    <button type="submit" class="layui-btn" lay-submit="" lay-filter="submit">保存</button>
    <button  class="layui-btn layui-btn-primary" id="btn_cancel">返回</button>
  </div>
</div>
</form>
</div>
</div>

<div class="table_div">
  <div id="searchParam"  shiro:hasPermission="bizTest:list">
    <div class="layui-form-item">
      <div class="layui-input-inline">
        <input type="text" id="key" class="layui-input"  autocomplete="off" placeholder="请输入">
      </div>

      <div class="layui-input-inline ">
        <button class="layui-btn" onclick="search()"  id="search">查询</button>
        <button class="layui-btn"   id="export">导出全部</button>
      </div>
    </div>

  </div>
  <table class="layui-table" id="showTable" lay-filter="showTable" ></table>
</div>
<script type="text/html" id="toolbar">
  <div class="layui-btn-container">
    <button class="layui-btn layui-btn-sm" lay-event="add"  shiro:hasPermission="bizTest:add">添加</button>
    <button class="layui-btn layui-btn-sm" lay-event="batchDeleted" shiro:hasPermission="bizTest:delete">删除</button>
  </div>
</script>
<script type="text/html" id="tool">
  <a class="layui-btn layui-btn-xs" lay-event="edit" shiro:hasPermission="bizTest:update">编辑</a>
  <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del" shiro:hasPermission="bizTest:delete">删除</a>
</script>

</body>
</html>
<script src="/layui/layui.all.js"></script>
<script src="/js/core.util.js"></script>
<script>
  //获取token
  var token = CoreUtil.getData("access_token");
  //地址栏转义token中的#号
  var tokenQuery = token.replace("#", "%23");
  var tableIns1;
  var table = layui.table;
  var form = layui.form;
  var layer = layui.layer;
  var $ = jQuery = layui.jquery;
  var laydate = layui.laydate;

  layui.use(['table', 'layer', 'laydate'], function () {

    //加载table
    tableIns1 = table.render({
      elem: '#showTable'
      , contentType: 'application/json'
      , headers: {"authorization": token}
      , page: true //开启分页
      , url: '/bizTest/listByPage' //数据接口
      , method: 'POST'
      , parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
        return {
          "code": res.code, //解析接口状态
          "msg": res.msg, //解析提示文本
          "count": CoreUtil.isEmpty(res.data) ? 0 : res.data.total, //解析数据长度
          "data": CoreUtil.isEmpty(res.data) ? null : res.data.records //解析数据列表
        }
      }
      , cols: [
        [
          {type: 'checkbox', fixed: 'left'},
          {field: 'id', title: '', sort: true},
          {field: 'cusname', title: '客户名称', sort: true},
          {field: 'money', title: '注册金额', sort: true},
          {field: 'cusdesc', title: '客户描述', sort: true},
          {field: 'fullname', title: '客户全称', sort: true},
          {field: 'dictCussex', title: '客户性质', sort: true},
          {field: 'registerDate', title: '注册时间', sort: true},
          {field: 'dictCustype', title: '客户类型', sort: true},
          {field: 'refId', title: '', sort: true},
          {field: 'refTitleUsername', title: '关联子客户名称', sort: true},
          {field: 'remark', title: '备注', sort: true},
          {width: 120, toolbar: "#tool", title: '操作'}
        ]
      ]
      , toolbar: '#toolbar'
    });


    //表头工具
    table.on('toolbar(showTable)', function(obj){
      switch(obj.event){
        case 'batchDeleted':
          var checkStatus = table.checkStatus(obj.config.id);
          var data = checkStatus.data;
          if(data.length==0){
            layer.msg("请选择要批量删除的列");
          }else {
            var ids = [];
            $(data).each(function (index,item) {
              ids.push(item.id);
            });
            tipDialog(ids);
          }
          break;
        case 'add':
          $(".table_div").hide();
          $(".operation").show();
          $(".title").html("新增");
          $(".operation input[name=id]").val("");
          $(".operation input[name=cusname]").val("");
          $(".operation input[name=money]").val("");
          $(".operation input[name=cusdesc]").val("");
          $(".operation input[name=fullname]").val("");
          $(".operation input[name=dictCussex]").val("");
          $(".operation input[name=registerDate]").val("");
          $(".operation input[name=dictCustype]").val("");
          $(".operation input[name=refId]").val("");
          $(".operation input[name=refTitleUsername]").val("");
          $(".operation input[name=remark]").val("");
          break;
      };
    });
    //列操作
    table.on('tool(showTable)',function (obj) {
      var data = obj.data;
      switch (obj.event) {
        case 'del':
          var ids=[];
          ids.push(data.id);
          tipDialog(ids);
          break;
        case 'edit':
          $(".table_div").hide();
          $(".operation").show();
          $(".title").html("编辑");
          $(".operation input[name=id]").val(data.id);
          $(".operation input[name=cusname]").val(data.cusname);
          $(".operation input[name=money]").val(data.money);
          $(".operation input[name=cusdesc]").val(data.cusdesc);
          $(".operation input[name=fullname]").val(data.fullname);
          $(".operation input[name=dictCussex]").val(data.dictCussex);
          $(".operation input[name=registerDate]").val(data.registerDate);
          $(".operation input[name=dictCustype]").val(data.dictCustype);
          $(".operation input[name=refId]").val(data.refId);
          $(".operation input[name=refTitleUsername]").val(data.refTitleUsername);
          $(".operation input[name=remark]").val(data.remark);
          break;
      }
    });

    //导出
    $('#export').on('click', function () {
      //原先分页limit
      var exportParams = {
        limit: 10000,
        key: $("#key").val()
      };
      CoreUtil.sendPost("/bizTest/listByPage", exportParams, function (res) {
        //初始化渲染数据
        if (res.data != null && res.data.records != null) {
          table.exportFile(tableIns1.config.id, res.data.records, 'xls');
        }
      });
    });

    //删除
    var tipDialog=function (ids) {
      layer.open({
        content: "确定要删除么?",
        yes: function(index, layero){
          layer.close(index); //如果设定了yes回调,需进行手工关闭
          CoreUtil.sendDelete("/bizTest/delete",ids,function (res) {
            layer.msg(res.msg, {time:1000},function () {
              search();
            });
          });
        }
      });
    };

    //返回
    $("#btn_cancel").click(function() {
      $(".table_div").show();
      $(".operation").hide();
      return false;
    });

    //监听保存
    form.on('submit(submit)', function(data){
      if(data.field.id===undefined || data.field.id===null || data.field.id===""){
        CoreUtil.sendPost("/bizTest/add",data.field,function (res) {
          $(".table_div").show();
          $(".operation").hide();
          search();
        });
      }else {
        CoreUtil.sendPut("/bizTest/update",data.field,function (res) {
          $(".table_div").show();
          $(".operation").hide();
          search();
        });
      }

      return false;
    });
  });

  //执行查询
  function search() {
    //这里以搜索为例
    tableIns1.reload({
      where: { //设定异步数据接口的额外参数,任意设
        key: $("#key").val()
      }
      , page: {
        curr: 1 //重新从第 1 页开始
      }
    });
  };
</script>

================================================
FILE: java_project_template/jun_api_service_demo/.gitignore
================================================
target/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
nbproject/private/
build/
nbbuild/
dist/
nbdist/
.nb-gradle/

================================================
FILE: java_project_template/jun_api_service_demo/README.md
================================================
## 简介
Spring Boot API 是一个基于Spring Boot & MyBatis plus的种子项目,用于快速构建中小型API项目,特点稳定、简单、快速,摆脱那些重复劳动

## 特征&提供
- 统一响应结果封装及生成工具
- 统一异常处理
- 采用简单的jwt认证
- 使用Druid Spring Boot Starter 集成Druid数据库连接池与监控
- 集成MyBatis-Plus,实现单表业务零SQL
- 支持多数据源,自由切换,只需方法或类上用 @DS 切换数据源
- 集成国人风格的knife4j,自动生成接口文档
- 提供代码生成器,生成controller,service,serviceImpl,dao,mapper.xml

## 快速开始
1. 克隆项目
2. 导入```test```包里的mysql脚本user.sql
3. 对```test```包内的代码生成器```CodeGenerator```进行配置,主要是JDBC,因为要根据表名来生成代码
4. 输入表名,运行```CodeGenerator.main()```方法,生成基础代码(可能需要刷新项目目录才会出来)
5. 根据业务在基础代码上进行扩展
6. 对开发环境配置文件```application-dev.yml```进行配置,启动项目,Have Fun!

## 开发建议
- post调用接口ip:8080/api/user/login,参数json: {"username":"admin","password":"123456"},调用成功后, 返回token。以后调用api接口,header中传token
- 正式环境已禁用接口文档的查看,配置文件添加knife4j:production: true 即可
- Model内成员变量建议与表字段数量对应,如需扩展成员变量(比如连表查询)建议创建DTO,否则需在扩展的成员变量上加@TableField(exist = false),详见[MyBatis-Plus](https://mp.baomidou.com/guide/)文档说明
- 建议业务失败直接使用ServiceException("ErrorMessage")抛出,由统一异常处理器来封装业务失败的响应结果,会直接被封装为{"code":400,"message":"ErrorMessage"}返回,尽情抛出;body方式传参,@Valid校验Model,更无需自己处理;

## 接口文档效果图
![image-20200313084433855](http://tuchuang.aitangbao.com.cn/image-20200313084433855.png)

## 相关文档
- Spring Boot([springboot官方](https://spring.io/projects/spring-boot/))
- MyBatis-Plus ([查看官方中文文档](https://mp.baomidou.com/guide/))
- MyBatis-Plus分页插件([查看官方中文文档](https://mp.baomidou.com/guide/page.html))
- Druid Spring Boot Starter([查看官方中文文档](https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter/))
- Fastjson([查看官方中文文档](https://github.com/Alibaba/fastjson/wiki/%E9%A6%96%E9%A1%B5))
- 阿里巴巴Java开发手册[最新版下载](https://github.com/alibaba/p3c)
其他

## License
纯粹开源分享,感谢大家 [Star](https://github.com/aitangbao/springboot-api) 的支持。


================================================
FILE: java_project_template/jun_api_service_demo/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.company.project</groupId>
    <artifactId>jun_api_service_demo</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>

    <properties>
        <java.version>1.8</java.version>
        <mybatis-plus.version>3.3.0</mybatis-plus.version>
    </properties>

    <!-- Inherit defaults from Spring Boot -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
        <relativePath></relativePath>
    </parent>

    <dependencies>
        <!--Spring Boot依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--MyBatis 及 插件依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>2.5.5</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>${mybatis-plus.version}</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>${mybatis-plus.version}</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>${mybatis-plus.version}</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.36</version>
        </dependency>


        <!--常用库依赖-->
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.6</version>
        </dependency>
        <!--MySQL JDBC驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!--阿里 FastJson依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
        <!--阿里 Druid Spring Boot Starter依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
        <!--代码生成器依赖-->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.30</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>2.0.2</version>
        </dependency>

        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.9.0</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>aliyun-repos</id>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>aliyun-plugin</id>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

</project>

================================================
FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/Application.java
================================================
package com.company.project;

import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.Environment;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.net.InetAddress;

@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
@MapperScan("com.company.project.dao")
public class Application {

    private static Logger logger= LoggerFactory.getLogger(Application.class);

    public static void main(String[] args) throws Exception {

        ConfigurableApplicationContext application = SpringApplication.run(Application.class, args);

        Environment env = application.getEnvironment();
        logger.info("\n----------------------------------------------------------\n\t" +
                        "Application '{}' is running! Access URLs:\n\t" +
                        "Local: \t\thttp://localhost:{}\n\t" +
                        "External: \thttp://{}:{}\n\t" +
                        "Doc: \thttp://{}:{}/doc.html\n" +
                        "----------------------------------------------------------",
                env.getProperty("spring.application.name"),
                env.getProperty("server.port"),
                InetAddress.getLocalHost().getHostAddress(),
                env.getProperty("server.port"),
                InetAddress.getLocalHost().getHostAddress(),
                env.getProperty("server.port"));
    }
}



================================================
FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/configurer/LoginInterceptor.java
================================================
package com.company.project.configurer;


import com.alibaba.fastjson.JSON;
import com.company.project.core.Result;
import com.company.project.core.ResultCode;
import com.company.project.utils.JwtUtils;
import io.jsonwebtoken.Claims;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import static com.company.project.utils.JwtUtils.USER_ACCOUNT_KEY;
import static com.company.project.utils.JwtUtils.USER_ID_KEY;

/**
 * <p>登陆拦截器
 */
public class LoginInterceptor extends HandlerInterceptorAdapter {

    private final Logger logger = LoggerFactory.getLogger(WebMvcConfigurer.class);
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //拦截接口
        //从header中获取token
        String token = request.getHeader("token");
        //如果header中不存在token,则从参数中获取token
        if(StringUtils.isBlank(token)){
            token = request.getParameter("token");
        }
        //token为空返回
        if(StringUtils.isBlank(token)){
            Result result = new Result();
            result.setCode(ResultCode.UNAUTHORIZED).setMessage("token不能为空").setSuccess(false);
            responseResult(response, result);
            return false;
        }//  校验并解析token,如果token过期或者篡改,则会返回null
        Claims claims = JwtUtils.checkJWT(token);
        if(null == claims){
            Result result = new Result();
            result.setCode(ResultCode.UNAUTHORIZED).setMessage("登陆失效, 请重新登陆").setSuccess(false);
            responseResult(response, result);
            return false;
        }
        //  校验通过后,设置用户信息到request里,在Controller中从Request域中获取用户信息
        request.setAttribute(USER_ID_KEY, claims.get("id"));
        request.setAttribute(USER_ACCOUNT_KEY, claims.get("account"));
        return true;
    }



    private void responseResult(HttpServletResponse response, Result result) {
        response.setCharacterEncoding("UTF-8");
        response.setHeader("Content-type", "application/json;charset=UTF-8");
        response.setStatus(200);
        try {
            response.getWriter().write(JSON.toJSONString(result));
        } catch (IOException ex) {
            logger.error(ex.getMessage());
        }
    }
}


================================================
FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/configurer/MyBatisPlusConfig.java
================================================
package com.company.project.configurer;

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @ClassName MyBatisPlusConfig
 * @Version 1.0
 **/
@Configuration
public class MyBatisPlusConfig {
    /**
     * 配置mybatis-plus 分页查件
     * @return
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        return paginationInterceptor;
    }
}

================================================
FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/configurer/SwaggerConfiguration.java
================================================
package com.company.project.configurer;

import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class SwaggerConfiguration {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.company.project.web"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Springboot-api APIs")
                .description("Springboot-api APIs")
                .termsOfServiceUrl("http://localhost:8080/")
                .contact("xxxxxxxxxx@163.com")
                .version("1.0")
                .build();
    }
}

================================================
FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/configurer/WebMvcConfigurer.java
================================================
package com.company.project.configurer;

import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;

import com.company.project.core.Result;
import com.company.project.core.ResultCode;
import com.company.project.core.ResultGenerator;
import com.company.project.core.ServiceException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.NoHandlerFoundException;
import org.springframework.web.servlet.config.annotation.*;

/**
 * Spring MVC 配置
 */
@Configuration
public class WebMvcConfigurer extends WebMvcConfigurerAdapter {

    private final Logger logger = LoggerFactory.getLogger(WebMvcConfigurer.class);

    @Bean
    LoginInterceptor loginInterceptor() {

        return new LoginInterceptor();
    }

    //使用阿里 FastJson 作为JSON MessageConverter
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
        FastJsonConfig config = new FastJsonConfig();
        config.setSerializerFeatures(SerializerFeature.WriteMapNullValue);//保留空的字段
        //SerializerFeature.WriteNullStringAsEmpty,//String null -> ""
        //SerializerFeature.WriteNullNumberAsZero//Number null -> 0
        // 按需配置,更多参考FastJson文档哈

        converter.setFastJsonConfig(config);
        converter.setDefaultCharset(Charset.forName("UTF-8"));
        converter.setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON_UTF8));
        converters.add(converter);
    }


    //统一异常处理
    @Override
    public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
        exceptionResolvers.add(new HandlerExceptionResolver() {
            public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception e) {
                Result result = new Result();
                if (e instanceof ServiceException) {//业务失败的异常,如“账号或密码错误”
                    result.setCode(ResultCode.FAIL).setMessage(e.getMessage()).setSuccess(false);
                } else if (e instanceof MethodArgumentNotValidException) {//@valid注解验证参数
                    MethodArgumentNotValidException m = (MethodArgumentNotValidException) e;
                    m.getBindingResult().getFieldError().getDefaultMessage();
                    result.setCode(ResultCode.PARAM_FAIL).setMessage(m.getBindingResult().getFieldError().getDefaultMessage()).setSuccess(false);
                } else if (e instanceof NoHandlerFoundException) {
                    result.setCode(ResultCode.NOT_FOUND).setMessage("接口 [" + request.getRequestURI() + "] 不存在").setSuccess(false);
                } else if (e instanceof ServletException) {
                    result.setCode(ResultCode.FAIL).setMessage(e.getMessage()).setSuccess(false);
                } else {
                    result.setCode(ResultCode.INTERNAL_SERVER_ERROR).setMessage("接口 [" + request.getRequestURI() + "] 内部错误,请联系管理员").setSuccess(false);
                    String message;
                    if (handler instanceof HandlerMethod) {
                        HandlerMethod handlerMethod = (HandlerMethod) handler;
                        message = String.format("接口 [%s] 出现异常,方法:%s.%s,异常摘要:%s",
                                request.getRequestURI(),
                                handlerMethod.getBean().getClass().getName(),
                                handlerMethod.getMethod().getName(),
                                e.getMessage());
                    } else {
                        message = e.getMessage();
                    }
                    logger.error(message, e);
                }
                responseResult(response, result);
                return new ModelAndView();
            }

        });
    }

    @ExceptionHandler(MethodArgumentNotValidException.class)
    public Result handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {
        return ResultGenerator.genFailResult(e.getBindingResult().getFieldError().getDefaultMessage());
    }

    /**
     * 页面跨域访问Controller过滤
     *
     * @return
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        WebMvcConfigurer.super.addCorsMappings(registry);
        registry.addMapping("/**")
                .allowedHeaders("*")
                .allowedMethods("POST","GET")
                .allowedOrigins("*");
    }

    //添加拦截器
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(loginInterceptor())
                .excludePathPatterns("/doc.html")
                .excludePathPatterns("/swagger-resources/**")
                .excludePathPatterns("/error")
                .excludePathPatterns("/webjars/**")
                .excludePathPatterns("/api/user/login")
                .excludePathPatterns("/api/user/register")
                .addPathPatterns("/**");
    }


    private void responseResult(HttpServletResponse response, Result result) {
        response.setCharacterEncoding("UTF-8");
        response.setHeader("Content-type", "application/json;charset=UTF-8");
        response.setStatus(200);
        try {
            response.getWriter().write(JSON.toJSONString(result));
        } catch (IOException ex) {
            logger.error(ex.getMessage());
        }
    }

    /**
     * 发现如果继承了WebMvcConfigurationSupport,则在yml中配置的相关内容会失效。 需要重新指定静态资源
     *
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations(
                "classpath:/static/");
        registry.addResourceHandler("doc.html").addResourceLocations(
                "classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations(
                "classpath:/META-INF/resources/webjars/");
        super.addResourceHandlers(registry);
    }


    /**
     * 配置servlet处理
     */
    @Override
    public void configureDefaultServletHandling(
            DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }




}



================================================
FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/core/ApplicationContextUtil.java
================================================
package com.company.project.core;
 
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
 
/**
 * @className: ApplicationContextUtil
 * @Description: 解决定时任务获取不到service的问题
 * @Author moneylee
 * @Date 2019-05-11 14:28
 * @Version 1.0
 **/
@Component
public class ApplicationContextUtil implements ApplicationContextAware {
 
    private static ApplicationContext applicationContext;
 
    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }
 
 
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        ApplicationContextUtil.applicationContext = applicationContext;
 
    }
 
    public static Object getBean(String beanName) {
        return applicationContext.getBean(beanName);
    }
 
}

================================================
FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/core/Result.java
================================================
package com.company.project.core;

import com.alibaba.fastjson.JSON;

/**
 * 统一API响应结果封装
 */
public class Result<T> {
    private int code;
    private String message;
    private T data;
    private Boolean success;

    public Result setCode(ResultCode resultCode) {
        this.code = resultCode.code();
        return this;
    }

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    public Result setMessage(String message) {
        this.message = message;
        return this;
    }

    public T getData() {
        return data;
    }

    public Result setData(T data) {
        this.data = data;
        return this;
    }

    public Boolean getSuccess() {
        return success;
    }

    public Result setSuccess(Boolean success) {
        this.success = success;
        return this;
    }

    @Override
    public String toString() {
        return JSON.toJSONString(this);
    }
}


================================================
FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/core/ResultCode.java
================================================
package com.company.project.core;

/**
 * 响应码枚举,参考HTTP状态码的语义
 */
public enum ResultCode {
    SUCCESS(200),//成功
    FAIL(400),//失败
    UNAUTHORIZED(401),//未认证(签名错误)
    NOT_FOUND(404),//接口不存在
    INTERNAL_SERVER_ERROR(500),//服务器内部错误
    PARAM_FAIL(10001);//参数异常

    private final int code;

    ResultCode(int code) {
        this.code = code;
    }

    public int code() {
        return code;
    }
}


================================================
FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/core/ResultGenerator.java
================================================
package com.company.project.core;

/**
 * 响应结果生成工具
 */
public class ResultGenerator {
    private static final String DEFAULT_SUCCESS_MESSAGE = "SUCCESS";

    public static Result genSuccessResult() {
        return new Result()
                .setSuccess(true)
                .setCode(ResultCode.SUCCESS)
                .setMessage(DEFAULT_SUCCESS_MESSAGE);
    }

    public static <T> Result<T> genSuccessResult(T data) {
        return new Result()
                .setSuccess(true)
                .setCode(ResultCode.SUCCESS)
                .setMessage(DEFAULT_SUCCESS_MESSAGE)
                .setData(data);
    }

    public static Result genFailResult(String message) {
        return new Result()
                .setSuccess(false)
                .setCode(ResultCode.FAIL)
                .setMessage(message);
    }
}


================================================
FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/core/ServiceException.java
================================================
package com.company.project.core;

/**
 * 服务(业务)异常如“ 账号或密码错误 ”,该异常只做INFO级别的日志记录 @see WebMvcConfigurer
 */
public class ServiceException extends RuntimeException {
    public ServiceException() {
    }

    public ServiceException(String message) {
        super(message);
    }

    public ServiceException(String message, Throwable cause) {
        super(message, cause);
    }
}


================================================
FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/dao/UserMapper.java
================================================
package com.company.project.dao;

import com.company.project.model.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author project
 * @since 2020-01-08
 */
public interface UserMapper extends BaseMapper<User> {

}


================================================
FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/model/User.java
================================================
package com.company.project.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import java.util.Date;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotEmpty;

/**
 * <p>
 * 
 * </p>
 *
 * @author project
 * @since 2020-01-08
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 用户名
     */
    @NotEmpty(message = "用户名不能为空!")
    private String username;

    /**
     * 密码
     */
    @NotEmpty(message = "密码不能为空!")
    private String password;

    /**
     * 昵称
     */
    private String nickName;

    /**
     * 性别
     */
    private Integer sex;

    /**
     * 创建时间
     */
    private Date createDate;

    /**
     * 创建人
     */
    private Integer createUser;

    /**
     * 修改时间
     */
    private Date updateDate;

    /**
     * 修改人
     */
    private Integer updateUser;

    /**
     * 删除标志0未删 1删除
     */
    @TableLogic
    private Integer delFlag;

    /**
     * 登陆返回token
     */
    @TableField(exist = false)
    private String token;

}


================================================
FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/service/IUserService.java
================================================
package com.company.project.service;

import com.company.project.model.User;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author project
 * @since 2020-01-08
 */
public interface IUserService extends IService<User> {

}


================================================
FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/service/impl/UserServiceImpl.java
================================================
package com.company.project.service.impl;

import com.company.project.model.User;
import com.company.project.dao.UserMapper;
import com.company.project.service.IUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author project
 * @since 2020-01-08
 */
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {

}


================================================
FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/utils/JwtUtils.java
================================================
package com.company.project.utils;

import com.company.project.model.User;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import javax.servlet.http.HttpServletRequest;
import java.util.Date;

/**
 * jwt工具类
 */
public class JwtUtils {

    public static final String USER_ID_KEY = "user_id_key";

    public static final String USER_ACCOUNT_KEY = "user_account_key";


    public static final String SUBJECT = "onehee";

    public static final long EXPIRE = 1000*60*60*24*7;  //过期时间,毫秒,一周

    //秘钥
    public static final  String APPSECRET = "onehee666";

    /**
     * 生成jwt
     * @param user
     * @return
     */
    public static String geneJsonWebToken(User user){

        String token = Jwts.builder().setSubject(SUBJECT)
                .claim("id",user.getId())
                .claim("userName",user.getUsername())
                .setIssuedAt(new Date())
                .setExpiration(new Date(System.currentTimeMillis()+EXPIRE))
                .signWith(SignatureAlgorithm.HS256,APPSECRET).compact();

        return token;
    }


    /**
     * 校验token
     * @param token
     * @return
     */
    public static Claims checkJWT(String token ){

        try{
            final Claims claims =  Jwts.parser().setSigningKey(APPSECRET).
                    parseClaimsJws(token).getBody();
            return  claims;

        }catch (Exception e){ }
        return null;

    }


    /**
     * 判断当前登陆用户是不是admin
     * @param request
     * @return
     */
    public static boolean isAdmin(HttpServletRequest request) {
        if (request.getAttribute(USER_ACCOUNT_KEY) == null) {
            return false;
        }
        if ("admin".equals(request.getAttribute(USER_ACCOUNT_KEY).toString())){
            return true;
        } else {
            return false;
        }
    }



}

================================================
FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/utils/MD5Utils.java
================================================
package com.company.project.utils;

import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;

public class MD5Utils {

	private static String salt = "springboot_api";
	
	/**
	 * 加密字符串
	 * @param password 要加密的明文
	 * @param isAddSalt 是否加默认盐
	 * @return 加密之后的结果
	 */
	public static String Encrypt(String password, boolean isAddSalt){
		if (StringUtils.isNotEmpty(password)){
			if (isAddSalt){
				return DigestUtils.md5Hex(DigestUtils.md5(password + salt));
			} else {
				return DigestUtils.md5Hex(DigestUtils.md5(password));
			}
		}
		return null;		
	}
	
	/**
	 * 
	 * @param bytes
	 * @return
	 */
	public static String Encrypt(byte[] bytes){
		if (ArrayUtils.isNotEmpty(bytes)){
			return DigestUtils.md5Hex(DigestUtils.md5(bytes));
		}
		return null;
	}
	
	/**
	 * MD5加盐加密
	 * @param password 要加密的明文
	 * @param salt 盐
	 * @return 加密之后的结果
	 */
	public static String Encrypt(String password, String salt){
		if (StringUtils.isNotEmpty(password)){
			return DigestUtils.md5Hex(DigestUtils.md5(password + salt));
		}
		return null;			
	}
	
	public static void main(String[] args){
		System.out.println(MD5Utils.Encrypt("admin", true));
	}
}


================================================
FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/web/UserController.java
================================================
package com.company.project.web;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.company.project.core.Result;
import com.company.project.core.ResultGenerator;
import com.company.project.utils.JwtUtils;
import com.company.project.utils.MD5Utils;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import org.springframework.web.bind.annotation.*;
import com.company.project.service.IUserService;
import com.company.project.model.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import com.baomidou.mybatisplus.core.metadata.IPage;

import javax.annotation.Resource;
import javax.validation.Valid;

import org.springframework.web.bind.annotation.RestController;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author project
 * @since 2020-01-08
 */
@Slf4j
@RestController
@RequestMapping("/api/user")
public class UserController {

    @Resource
    private IUserService userService;

    @ApiOperation("登陆")
    @PostMapping("/login")
    public Result login(@RequestBody @Valid User user) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("username", user.getUsername());
        User userO = userService.getOne(queryWrapper);
        if (userO == null) {
            return ResultGenerator.genFailResult("账号未找到");
        }
        if (!MD5Utils.Encrypt(user.getPassword(),true).equals(userO.getPassword())) {
            return ResultGenerator.genFailResult("密码错误");
        }
        String token = JwtUtils.geneJsonWebToken(user);
        user.setToken(token);
        user.setPassword("");
        return ResultGenerator.genSuccessResult(user);
    }

    @ApiOperation("注册")
    @PostMapping("/register")
    public Result register(@RequestBody @Valid User user) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("username", user.getUsername());
        User userO = userService.getOne(queryWrapper);
        if (userO != null) {
            return ResultGenerator.genFailResult("账号已存在");
        }
        user.setPassword(MD5Utils.Encrypt(user.getPassword(),true));
        userService.save(user);
        return ResultGenerator.genSuccessResult();
    }

    @ApiOperation(value = "删除")
    @PostMapping("delete/{id}")
    public Result delete(@PathVariable("id") Long id){
        userService.removeById(id);
        return ResultGenerator.genSuccessResult();
    }

    @ApiOperation(value = "更新")
    @PostMapping("update")
    public Result update(@RequestBody User user){
        //密码不更新
        user.setPassword(null);
        userService.updateById(user);
        return ResultGenerator.genSuccessResult();
    }

    @ApiOperation(value = "查询分页数据")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "currentPage", value = "页码"),
        @ApiImplicitParam(name = "pageCount", value = "每页条数")
    })
    @GetMapping("listByPage")
    public Result findListByPage(@RequestParam(defaultValue = "1") Integer currentPage,
                                   @RequestParam(defaultValue = "10") Integer pageCount){
        Page page = new Page(currentPage, pageCount);
        IPage<User> iPage = userService.page(page);
        return ResultGenerator.genSuccessResult(iPage);
    }

    @ApiOperation(value = "id查询")
    @GetMapping("getById/{id}")
    public Result findById(@PathVariable Long id){
        return ResultGenerator.genSuccessResult(userService.getById(id));
    }

}


================================================
FILE: java_project_template/jun_api_service_demo/src/main/resources/application-dev.yml
================================================
# 开发环境配置
spring:
  datasource:
    dynamic:
      primary: master #设置默认的数据源或者数据源组,默认值即为master
      datasource:
        master:
          username: root
          password:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2b8
        slave_1:
          username: root
          password: 123456
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://xx.xx.xx.xx:3307/dynamic?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2b8
        slave_2:
          username: root
          password: 123456
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://xx.xx.xx.xx:3308/dynamic?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2b8
        #......省略
        #以上会配置一个默认库master,一个组slave下有两个子库slave_1,slave_2
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  mapper-locations: classpath:mapper/*.xml
  global-config:
    db-config:
      logic-delete-value: 1
      logic-not-delete-value: 0


================================================
FILE: java_project_template/jun_api_service_demo/src/main/resources/application-prod.yml
================================================
# 生产环境配置
knife4j:
  production: true #生成环境禁用查看接口文档


================================================
FILE: java_project_template/jun_api_service_demo/src/main/resources/application-test.yml
================================================
# 测试环境配置


================================================
FILE: java_project_template/jun_api_service_demo/src/main/resources/application.yml
================================================
spring:
  profiles:
    active: dev
  mvc:
    throw-exception-if-no-handler-found: true
  resources:
    add-mappings: false
  application:
    name: Springboot-api
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
server:
  port: 8080


================================================
FILE: java_project_template/jun_api_service_demo/src/main/resources/banner.txt
================================================
////////////////////////////////////////////////////////////////////
//                          _ooOoo_                               //
//                         o8888888o                              //
//                         88" . "88                              //
//                         (| ^_^ |)                              //
//                         O\  =  /O                              //
//                      ____/`---'\____                           //
//                    .'  \\|     |//  `.                         //
//                   /  \\|||  :  |||//  \                        //
//                  /  _||||| -:- |||||-  \                       //
//                  |   | \\\  -  /// |   |                       //
//                  | \_|  ''\---/''  |   |                       //
//                  \  .-\__  `-`  ___/-. /                       //
//                ___`. .'  /--.--\  `. . ___                     //
//              ."" '<  `.___\_<|>_/___.'  >'"".                  //
//            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
//            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
//      ========`-.____`-.___\_____/___.-`____.-'========         //
//                           `=---='                              //
//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
//            佛祖保佑       永不宕机     永无BUG                    //
////////////////////////////////////////////////////////////////////

================================================
FILE: java_project_template/jun_api_service_demo/src/main/resources/mapper/UserMapper.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.company.project.dao.UserMapper">

        <!-- 通用查询映射结果 -->
        <resultMap id="BaseResultMap" type="com.company.project.model.User">
                    <id column="id" property="id"/>
                    <result column="username" property="username"/>
                    <result column="password" property="password"/>
                    <result column="nick_name" property="nickName"/>
                    <result column="sex" property="sex"/>
                    <result column="create_date" property="createDate"/>
                    <result column="create_user" property="createUser"/>
                    <result column="update_date" property="updateDate"/>
                    <result column="update_user" property="updateUser"/>
                    <result column="del_flag" property="delFlag"/>
        </resultMap>

        <!-- 通用查询结果列 -->
        <sql id="Base_Column_List">
            id, username, password, nick_name, sex, create_date, create_user, update_date, update_user, del_flag
        </sql>

</mapper>

================================================
FILE: java_project_template/jun_api_service_demo/src/test/java/CodeGenerator.java
================================================
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.ArrayList;
import java.util.List;

// 演示例子,执行 main 方法控制台输入模块表名回车自动生成对应项目目录中
public class CodeGenerator {


    //多个表逗号分隔
    static String tableName = "user_copy";
    //逻辑删除字段名, 假如表没有逻辑删除字段,请忽视
    static String logicDeleteFieldName = "del_flag";

    public static void main(String[] args) {
        // 代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("aitangbao");
        gc.setOpen(false);
        gc.setBaseColumnList(true);
        gc.setBaseResultMap(true);
        gc.setDateType(DateType.ONLY_DATE);
        // gc.setSwagger2(true); 实体属性 Swagger2 注解
        mpg.setGlobalConfig(gc);

        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/project?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC");
        // dsc.setSchemaName("public");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("123456");
        mpg.setDataSource(dsc);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.company.project");
        pc.setEntity("model");
        pc.setMapper("dao");
        pc.setController("web");
        mpg.setPackageInfo(pc);

        // 自定义配置
        InjectionConfig cfg = new InjectionConfig() {
            @Override
            public void initMap() {
                // to do nothing
            }
        };

        // 如果模板引擎是 freemarker
        String templatePath = "/templates/mapper.xml.ftl";
        // 如果模板引擎是 velocity
        // String templatePath = "/templates/mapper.xml.vm";

        // 自定义输出配置
        List<FileOutConfig> focList = new ArrayList<>();
        // 自定义配置会被优先输出
        focList.add(new FileOutConfig(templatePath) {
            @Override
            public String outputFile(TableInfo tableInfo) {
                // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
                return projectPath + "/src/main/resources/mapper/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
            }
        });
        cfg.setFileOutConfigList(focList);
        mpg.setCfg(cfg);

        // 配置模板
        TemplateConfig templateConfig = new TemplateConfig();

        // 配置自定义输出模板
        //指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
//         templateConfig.setEntity("templates/entity.java");
        // templateConfig.setService();
         templateConfig.setController("templates/controller.java");

        templateConfig.setXml(null);
        mpg.setTemplate(templateConfig);

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
//        strategy.setSuperEntityClass("你自己的父类实体,没有就不用设置!");
        strategy.setEntityLombokModel(true);
        strategy.setRestControllerStyle(true);
        // 公共父类
//        strategy.setSuperControllerClass("你自己的父类控制器,没有就不用设置!");
        // 写于父类中的公共字段
//        strategy.setSuperEntityColumns("id");
        strategy.setInclude(tableName.split(","));
        strategy.setControllerMappingHyphenStyle(true);
        strategy.setLogicDeleteFieldName(logicDeleteFieldName); // 逻辑删除字段名称
        strategy.setTablePrefix(pc.getModuleName() + "_");
        mpg.setStrategy(strategy);
        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
        mpg.execute();
    }

}

================================================
FILE: java_project_template/jun_api_service_demo/src/test/java/com/company/project/Tester.java
================================================
package com.company.project;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

/**
 * 单元测试
 */
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class Tester {

    @Test
    public void test() {

    }
}





================================================
FILE: java_project_template/jun_api_service_demo/src/test/resources/templates/controller.java.ftl
================================================
package ${package.Controller};

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.company.project.core.Result;
import com.company.project.core.ResultGenerator;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import org.springframework.web.bind.annotation.*;
import ${package.Service}.${table.serviceName};
import ${package.Entity}.${entity};
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import com.baomidou.mybatisplus.core.metadata.IPage;

import javax.annotation.Resource;
<#if restControllerStyle>
import org.springframework.web.bind.annotation.RestController;
<#else>
import org.springframework.stereotype.Controller;
</#if>
<#if superControllerClassPackage??>
import ${superControllerClassPackage};
</#if>

/**
 * <p>
 * ${table.comment!} 前端控制器
 * </p>
 *
 * @author ${author}
 * @since ${date}
 */
<#if restControllerStyle>
@Api(tags = {"${table.comment!}"})
@Slf4j
@RestController
<#else>
@Controller
</#if>
@RequestMapping("<#if package.ModuleName??>/${package.ModuleName}</#if>/<#if controllerMappingHyphenStyle??>${controllerMappingHyphen}<#else>${table.entityPath}</#if>")
<#if kotlin>
class ${table.controllerName}<#if superControllerClass??>:${superControllerClass}()</#if>
<#else>
<#if superControllerClass??>public class ${table.controllerName} extends ${superControllerClass}{
<#else>public class ${table.controllerName} {
</#if>

    @Resource
    private ${table.serviceName} ${(table.serviceName?substring(1))?uncap_first};


    @ApiOperation(value = "新增${table.comment!}")
    @PostMapping("add")
    public Result add(@RequestBody ${entity} ${entity?uncap_first}){
        ${(table.serviceName?substring(1))?uncap_first}.save(${entity?uncap_first});
        return ResultGenerator.genSuccessResult();
    }

    @ApiOperation(value = "删除${table.comment!}")
    @PostMapping("delete/{id}")
    public Result delete(@PathVariable("id") Long id){
        ${(table.serviceName?substring(1))?uncap_first}.removeById(id);
        return ResultGenerator.genSuccessResult();
    }

    @ApiOperation(value = "更新${table.comment!}")
    @PostMapping("update")
    public Result update(@RequestBody ${entity} ${entity?uncap_first}){
        ${(table.serviceName?substring(1))?uncap_first}.updateById(${entity?uncap_first});
        return ResultGenerator.genSuccessResult();
    }

    @ApiOperation(value = "查询${table.comment!}分页数据")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "currentPage", value = "页码"),
        @ApiImplicitParam(name = "pageCount", value = "每页条数")
    })
    @GetMapping("listByPage")
    public Result findListByPage(@RequestParam Integer currentPage,
                                   @RequestParam Integer pageCount){
        Page page = new Page(currentPage, pageCount);
        IPage<${entity}> iPage = ${(table.serviceName?substring(1))?uncap_first}.page(page);
        return ResultGenerator.genSuccessResult(iPage);
    }

    @ApiOperation(value = "id查询${table.comment!}")
    @GetMapping("getById/{id}")
    public Result findById(@PathVariable Long id){
        return R
Download .txt
Showing preview only (647K chars total). Download the full file or copy to clipboard to get everything.
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
│   │
Download .txt
Showing preview only (2,247K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (25026 symbols across 4002 files)

FILE: java_project_template/jun_api_service_admin/src/main/java/com/jun/plugin/ApiServiceApplication.java
  class ApiServiceApplication (line 16) | @Slf4j
    method main (line 22) | public static void main(String[] args) throws Exception {
    method commandLineRunner (line 39) | @Bean

FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/Application.java
  class Application (line 15) | @SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
    method main (line 21) | public static void main(String[] args) throws Exception {

FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/configurer/LoginInterceptor.java
  class LoginInterceptor (line 25) | public class LoginInterceptor extends HandlerInterceptorAdapter {
    method preHandle (line 28) | @Override
    method responseResult (line 59) | private void responseResult(HttpServletResponse response, Result resul...

FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/configurer/MyBatisPlusConfig.java
  class MyBatisPlusConfig (line 11) | @Configuration
    method paginationInterceptor (line 17) | @Bean

FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/configurer/SwaggerConfiguration.java
  class SwaggerConfiguration (line 16) | @Configuration
    method createRestApi (line 22) | @Bean
    method apiInfo (line 32) | private ApiInfo apiInfo() {

FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/configurer/WebMvcConfigurer.java
  class WebMvcConfigurer (line 38) | @Configuration
    method loginInterceptor (line 43) | @Bean
    method configureMessageConverters (line 50) | @Override
    method configureHandlerExceptionResolvers (line 67) | @Override
    method handleMethodArgumentNotValidException (line 104) | @ExceptionHandler(MethodArgumentNotValidException.class)
    method addCorsMappings (line 114) | @Override
    method addInterceptors (line 124) | @Override
    method responseResult (line 137) | private void responseResult(HttpServletResponse response, Result resul...
    method addResourceHandlers (line 153) | @Override
    method configureDefaultServletHandling (line 168) | @Override

FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/core/ApplicationContextUtil.java
  class ApplicationContextUtil (line 15) | @Component
    method getApplicationContext (line 20) | public static ApplicationContext getApplicationContext() {
    method setApplicationContext (line 25) | @Override
    method getBean (line 31) | public static Object getBean(String beanName) {

FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/core/Result.java
  class Result (line 8) | public class Result<T> {
    method setCode (line 14) | public Result setCode(ResultCode resultCode) {
    method getCode (line 19) | public int getCode() {
    method getMessage (line 23) | public String getMessage() {
    method setMessage (line 27) | public Result setMessage(String message) {
    method getData (line 32) | public T getData() {
    method setData (line 36) | public Result setData(T data) {
    method getSuccess (line 41) | public Boolean getSuccess() {
    method setSuccess (line 45) | public Result setSuccess(Boolean success) {
    method toString (line 50) | @Override

FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/core/ResultCode.java
  type ResultCode (line 6) | public enum ResultCode {
    method ResultCode (line 16) | ResultCode(int code) {
    method code (line 20) | public int code() {

FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/core/ResultGenerator.java
  class ResultGenerator (line 6) | public class ResultGenerator {
    method genSuccessResult (line 9) | public static Result genSuccessResult() {
    method genSuccessResult (line 16) | public static <T> Result<T> genSuccessResult(T data) {
    method genFailResult (line 24) | public static Result genFailResult(String message) {

FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/core/ServiceException.java
  class ServiceException (line 6) | public class ServiceException extends RuntimeException {
    method ServiceException (line 7) | public ServiceException() {
    method ServiceException (line 10) | public ServiceException(String message) {
    method ServiceException (line 14) | public ServiceException(String message, Throwable cause) {

FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/dao/UserMapper.java
  type UserMapper (line 14) | public interface UserMapper extends BaseMapper<User> {

FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/model/User.java
  class User (line 24) | @Data

FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/service/IUserService.java
  type IUserService (line 14) | public interface IUserService extends IService<User> {

FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/service/impl/UserServiceImpl.java
  class UserServiceImpl (line 17) | @Service

FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/utils/JwtUtils.java
  class JwtUtils (line 14) | public class JwtUtils {
    method geneJsonWebToken (line 33) | public static String geneJsonWebToken(User user){
    method checkJWT (line 51) | public static Claims checkJWT(String token ){
    method isAdmin (line 69) | public static boolean isAdmin(HttpServletRequest request) {

FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/utils/MD5Utils.java
  class MD5Utils (line 7) | public class MD5Utils {
    method Encrypt (line 17) | public static String Encrypt(String password, boolean isAddSalt){
    method Encrypt (line 33) | public static String Encrypt(byte[] bytes){
    method Encrypt (line 46) | public static String Encrypt(String password, String salt){
    method main (line 53) | public static void main(String[] args){

FILE: java_project_template/jun_api_service_demo/src/main/java/com/company/project/web/UserController.java
  class UserController (line 32) | @Slf4j
    method login (line 40) | @ApiOperation("登陆")
    method register (line 58) | @ApiOperation("注册")
    method delete (line 72) | @ApiOperation(value = "删除")
    method update (line 79) | @ApiOperation(value = "更新")
    method findListByPage (line 88) | @ApiOperation(value = "查询分页数据")
    method findById (line 101) | @ApiOperation(value = "id查询")

FILE: java_project_template/jun_api_service_demo/src/test/java/CodeGenerator.java
  class CodeGenerator (line 14) | public class CodeGenerator {
    method main (line 22) | public static void main(String[] args) {

FILE: java_project_template/jun_api_service_demo/src/test/java/com/company/project/Tester.java
  class Tester (line 11) | @RunWith(SpringRunner.class)
    method test (line 15) | @Test

FILE: java_project_template/jun_api_service_demo/src/test/resources/user.sql
  type `user` (line 24) | CREATE TABLE `user`  (

FILE: java_project_template/jun_api_service_main/doc/user.sql
  type `sys_user` (line 8) | CREATE TABLE `sys_user`  (

FILE: java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/ApiServiceApplication.java
  class ApiServiceApplication (line 23) | @Slf4j
    method main (line 31) | public static void main(String[] args) throws UnknownHostException {
    method commandLineRunner (line 54) | @Bean

FILE: java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/configurer/LoginInterceptor.java
  class LoginInterceptor (line 25) | public class LoginInterceptor extends HandlerInterceptorAdapter {
    method preHandle (line 32) | @Override
    method responseResult (line 62) | private void responseResult(HttpServletResponse response, Result resul...

FILE: java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/configurer/WebMvcConfigurer.java
  class WebMvcConfigurer (line 38) | @Configuration
    method loginInterceptor (line 43) | @Bean
    method configureMessageConverters (line 51) | @Override
    method configureHandlerExceptionResolvers (line 68) | @Override
    method handleMethodArgumentNotValidException (line 105) | @ExceptionHandler(MethodArgumentNotValidException.class)
    method addCorsMappings (line 115) | @Override
    method addInterceptors (line 125) | @Override
    method responseResult (line 138) | private void responseResult(HttpServletResponse response, Result resul...
    method addResourceHandlers (line 153) | @Override

FILE: java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/core/Result.java
  class Result (line 8) | public class Result<T> {
    method setCode (line 14) | public Result setCode(ResultCode resultCode) {
    method getCode (line 19) | public int getCode() {
    method getMessage (line 23) | public String getMessage() {
    method setMessage (line 27) | public Result setMessage(String message) {
    method getData (line 32) | public T getData() {
    method setData (line 36) | public Result setData(T data) {
    method getSuccess (line 41) | public Boolean getSuccess() {
    method setSuccess (line 45) | public Result setSuccess(Boolean success) {
    method toString (line 50) | @Override

FILE: java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/core/ResultCode.java
  type ResultCode (line 6) | public enum ResultCode {
    method ResultCode (line 16) | ResultCode(int code) {
    method code (line 20) | public int code() {

FILE: java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/core/ResultGenerator.java
  class ResultGenerator (line 6) | public class ResultGenerator {
    method genSuccessResult (line 9) | public static Result genSuccessResult() {
    method genSuccessResult (line 16) | public static <T> Result<T> genSuccessResult(T data) {
    method genFailResult (line 24) | public static Result genFailResult(String message) {

FILE: java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/core/ServiceException.java
  class ServiceException (line 6) | public class ServiceException extends RuntimeException {
    method ServiceException (line 7) | public ServiceException() {
    method ServiceException (line 10) | public ServiceException(String message) {
    method ServiceException (line 14) | public ServiceException(String message, Throwable cause) {

FILE: java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/mapper/UserMapper.java
  type UserMapper (line 14) | public interface UserMapper extends BaseMapper<User> {

FILE: java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/model/User.java
  class User (line 22) | @Data

FILE: java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/service/HttpSessionService.java
  class HttpSessionService (line 19) | @Service
    method createTokenAndUser (line 34) | public String createTokenAndUser(User user) {
    method getUserIdByToken (line 52) | public static String getUserIdByToken(String token) {
    method getTokenFromHeader (line 65) | public String getTokenFromHeader() {
    method getCurrentSession (line 79) | public JSONObject getCurrentSession() {
    method abortUserByToken (line 98) | public void abortUserByToken() {
    method abortAllUserByToken (line 106) | public void abortAllUserByToken() {
    method abortUserByUserId (line 115) | public void abortUserByUserId(Integer userId) {
    method getRandomToken (line 126) | private String getRandomToken(int length) {

FILE: java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/service/IUserService.java
  type IUserService (line 15) | public interface IUserService extends IService<User> {
    method checkPassword (line 17) | Result checkPassword(User userParam);

FILE: java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/service/RedisService.java
  class RedisService (line 17) | @Service
    method exists (line 22) | public boolean exists(String key) {
    method get (line 26) | public String get(String key) {
    method del (line 32) | public void del(String key) {
    method setAndExpire (line 39) | public void setAndExpire(String key, String value, int seconds) {
    method setExpire (line 45) | public void setExpire(String key, Date endTime) {
    method keys (line 51) | public Set keys(String pattern) {
    method delKeys (line 55) | public void delKeys(String pattern) {

FILE: java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/service/impl/UserServiceImpl.java
  class UserServiceImpl (line 24) | @Service
    method checkPassword (line 38) | @Override

FILE: java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/utils/ImageCodeUtil.java
  class ImageCodeUtil (line 13) | @Slf4j
    method getFont (line 32) | private Font getFont() {
    method getRandColor (line 39) | private Color getRandColor(int fc, int bc) {
    method getRandcode (line 53) | public void getRandcode(HttpServletRequest request, HttpServletRespons...
    method drowString (line 87) | private String drowString(Graphics g, String randomString, int i) {
    method drowLine (line 102) | private void drowLine(Graphics g) {
    method getRandomString (line 113) | public String getRandomString(int num) {

FILE: java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/utils/MD5Utils.java
  class MD5Utils (line 7) | public class MD5Utils {
    method Encrypt (line 17) | public static String Encrypt(String password, boolean isAddSalt){
    method Encrypt (line 33) | public static String Encrypt(byte[] bytes){
    method Encrypt (line 46) | public static String Encrypt(String password, String salt){
    method main (line 53) | public static void main(String[] args){

FILE: java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/web/UserController.java
  class UserController (line 42) | @Slf4j
    method login (line 55) | @ApiOperation("登陆")
    method register (line 82) | @ApiOperation("注册")
    method updatePassword (line 96) | @ApiOperation("修改密码")
    method logout (line 125) | @ApiOperation("登出")
    method validateToken (line 133) | @ApiOperation("校验token是否有效")
    method delete (line 140) | @ApiOperation(value = "删除")
    method update (line 147) | @ApiOperation(value = "更新")
    method findListByPage (line 156) | @ApiOperation(value = "查询分页数据")
    method findById (line 169) | @ApiOperation(value = "id查询")
    method getVerify (line 175) | @ApiOperation(value = "生成验证码")
    method checkVerify (line 190) | @ApiOperation(value = "校验验证码")

FILE: java_project_template/jun_api_service_main/src/test/java/CodeGenerator.java
  class CodeGenerator (line 14) | public class CodeGenerator {
    method main (line 22) | public static void main(String[] args) {

FILE: java_project_template/jun_api_service_main/src/test/java/com/jun/plugin/system/Tester.java
  class Tester (line 11) | @RunWith(SpringRunner.class)
    method test (line 15) | @Test

FILE: java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/QixingApplication.java
  class QixingApplication (line 22) | @Slf4j
    method main (line 30) | public static void main(String[] args) throws Exception {
    method configure (line 47) | @Override // 为了打包springboot项目
    method commandLineRunner (line 52) | @Bean

FILE: java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/GlobalRequestBodyAdvice2.java
  class GlobalRequestBodyAdvice2 (line 20) | @ControllerAdvice(basePackages = "com.jun.plugin.*.controller")//此处设置需要当...
    method supports (line 25) | @Override
    method beforeBodyRead (line 36) | @Override
    method afterBodyRead (line 52) | @Override
    method handleEmptyBody (line 60) | @Override
  class XHttpInputMessage2 (line 67) | class XHttpInputMessage2 implements HttpInputMessage {
    method XHttpInputMessage2 (line 71) | public XHttpInputMessage2(HttpInputMessage httpInputMessage, String en...
    method encode (line 76) | private InputStream encode(InputStream body, String encode) {
    method getBody (line 81) | @Override
    method getHeaders (line 86) | @Override

FILE: java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/MetaObjectHandlerConfig2.java
  class MetaObjectHandlerConfig2 (line 20) | @Component
    method insertFill (line 27) | @Override
    method updateFill (line 64) | @Override

FILE: java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/MyBatisPlusConfig2.java
  class MyBatisPlusConfig2 (line 14) | @Configuration
    method paginationInterceptor (line 19) | @Bean

FILE: java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/RedisCacheConfig2.java
  class RedisCacheConfig2 (line 26) | @Configuration
    method redisTemplate (line 36) | @Bean
    method redisCacheManager (line 52) | @Bean(name = "redisCacheManager")
    method getRedisCacheConfigurationMap (line 68) | private Map<String, RedisCacheConfiguration> getRedisCacheConfiguratio...
    method getRedisCacheConfigurationWithTtl (line 81) | private RedisCacheConfiguration getRedisCacheConfigurationWithTtl(Inte...

FILE: java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/ResourcesConfig2.java
  class ResourcesConfig2 (line 14) | @Configuration
    method addCorsMappings (line 29) | @Override
    method addViewControllers (line 39) | @Override
    method addResourceHandlers (line 49) | @Override
    method addInterceptors (line 82) | @Override

FILE: java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/SwaggerConfiguration2.java
  class SwaggerConfiguration2 (line 26) | @Configuration
    method createRestApi (line 32) | @Bean
    method apiInfo (line 43) | private ApiInfo apiInfo() {

FILE: java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/ThymeleafConfigration2.java
  class ThymeleafConfigration2 (line 13) | @Configuration
    method firstTemplateResolver (line 16) | @Bean
    method secondaryTemplateResolver3 (line 62) | @Bean

FILE: java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/WebMvcConfig.java
  class WebMvcConfig (line 14) | @Configuration
    method addCorsMappings (line 27) | @Override
    method addViewControllers (line 37) | @Override
    method addResourceHandlers (line 48) | @Override
    method addInterceptors (line 70) | @Override
    method resourceViewResolver (line 85) | @Bean
    method configureViewResolvers (line 100) | @Override

FILE: java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/interceptor/MyInterceptor2.java
  class MyInterceptor2 (line 15) | @Component
    method preHandle (line 18) | @Override
    method postHandle (line 26) | @Override
    method afterCompletion (line 34) | @Override

FILE: java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/interceptor/MybatisExecutor2.java
  class MybatisExecutor2 (line 16) | @Slf4j
    method intercept (line 20) | @Override
    method plugin (line 58) | @Override
    method setProperties (line 63) | @Override

FILE: java_project_template/jun_api_service_simple/src/main/resources/files/tree.sql
  type t_tree (line 2) | create  table    t_tree(id  varchar(3)  ,  pid  varchar(3)  ,  name  var...

FILE: java_project_template/jun_api_service_simple/src/test/java/CodeGenerator.java
  class CodeGenerator (line 12) | public class CodeGenerator {
    method main (line 15) | public static void main(String[] args) throws Exception {
    method getTemplates (line 25) | public static List<String> getTemplates() {

FILE: java_project_template/maven_javaproject/src/main/java/com/jun/plugin/teamplate/App.java
  class App (line 7) | public class App {
    method main (line 8) | public static void main( String[] args ) {

FILE: java_project_template/maven_javaproject/src/test/java/com/jun/plugin/teamplate/AppTest.java
  class AppTest (line 6) | @Test
    method testApp (line 9) | public void testApp() {

FILE: java_project_template/springboot-api-jwt/src/main/java/com/company/project/Application.java
  class Application (line 15) | @SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
    method main (line 21) | public static void main(String[] args) throws Exception {

FILE: java_project_template/springboot-api-jwt/src/main/java/com/company/project/configurer/LoginInterceptor.java
  class LoginInterceptor (line 25) | public class LoginInterceptor extends HandlerInterceptorAdapter {
    method preHandle (line 28) | @Override
    method responseResult (line 59) | private void responseResult(HttpServletResponse response, Result resul...

FILE: java_project_template/springboot-api-jwt/src/main/java/com/company/project/configurer/MyBatisPlusConfig.java
  class MyBatisPlusConfig (line 11) | @Configuration
    method paginationInterceptor (line 17) | @Bean

FILE: java_project_template/springboot-api-jwt/src/main/java/com/company/project/configurer/SwaggerConfiguration.java
  class SwaggerConfiguration (line 16) | @Configuration
    method createRestApi (line 22) | @Bean
    method apiInfo (line 32) | private ApiInfo apiInfo() {

FILE: java_project_template/springboot-api-jwt/src/main/java/com/company/project/configurer/WebMvcConfigurer.java
  class WebMvcConfigurer (line 38) | @Configuration
    method loginInterceptor (line 43) | @Bean
    method configureMessageConverters (line 50) | @Override
    method configureHandlerExceptionResolvers (line 67) | @Override
    method handleMethodArgumentNotValidException (line 104) | @ExceptionHandler(MethodArgumentNotValidException.class)
    method addCorsMappings (line 114) | @Override
    method addInterceptors (line 124) | @Override
    method responseResult (line 137) | private void responseResult(HttpServletResponse response, Result resul...
    method addResourceHandlers (line 153) | @Override
    method configureDefaultServletHandling (line 168) | @Override

FILE: java_project_template/springboot-api-jwt/src/main/java/com/company/project/core/ApplicationContextUtil.java
  class ApplicationContextUtil (line 15) | @Component
    method getApplicationContext (line 20) | public static ApplicationContext getApplicationContext() {
    method setApplicationContext (line 25) | @Override
    method getBean (line 31) | public static Object getBean(String beanName) {

FILE: java_project_template/springboot-api-jwt/src/main/java/com/company/project/core/Result.java
  class Result (line 8) | public class Result<T> {
    method setCode (line 14) | public Result setCode(ResultCode resultCode) {
    method getCode (line 19) | public int getCode() {
    method getMessage (line 23) | public String getMessage() {
    method setMessage (line 27) | public Result setMessage(String message) {
    method getData (line 32) | public T getData() {
    method setData (line 36) | public Result setData(T data) {
    method getSuccess (line 41) | public Boolean getSuccess() {
    method setSuccess (line 45) | public Result setSuccess(Boolean success) {
    method toString (line 50) | @Override

FILE: java_project_template/springboot-api-jwt/src/main/java/com/company/project/core/ResultCode.java
  type ResultCode (line 6) | public enum ResultCode {
    method ResultCode (line 16) | ResultCode(int code) {
    method code (line 20) | public int code() {

FILE: java_project_template/springboot-api-jwt/src/main/java/com/company/project/core/ResultGenerator.java
  class ResultGenerator (line 6) | public class ResultGenerator {
    method genSuccessResult (line 9) | public static Result genSuccessResult() {
    method genSuccessResult (line 16) | public static <T> Result<T> genSuccessResult(T data) {
    method genFailResult (line 24) | public static Result genFailResult(String message) {

FILE: java_project_template/springboot-api-jwt/src/main/java/com/company/project/core/ServiceException.java
  class ServiceException (line 6) | public class ServiceException extends RuntimeException {
    method ServiceException (line 7) | public ServiceException() {
    method ServiceException (line 10) | public ServiceException(String message) {
    method ServiceException (line 14) | public ServiceException(String message, Throwable cause) {

FILE: java_project_template/springboot-api-jwt/src/main/java/com/company/project/dao/UserMapper.java
  type UserMapper (line 14) | public interface UserMapper extends BaseMapper<User> {

FILE: java_project_template/springboot-api-jwt/src/main/java/com/company/project/model/User.java
  class User (line 24) | @Data

FILE: java_project_template/springboot-api-jwt/src/main/java/com/company/project/service/IUserService.java
  type IUserService (line 14) | public interface IUserService extends IService<User> {

FILE: java_project_template/springboot-api-jwt/src/main/java/com/company/project/service/impl/UserServiceImpl.java
  class UserServiceImpl (line 17) | @Service

FILE: java_project_template/springboot-api-jwt/src/main/java/com/company/project/utils/JwtUtils.java
  class JwtUtils (line 14) | public class JwtUtils {
    method geneJsonWebToken (line 33) | public static String geneJsonWebToken(User user){
    method checkJWT (line 51) | public static Claims checkJWT(String token ){
    method isAdmin (line 69) | public static boolean isAdmin(HttpServletRequest request) {

FILE: java_project_template/springboot-api-jwt/src/main/java/com/company/project/utils/MD5Utils.java
  class MD5Utils (line 7) | public class MD5Utils {
    method Encrypt (line 17) | public static String Encrypt(String password, boolean isAddSalt){
    method Encrypt (line 33) | public static String Encrypt(byte[] bytes){
    method Encrypt (line 46) | public static String Encrypt(String password, String salt){
    method main (line 53) | public static void main(String[] args){

FILE: java_project_template/springboot-api-jwt/src/main/java/com/company/project/web/UserController.java
  class UserController (line 32) | @Slf4j
    method login (line 40) | @ApiOperation("登陆")
    method register (line 58) | @ApiOperation("注册")
    method delete (line 72) | @ApiOperation(value = "删除")
    method update (line 79) | @ApiOperation(value = "更新")
    method findListByPage (line 88) | @ApiOperation(value = "查询分页数据")
    method findById (line 101) | @ApiOperation(value = "id查询")

FILE: java_project_template/springboot-api-jwt/src/test/java/CodeGenerator.java
  class CodeGenerator (line 14) | public class CodeGenerator {
    method main (line 22) | public static void main(String[] args) {

FILE: java_project_template/springboot-api-jwt/src/test/java/com/company/project/Tester.java
  class Tester (line 11) | @RunWith(SpringRunner.class)
    method test (line 15) | @Test

FILE: java_project_template/springboot-api-jwt/src/test/resources/user.sql
  type `user` (line 24) | CREATE TABLE `user`  (

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/Application.java
  class Application (line 15) | @SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
    method main (line 21) | public static void main(String[] args) throws Exception {

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/configurer/LoginInterceptor.java
  class LoginInterceptor (line 25) | public class LoginInterceptor extends HandlerInterceptorAdapter {
    method preHandle (line 32) | @Override
    method responseResult (line 62) | private void responseResult(HttpServletResponse response, Result resul...

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/configurer/MyBatisPlusConfig.java
  class MyBatisPlusConfig (line 11) | @Configuration
    method paginationInterceptor (line 17) | @Bean

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/configurer/SwaggerConfiguration.java
  class SwaggerConfiguration (line 16) | @Configuration
    method createRestApi (line 22) | @Bean
    method apiInfo (line 32) | private ApiInfo apiInfo() {

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/configurer/WebMvcConfigurer.java
  class WebMvcConfigurer (line 39) | @Configuration
    method loginInterceptor (line 44) | @Bean
    method configureMessageConverters (line 52) | @Override
    method configureHandlerExceptionResolvers (line 69) | @Override
    method handleMethodArgumentNotValidException (line 106) | @ExceptionHandler(MethodArgumentNotValidException.class)
    method addCorsMappings (line 116) | @Override
    method addInterceptors (line 126) | @Override
    method responseResult (line 139) | private void responseResult(HttpServletResponse response, Result resul...
    method addResourceHandlers (line 154) | @Override
    method configureDefaultServletHandling (line 169) | @Override

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/core/ApplicationContextUtil.java
  class ApplicationContextUtil (line 15) | @Component
    method getApplicationContext (line 20) | public static ApplicationContext getApplicationContext() {
    method setApplicationContext (line 25) | @Override
    method getBean (line 31) | public static Object getBean(String beanName) {

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/core/Result.java
  class Result (line 8) | public class Result<T> {
    method setCode (line 14) | public Result setCode(ResultCode resultCode) {
    method getCode (line 19) | public int getCode() {
    method getMessage (line 23) | public String getMessage() {
    method setMessage (line 27) | public Result setMessage(String message) {
    method getData (line 32) | public T getData() {
    method setData (line 36) | public Result setData(T data) {
    method getSuccess (line 41) | public Boolean getSuccess() {
    method setSuccess (line 45) | public Result setSuccess(Boolean success) {
    method toString (line 50) | @Override

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/core/ResultCode.java
  type ResultCode (line 6) | public enum ResultCode {
    method ResultCode (line 16) | ResultCode(int code) {
    method code (line 20) | public int code() {

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/core/ResultGenerator.java
  class ResultGenerator (line 6) | public class ResultGenerator {
    method genSuccessResult (line 9) | public static Result genSuccessResult() {
    method genSuccessResult (line 16) | public static <T> Result<T> genSuccessResult(T data) {
    method genFailResult (line 24) | public static Result genFailResult(String message) {

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/core/ServiceException.java
  class ServiceException (line 6) | public class ServiceException extends RuntimeException {
    method ServiceException (line 7) | public ServiceException() {
    method ServiceException (line 10) | public ServiceException(String message) {
    method ServiceException (line 14) | public ServiceException(String message, Throwable cause) {

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/dao/UserMapper.java
  type UserMapper (line 14) | public interface UserMapper extends BaseMapper<User> {

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/model/User.java
  class User (line 24) | @Data

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/service/HttpSessionService.java
  class HttpSessionService (line 19) | @Service
    method createTokenAndUser (line 34) | public String createTokenAndUser(User user) {
    method getUserIdByToken (line 52) | public static String getUserIdByToken(String token) {
    method getTokenFromHeader (line 65) | public String getTokenFromHeader() {
    method getCurrentSession (line 79) | public JSONObject getCurrentSession() {
    method abortUserByToken (line 98) | public void abortUserByToken() {
    method abortAllUserByToken (line 106) | public void abortAllUserByToken() {
    method abortUserByUserId (line 115) | public void abortUserByUserId(Integer userId) {
    method getRandomToken (line 126) | private String getRandomToken(int length) {

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/service/IUserService.java
  type IUserService (line 15) | public interface IUserService extends IService<User> {
    method checkPassword (line 17) | Result checkPassword(User userParam);

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/service/RedisService.java
  class RedisService (line 17) | @Service
    method exists (line 22) | public boolean exists(String key) {
    method get (line 26) | public String get(String key) {
    method del (line 32) | public void del(String key) {
    method setAndExpire (line 39) | public void setAndExpire(String key, String value, int seconds) {
    method setExpire (line 45) | public void setExpire(String key, Date endTime) {
    method keys (line 51) | public Set keys(String pattern) {
    method delKeys (line 55) | public void delKeys(String pattern) {

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/service/impl/UserServiceImpl.java
  class UserServiceImpl (line 24) | @Service
    method checkPassword (line 38) | @Override

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/utils/ImageCodeUtil.java
  class ImageCodeUtil (line 13) | @Slf4j
    method getFont (line 32) | private Font getFont() {
    method getRandColor (line 39) | private Color getRandColor(int fc, int bc) {
    method getRandcode (line 53) | public void getRandcode(HttpServletRequest request, HttpServletRespons...
    method drowString (line 87) | private String drowString(Graphics g, String randomString, int i) {
    method drowLine (line 102) | private void drowLine(Graphics g) {
    method getRandomString (line 113) | public String getRandomString(int num) {

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/utils/MD5Utils.java
  class MD5Utils (line 7) | public class MD5Utils {
    method Encrypt (line 17) | public static String Encrypt(String password, boolean isAddSalt){
    method Encrypt (line 33) | public static String Encrypt(byte[] bytes){
    method Encrypt (line 46) | public static String Encrypt(String password, String salt){
    method main (line 53) | public static void main(String[] args){

FILE: java_project_template/springboot-api-session/src/main/java/com/company/project/web/UserController.java
  class UserController (line 43) | @Slf4j
    method login (line 56) | @ApiOperation("登陆")
    method register (line 83) | @ApiOperation("注册")
    method updatePassword (line 97) | @ApiOperation("修改密码")
    method logout (line 126) | @ApiOperation("登出")
    method validateToken (line 134) | @ApiOperation("校验token是否有效")
    method delete (line 141) | @ApiOperation(value = "删除")
    method update (line 148) | @ApiOperation(value = "更新")
    method findListByPage (line 157) | @ApiOperation(value = "查询分页数据")
    method findById (line 170) | @ApiOperation(value = "id查询")
    method getVerify (line 176) | @ApiOperation(value = "生成验证码")
    method checkVerify (line 191) | @ApiOperation(value = "校验验证码")

FILE: java_project_template/springboot-api-session/src/test/java/CodeGenerator.java
  class CodeGenerator (line 14) | public class CodeGenerator {
    method main (line 22) | public static void main(String[] args) {

FILE: java_project_template/springboot-api-session/src/test/java/com/company/project/Tester.java
  class Tester (line 11) | @RunWith(SpringRunner.class)
    method test (line 15) | @Test

FILE: java_project_template/springboot-api-session/src/test/resources/user.sql
  type `user` (line 24) | CREATE TABLE `user`  (

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/Application.java
  class Application (line 15) | @SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
    method main (line 21) | public static void main(String[] args) throws Exception {

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/configurer/LoginInterceptor.java
  class LoginInterceptor (line 25) | public class LoginInterceptor extends HandlerInterceptorAdapter {
    method preHandle (line 32) | @Override
    method responseResult (line 62) | private void responseResult(HttpServletResponse response, Result resul...

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/configurer/MyBatisPlusConfig.java
  class MyBatisPlusConfig (line 11) | @Configuration
    method paginationInterceptor (line 17) | @Bean

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/configurer/SwaggerConfiguration.java
  class SwaggerConfiguration (line 16) | @Configuration
    method createRestApi (line 22) | @Bean
    method apiInfo (line 32) | private ApiInfo apiInfo() {

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/configurer/WebMvcConfigurer.java
  class WebMvcConfigurer (line 39) | @Configuration
    method loginInterceptor (line 44) | @Bean
    method configureMessageConverters (line 52) | @Override
    method configureHandlerExceptionResolvers (line 69) | @Override
    method handleMethodArgumentNotValidException (line 106) | @ExceptionHandler(MethodArgumentNotValidException.class)
    method addCorsMappings (line 116) | @Override
    method addInterceptors (line 126) | @Override
    method responseResult (line 139) | private void responseResult(HttpServletResponse response, Result resul...
    method addResourceHandlers (line 154) | @Override
    method configureDefaultServletHandling (line 169) | @Override

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/core/ApplicationContextUtil.java
  class ApplicationContextUtil (line 15) | @Component
    method getApplicationContext (line 20) | public static ApplicationContext getApplicationContext() {
    method setApplicationContext (line 25) | @Override
    method getBean (line 31) | public static Object getBean(String beanName) {

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/core/Result.java
  class Result (line 8) | public class Result<T> {
    method setCode (line 14) | public Result setCode(ResultCode resultCode) {
    method getCode (line 19) | public int getCode() {
    method getMessage (line 23) | public String getMessage() {
    method setMessage (line 27) | public Result setMessage(String message) {
    method getData (line 32) | public T getData() {
    method setData (line 36) | public Result setData(T data) {
    method getSuccess (line 41) | public Boolean getSuccess() {
    method setSuccess (line 45) | public Result setSuccess(Boolean success) {
    method toString (line 50) | @Override

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/core/ResultCode.java
  type ResultCode (line 6) | public enum ResultCode {
    method ResultCode (line 16) | ResultCode(int code) {
    method code (line 20) | public int code() {

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/core/ResultGenerator.java
  class ResultGenerator (line 6) | public class ResultGenerator {
    method genSuccessResult (line 9) | public static Result genSuccessResult() {
    method genSuccessResult (line 16) | public static <T> Result<T> genSuccessResult(T data) {
    method genFailResult (line 24) | public static Result genFailResult(String message) {

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/core/ServiceException.java
  class ServiceException (line 6) | public class ServiceException extends RuntimeException {
    method ServiceException (line 7) | public ServiceException() {
    method ServiceException (line 10) | public ServiceException(String message) {
    method ServiceException (line 14) | public ServiceException(String message, Throwable cause) {

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/dao/UserMapper.java
  type UserMapper (line 14) | public interface UserMapper extends BaseMapper<User> {

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/model/User.java
  class User (line 24) | @Data

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/service/HttpSessionService.java
  class HttpSessionService (line 19) | @Service
    method createTokenAndUser (line 34) | public String createTokenAndUser(User user) {
    method getUserIdByToken (line 52) | public static String getUserIdByToken(String token) {
    method getTokenFromHeader (line 65) | public String getTokenFromHeader() {
    method getCurrentSession (line 79) | public JSONObject getCurrentSession() {
    method abortUserByToken (line 98) | public void abortUserByToken() {
    method abortAllUserByToken (line 106) | public void abortAllUserByToken() {
    method abortUserByUserId (line 115) | public void abortUserByUserId(Integer userId) {
    method getRandomToken (line 126) | private String getRandomToken(int length) {

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/service/IUserService.java
  type IUserService (line 15) | public interface IUserService extends IService<User> {
    method checkPassword (line 17) | Result checkPassword(User userParam);

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/service/RedisService.java
  class RedisService (line 17) | @Service
    method exists (line 22) | public boolean exists(String key) {
    method get (line 26) | public String get(String key) {
    method del (line 32) | public void del(String key) {
    method setAndExpire (line 39) | public void setAndExpire(String key, String value, int seconds) {
    method setExpire (line 45) | public void setExpire(String key, Date endTime) {
    method keys (line 51) | public Set keys(String pattern) {
    method delKeys (line 55) | public void delKeys(String pattern) {

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/service/impl/UserServiceImpl.java
  class UserServiceImpl (line 24) | @Service
    method checkPassword (line 38) | @Override

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/utils/ImageCodeUtil.java
  class ImageCodeUtil (line 13) | @Slf4j
    method getFont (line 32) | private Font getFont() {
    method getRandColor (line 39) | private Color getRandColor(int fc, int bc) {
    method getRandcode (line 53) | public void getRandcode(HttpServletRequest request, HttpServletRespons...
    method drowString (line 87) | private String drowString(Graphics g, String randomString, int i) {
    method drowLine (line 102) | private void drowLine(Graphics g) {
    method getRandomString (line 113) | public String getRandomString(int num) {

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/utils/JwtUtils.java
  class JwtUtils (line 14) | public class JwtUtils {
    method geneJsonWebToken (line 33) | public static String geneJsonWebToken(User user){
    method checkJWT (line 51) | public static Claims checkJWT(String token ){
    method isAdmin (line 69) | public static boolean isAdmin(HttpServletRequest request) {

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/utils/MD5Utils.java
  class MD5Utils (line 7) | public class MD5Utils {
    method Encrypt (line 17) | public static String Encrypt(String password, boolean isAddSalt){
    method Encrypt (line 33) | public static String Encrypt(byte[] bytes){
    method Encrypt (line 46) | public static String Encrypt(String password, String salt){
    method main (line 53) | public static void main(String[] args){

FILE: java_project_template/springboot-api-v2/src/main/java/com/company/project/web/UserController.java
  class UserController (line 43) | @Slf4j
    method login (line 56) | @ApiOperation("登陆")
    method register (line 83) | @ApiOperation("注册")
    method updatePassword (line 97) | @ApiOperation("修改密码")
    method logout (line 126) | @ApiOperation("登出")
    method validateToken (line 134) | @ApiOperation("校验token是否有效")
    method delete (line 141) | @ApiOperation(value = "删除")
    method update (line 148) | @ApiOperation(value = "更新")
    method findListByPage (line 157) | @ApiOperation(value = "查询分页数据")
    method findById (line 170) | @ApiOperation(value = "id查询")
    method getVerify (line 176) | @ApiOperation(value = "生成验证码")
    method checkVerify (line 191) | @ApiOperation(value = "校验验证码")

FILE: java_project_template/springboot-api-v2/src/test/java/CodeGenerator.java
  class CodeGenerator (line 14) | public class CodeGenerator {
    method main (line 22) | public static void main(String[] args) {

FILE: java_project_template/springboot-api-v2/src/test/java/com/company/project/Tester.java
  class Tester (line 11) | @RunWith(SpringRunner.class)
    method test (line 15) | @Test

FILE: java_project_template/springboot-api-v2/src/test/resources/user.sql
  type `user` (line 24) | CREATE TABLE `user`  (

FILE: java_project_template/springboot_api_simple/src/main/java/com/company/project/Application.java
  class Application (line 15) | @SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
    method main (line 21) | public static void main(String[] args) throws Exception {

FILE: java_project_template/springboot_api_simple/src/main/java/com/company/project/config/LoginInterceptor.java
  class LoginInterceptor (line 24) | public class LoginInterceptor extends HandlerInterceptorAdapter {
    method preHandle (line 31) | @Override
    method responseResult (line 59) | private void responseResult(HttpServletResponse response, Result resul...

FILE: java_project_template/springboot_api_simple/src/main/java/com/company/project/config/MyBatisPlusConfig.java
  class MyBatisPlusConfig (line 11) | @Configuration
    method paginationInterceptor (line 17) | @Bean

FILE: java_project_template/springboot_api_simple/src/main/java/com/company/project/config/SwaggerConfiguration.java
  class SwaggerConfiguration (line 16) | @Configuration
    method createRestApi (line 22) | @Bean
    method apiInfo (line 32) | private ApiInfo apiInfo() {

FILE: java_project_template/springboot_api_simple/src/main/java/com/company/project/config/WebMvcConfigurer.java
  class WebMvcConfigurer (line 37) | @Configuration
    method loginInterceptor (line 42) | @Bean
    method configureMessageConverters (line 50) | @Override
    method configureHandlerExceptionResolvers (line 67) | @Override
    method handleMethodArgumentNotValidException (line 105) | @ExceptionHandler(MethodArgumentNotValidException.class)
    method addCorsMappings (line 115) | @Override
    method addInterceptors (line 125) | @Override
    method responseResult (line 138) | private void responseResult(HttpServletResponse response, Result resul...
    method addResourceHandlers (line 153) | @Override
    method configureDefaultServletHandling (line 168) | @Override

FILE: java_project_template/springboot_api_simple/src/main/java/com/company/project/core/HttpSessionService.java
  class HttpSessionService (line 19) | @Service
    method createTokenAndUser (line 34) | public String createTokenAndUser(User user) {
    method getUserIdByToken (line 52) | public static String getUserIdByToken(String token) {
    method getTokenFromHeader (line 65) | public String getTokenFromHeader() {
    method getCurrentSession (line 79) | public JSONObject getCurrentSession() {
    method abortUserByToken (line 98) | public void abortUserByToken() {
    method abortAllUserByToken (line 106) | public void abortAllUserByToken() {
    method abortUserByUserId (line 115) | public void abortUserByUserId(Integer userId) {
    method getRandomToken (line 126) | private String getRandomToken(int length) {

FILE: java_project_template/springboot_api_simple/src/main/java/com/company/project/core/RedisService.java
  class RedisService (line 17) | @Service
    method exists (line 22) | public boolean exists(String key) {
    method get (line 26) | public String get(String key) {
    method del (line 32) | public void del(String key) {
    method setAndExpire (line 39) | public void setAndExpire(String key, String value, int seconds) {
    method setExpire (line 45) | public void setExpire(String key, Date endTime) {
    method keys (line 51) | public Set keys(String pattern) {
    method delKeys (line 55) | public void delKeys(String pattern) {

FILE: java_project_template/springboot_api_simple/src/main/java/com/company/project/core/ResultCode.java
  type ResultCode (line 6) | public enum ResultCode {
    method ResultCode (line 16) | ResultCode(int code) {
    method code (line 20) | public int code() {

FILE: java_project_template/springboot_api_simple/src/main/java/com/company/project/dao/UserMapper.java
  type UserMapper (line 14) | public interface UserMapper extends BaseMapper<User> {

FILE: java_project_template/springboot_api_simple/src/main/java/com/company/project/model/User.java
  class User (line 18) | @Data

FILE: java_project_template/springboot_api_simple/src/main/java/com/company/project/service/IUserService.java
  type IUserService (line 15) | public interface IUserService extends IService<User> {
    method checkPassword (line 17) | Result checkPassword(User userParam);

FILE: java_project_template/springboot_api_simple/src/main/java/com/company/project/service/impl/UserServiceImpl.java
  class UserServiceImpl (line 23) | @Service
    method checkPassword (line 37) | @Override

FILE: java_project_template/springboot_api_simple/src/main/java/com/company/project/utils/ImageCodeUtil.java
  class ImageCodeUtil (line 13) | @Slf4j
    method getFont (line 32) | private Font getFont() {
    method getRandColor (line 39) | private Color getRandColor(int fc, int bc) {
    method getRandcode (line 53) | public void getRandcode(HttpServletRequest request, HttpServletRespons...
    method drowString (line 87) | private String drowString(Graphics g, String randomString, int i) {
    method drowLine (line 102) | private void drowLine(Graphics g) {
    method getRandomString (line 113) | public String getRandomString(int num) {

FILE: java_project_template/springboot_api_simple/src/main/java/com/company/project/utils/MD5Utils.java
  class MD5Utils (line 7) | public class MD5Utils {
    method Encrypt (line 17) | public static String Encrypt(String password, boolean isAddSalt){
    method Encrypt (line 33) | public static String Encrypt(byte[] bytes){
    method Encrypt (line 46) | public static String Encrypt(String password, String salt){
    method main (line 53) | public static void main(String[] args){

FILE: java_project_template/springboot_api_simple/src/main/java/com/company/project/web/UserController.java
  class UserController (line 41) | @Slf4j
    method login (line 54) | @ApiOperation("登陆")//请求方式:POST,实际使用时屏蔽GET请求
    method register (line 81) | @ApiOperation("注册")
    method updatePassword (line 95) | @ApiOperation("修改密码")
    method logout (line 124) | @ApiOperation("登出")
    method validateToken (line 132) | @ApiOperation("校验token是否有效")
    method delete (line 139) | @ApiOperation(value = "删除")
    method update (line 146) | @ApiOperation(value = "更新")
    method findListByPage (line 155) | @ApiOperation(value = "查询分页数据")
    method findById (line 168) | @ApiOperation(value = "id查询")
    method getVerify (line 174) | @ApiOperation(value = "生成验证码")
    method checkVerify (line 189) | @ApiOperation(value = "校验验证码")

FILE: java_project_template/springboot_api_simple/src/main/java/com/jun/plugin/common/Result.java
  class Result (line 12) | public class Result extends HashMap<String, Object>
    method getSuccess (line 27) | public Boolean getSuccess() {
    method setSuccess (line 31) | public Result setSuccess(Boolean success) {
    method Result (line 41) | public Result()
    method Result (line 51) | public Result(int code, String msg)
    method Result (line 64) | public Result(int code, String msg, Object data)
    method getResult (line 71) | public static Result getResult(int i, String s) {
    method getResult (line 75) | public static Result getResult(BaseResponseCode systemRedisBusy) {
    method put (line 86) | @Override
    method success (line 98) | public static Result success()
    method ok (line 102) | public static Result ok()
    method ok (line 112) | public static Result ok(Object data)
    method success (line 116) | public static Result success(Object data)
    method success (line 128) | public static Result success(String msg, Object data)
    method success (line 132) | public static Result success(int code, String msg, Object data)
    method fail (line 142) | public static Result fail()
    method error (line 146) | public static Result error()
    method fail (line 157) | public static Result fail(String msg)
    method error (line 161) | public static Result error(String msg)
    method error (line 173) | public static Result error(String msg, Object data)
    method error (line 185) | public static Result error(int code, String msg)

FILE: java_project_template/springboot_api_simple/src/main/java/com/jun/plugin/common/exception/BusinessException.java
  class BusinessException (line 14) | public class BusinessException extends RuntimeException {
    method BusinessException (line 25) | public BusinessException(int messageCode, String message) {
    method BusinessException (line 31) | public BusinessException(String message) {
    method BusinessException (line 42) | public BusinessException(ResponseCodeInterface code) {
    method getMessageCode (line 46) | public int getMessageCode() {
    method getDetailMessage (line 50) | public String getDetailMessage() {

FILE: java_project_template/springboot_api_simple/src/main/java/com/jun/plugin/common/exception/code/BaseResponseCode.java
  type BaseResponseCode (line 11) | public enum BaseResponseCode implements ResponseCodeInterface {
    method BaseResponseCode (line 47) | BaseResponseCode(int code, String msg) {
    method getCode (line 52) | @Override
    method getMsg (line 57) | @Override

FILE: java_project_template/springboot_api_simple/src/main/java/com/jun/plugin/common/exception/code/ResponseCodeInterface.java
  type ResponseCodeInterface (line 10) | public interface ResponseCodeInterface {
    method getCode (line 16) | int getCode();
    method getMsg (line 23) | String getMsg();

FILE: java_project_template/springboot_api_simple/src/test/java/CodeGenerator.java
  class CodeGenerator (line 13) | public class CodeGenerator {
    method main (line 21) | public static void main(String[] args) {

FILE: java_project_template/springboot_api_simple/src/test/resources/user.sql
  type `t_user` (line 24) | CREATE TABLE `t_user`  (

FILE: java_project_template/springboot_jfinal_activerecord/sql/emp.sql
  type `emp` (line 1) | CREATE TABLE `emp` (
  type `emp_balance` (line 14) | CREATE TABLE `emp_balance` (

FILE: java_project_template/springboot_jfinal_activerecord/src/main/java/com/lxhc/Application.java
  class Application (line 11) | @SpringBootApplication
    method main (line 13) | public static void main(String[] args) {

FILE: java_project_template/springboot_jfinal_activerecord/src/main/java/com/lxhc/config/JfinalActiveRecordConfig.java
  class JfinalActiveRecordConfig (line 18) | @Configuration
    method masterDataSource (line 30) | @Bean
    method bizDataSource (line 36) | @Bean
    method initMainActiveRecord (line 46) | @Bean
    method initBizActiveRecord (line 62) | @Bean
    method masterTransactionAwareDataSourceProxy (line 76) | @Bean
    method bizTransactionAwareDataSourceProxy (line 83) | @Bean
    method masterDataSourceTransactionManager (line 93) | @Bean(name="mainDataSourceTransactionManager")
    method bizDataSourceTransactionManager (line 100) | @Bean(name="bizDataSourceTransactionManager")

FILE: java_project_template/springboot_jfinal_activerecord/src/main/java/com/lxhc/model/Emp.java
  class Emp (line 10) | public class Emp extends Model<Emp> {

FILE: java_project_template/springboot_jfinal_activerecord/src/main/java/com/lxhc/model/EmpBalance.java
  class EmpBalance (line 10) | public class EmpBalance extends Model<EmpBalance> {

FILE: java_project_template/springboot_jfinal_activerecord/src/main/java/com/lxhc/service/EmpBalanceService.java
  class EmpBalanceService (line 13) | @Service
    method addBalance (line 16) | @Transactional(transactionManager="mainDataSourceTransactionManager", ...

FILE: java_project_template/springboot_jfinal_activerecord/src/test/java/com/lxhc/model/EmpTest.java
  class EmpTest (line 16) | @RunWith(SpringRunner.class)
    method masterEmpTest (line 20) | @Test

FILE: java_project_template/springboot_jfinal_activerecord/src/test/java/com/lxhc/service/EmpBalanceServiceTest.java
  class EmpBalanceServiceTest (line 15) | @RunWith(SpringRunner.class)
    method addBalanceTest (line 22) | @Test

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/array/GcdAndLcm.java
  class GcdAndLcm (line 4) | public class GcdAndLcm {
    method gcd01 (line 8) | public int gcd01(int m,int n){
    method gcd02 (line 24) | public int gcd02(int m,int n){
    method lcm (line 37) | public int lcm(int m,int n){
    method testGcd01 (line 40) | @Test
    method testGcd02 (line 45) | @Test
    method testLcm (line 50) | @Test

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/array/InverseArray.java
  class InverseArray (line 6) | public class InverseArray<T> {
    method swap (line 7) | public void swap(T[] array,int a,int b){
    method printArray (line 12) | public void printArray(T[] array){
    method inverse (line 18) | public void inverse(T[] array){

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/array/MonkeyEatFruit.java
  class MonkeyEatFruit (line 12) | public class MonkeyEatFruit {
    method eat01 (line 17) | public int eat01(int n){
    method eat02 (line 29) | public int eat02(int n){
    method eat03 (line 45) | public int eat03(int n){
    method check (line 52) | public void check(int n,int num){
    method test01 (line 60) | @Test
    method test02 (line 66) | @Test
    method test03 (line 72) | @Test
    method testCheck (line 79) | @Test

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/array/SeriesSum.java
  class SeriesSum (line 8) | public class SeriesSum {
    method printResult (line 9) | public void printResult(int start,int end){
    method addSum (line 15) | public void addSum(int s){
    method test (line 35) | @Test

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/array/TestInverse.java
  class TestInverse (line 5) | public class TestInverse {
    method testInteger (line 9) | @Test

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/array/TwoSum.java
  class TwoSum (line 6) | public class TwoSum {
    method printResult (line 12) | public void printResult(int a, int b) {
    method twoSum01 (line 19) | public void twoSum01(int[] array, int s) {
    method twoSum02 (line 34) | public void twoSum02(int[] array, int s) {
    method twoSum03 (line 55) | public void twoSum03(int[] array, int s) {
    method test (line 65) | @Test

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/array/_026RemoveDuplicates.java
  class _026RemoveDuplicates (line 11) | public class _026RemoveDuplicates {
    method remove01 (line 15) | public int remove01(int[] nums) {
    method myArrayCopy (line 55) | public void myArrayCopy(int[] array1, int s1, int[] array2, int s2, in...
    method remove02 (line 68) | public int remove02(int[] nums) {
    method remove03 (line 97) | public int remove03(int[] nums) {
    method printNewArray (line 118) | public void printNewArray(int[] array, int len) {
    method test01 (line 125) | @Test
    method test02 (line 133) | @Test
    method test03 (line 141) | @Test

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/array/_040Climb.java
  class _040Climb (line 10) | public class _040Climb {
    method fib01 (line 16) | public int fib01(int n) {
    method fib02 (line 31) | public int fib02(int n) {
    method dfs (line 35) | public int dfs(int n, int[] array) {
    method fib03 (line 47) | public int fib03(int n) {
    method fib04 (line 61) | public int fib04(int n) {
    method fib05 (line 78) | public int fib05(int n) {
    method fib06 (line 95) | public int fib06(int n) {
    method test (line 108) | @Test

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/array/_189RotateArray.java
  class _189RotateArray (line 8) | public class _189RotateArray {
    method swap (line 9) | public void swap(int[] array, int a, int b) {
    method reverse (line 18) | public void reverse(int[] array, int start, int end) {
    method rotate (line 30) | public void rotate(int[] nums, int k) {
    method printArray (line 43) | public void printArray(int[] array) {
    method test (line 50) | @Test

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/datastructure/jcollections/IArrayList.java
  class IArrayList (line 11) | public class IArrayList<E> implements IList<E> {
    method IArrayList (line 20) | public IArrayList() {
    method IArrayList (line 24) | public IArrayList(int initialCapacity) {
    method size (line 31) | @Override
    method isEmpty (line 36) | @Override
    method contains (line 41) | @Override
    method add (line 51) | @Override
    method add (line 64) | @Override
    method get (line 73) | @Override
    method set (line 80) | @Override
    method remove (line 89) | @Override
    method remove (line 110) | @Override
    method indexOf (line 119) | @Override
    method lastIndexOf (line 137) | @Override
    method clear (line 155) | @Override
    method ensureCapacity (line 167) | private void ensureCapacity(int minCapacity) {
    method rangeCheck (line 179) | private void rangeCheck(int index) {
    method fastRemove (line 189) | private void fastRemove(int index) {

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/datastructure/jcollections/IList.java
  type IList (line 6) | public interface IList<E> {
    method size (line 11) | int size();
    method isEmpty (line 17) | boolean isEmpty();
    method contains (line 24) | boolean contains(Object o);
    method add (line 31) | boolean add(E element);
    method add (line 38) | void add(int index, E element);
    method get (line 45) | E get(int index);
    method set (line 53) | E set(int index, E element);
    method remove (line 60) | boolean remove(Object o);
    method remove (line 67) | E remove(int index);
    method indexOf (line 74) | int indexOf(Object o);
    method lastIndexOf (line 81) | int lastIndexOf(Object o);
    method clear (line 87) | void clear();

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/datastructure/tree/AVLTree.java
  class AVLTree (line 6) | public class AVLTree<T  extends Comparable<T>> {
    method AVLTree (line 14) | public AVLTree() {
    method AVLTree (line 18) | public AVLTree(T t) {
    method getRoot (line 30) | public AVLTree<T> getRoot() {
    method getLeftChild (line 42) | public AVLTree<T> getLeftChild() {
    method getRightChild (line 46) | public AVLTree<T> getRightChild() {
    method getParent (line 50) | public AVLTree<T> getParent() {
    method getHeight (line 54) | public int getHeight() {
    method getData (line 58) | public T getData() {
    method isEmpty (line 64) | private boolean isEmpty() {
    method getLeftHeight (line 68) | public int getLeftHeight() {
    method getRightHeight (line 72) | public int getRightHeight() {
    method updateHeight (line 76) | private int updateHeight() {
    method rootInsert (line 89) | private AVLTree<T> rootInsert(T t) {
    method process (line 120) | private AVLTree<T> process() {
    method insert (line 152) | public AVLTree<T> insert(T t) {
    method rotateRight (line 171) | private AVLTree<T> rotateRight(AVLTree<T> tree) {
    method rotateLeft (line 200) | private AVLTree<T> rotateLeft(AVLTree<T> tree) {
    method display (line 228) | public void display() {
    method displayHolder (line 235) | private void displayHolder(){
    method preOrderTraverse (line 255) | private void preOrderTraverse(AVLTree t) {
    method inOrderTraverse (line 266) | private void inOrderTraverse(AVLTree t) {
    method postOrderTraverse (line 278) | private void postOrderTraverse(AVLTree t) {
    method traverse (line 291) | public void traverse (AVLTree t, String mode) {
    method rootFind (line 305) | public AVLTree<T> rootFind(T t) {

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/datastructure/tree/BTree.java
  class BTree (line 12) | public class BTree {
    class Node (line 16) | private class Node {
      method Node (line 21) | public Node(int data) {
    method BTree (line 31) | public BTree() {
    method buildBTree (line 41) | public void buildBTree(Node node, int data) {
    method preOrder (line 67) | public void preOrder(Node node) {
    method preOrder2 (line 80) | public void preOrder2(Node node) {
    method inOrder (line 98) | public void inOrder(Node node) {
    method inOrder2 (line 111) | public void inOrder2(Node node) {
    method postOrder (line 129) | public void postOrder(Node node) {
    method postOrder2 (line 142) | public void postOrder2(Node node) {
    method levelOrder (line 167) | public void levelOrder(Node node) {

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/hash/ConsistentHashWithVN.java
  class ConsistentHashWithVN (line 13) | public class ConsistentHashWithVN {
    method matchServer (line 54) | private static String matchServer(String node) {
    method main (line 68) | public static void main(String[] args) {

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/hash/ConsistentHashWithoutVN.java
  class ConsistentHashWithoutVN (line 11) | public class ConsistentHashWithoutVN {
    method getHash (line 40) | private static int getHash(String str) {
    method matchServer (line 58) | private static String matchServer(String node) {
    method main (line 69) | public static void main(String[] args) {

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/hash/HashUtil.java
  class HashUtil (line 6) | public class HashUtil {
    method FNV1_32_HASH (line 13) | public static int FNV1_32_HASH(String str) {

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/palindrome/PalindromeString.java
  class PalindromeString (line 7) | public class PalindromeString {
    method isPalindrome (line 8) | public boolean isPalindrome(String str){
    method test (line 19) | @Test

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/palindrome/_125ValidPalindrome.java
  class _125ValidPalindrome (line 5) | public class _125ValidPalindrome {
    method isAlpha (line 10) | public boolean isAlpha(char c){
    method isPalindrome (line 17) | public boolean isPalindrome(String s) {
    method test (line 35) | @Test

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/sort/BubbleSort.java
  class BubbleSort (line 7) | public class BubbleSort {
    method bubbleSort (line 8) | public void bubbleSort(int[] a) {

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/sort/HalfSearch.java
  class HalfSearch (line 8) | public class HalfSearch {
    method halfSearch (line 9) | public int halfSearch(int[] a, int low, int high, int x) {

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/sort/HeapSort.java
  class HeapSort (line 7) | public class HeapSort {
    method heapSort (line 8) | public void heapSort(int[] a) {
    method buildMaxHeap (line 25) | private void buildMaxHeap(int[] a) {
    method adjustHeap (line 33) | private void adjustHeap(int[] a, int size, int parent) {

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/sort/InsertionSort.java
  class InsertionSort (line 7) | public class InsertionSort {
    method insertionSort (line 8) | public void insertionSort(int[] a) {

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/sort/MergeSort.java
  class MergeSort (line 7) | public class MergeSort {
    method mergeSort (line 9) | public void mergeSort(int[] a, int low, int high) {
    method merge (line 25) | private void merge(int a[], int low, int mid, int high) {

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/sort/QuickSort.java
  class QuickSort (line 10) | public class QuickSort {
    method quickSort (line 12) | public void quickSort(int[] a, int low, int high) {
    method quickSortNonRecur (line 24) | public void quickSortNonRecur(int[] a, int low, int high) {
    method partition (line 44) | private int partition(int[] a, int low, int high) {

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/sort/RadixSort.java
  class RadixSort (line 7) | public class RadixSort {
    method radixSort (line 9) | public void radixSort(int[] a, int begin, int end, int digit) {
    method getDigit (line 50) | private int getDigit(int x, int d) {

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/sort/SelectSort.java
  class SelectSort (line 7) | public class SelectSort {
    method selectSort (line 8) | public void selectSort(int[] a) {

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/sort/ShellSort.java
  class ShellSort (line 7) | public class ShellSort {
    method shellSort (line 8) | public void shellSort(int[] a) {

FILE: jun_java_plugins/jun_algorithm/src/main/java/com/jun/plugin/algorithm/util/GCD.java
  class GCD (line 9) | public class GCD {
    method getGCD (line 10) | public int getGCD(int a, int b) {

FILE: jun_java_plugins/jun_algorithm/src/test/java/com/jun/plugin/algorithm/datastructure/jcollections/IArrayListTest.java
  class IArrayListTest (line 15) | public class IArrayListTest {
    method setUp (line 19) | @Before
    method logic (line 24) | @Test
    method tearDown (line 32) | @After

FILE: jun_java_plugins/jun_algorithm/src/test/java/com/jun/plugin/algorithm/datastructure/tree/AVLTreeTest.java
  class AVLTreeTest (line 11) | public class AVLTreeTest {
    method main (line 12) | public static void main(String[] args) {

FILE: jun_java_plugins/jun_algorithm/src/test/java/com/jun/plugin/algorithm/datastructure/tree/BTreeTest.java
  class BTreeTest (line 10) | public class BTreeTest {
    method main (line 11) | public static void main(String[] args) {

FILE: jun_java_plugins/jun_algorithm/src/test/java/com/jun/plugin/algorithm/sort/BubbleSortTest.java
  class BubbleSortTest (line 7) | public class BubbleSortTest {
    method testBubbleSort (line 9) | @Test

FILE: jun_java_plugins/jun_algorithm/src/test/java/com/jun/plugin/algorithm/sort/HalfSearchTest.java
  class HalfSearchTest (line 7) | public class HalfSearchTest {
    method testHalfSearch (line 8) | @Test

FILE: jun_java_plugins/jun_algorithm/src/test/java/com/jun/plugin/algorithm/sort/HeapSortTest.java
  class HeapSortTest (line 7) | public class HeapSortTest {
    method testHeapSort (line 8) | @Test

FILE: jun_java_plugins/jun_algorithm/src/test/java/com/jun/plugin/algorithm/sort/InsertionSortTest.java
  class InsertionSortTest (line 7) | public class InsertionSortTest {
    method testInsertionSort (line 8) | @Test

FILE: jun_java_plugins/jun_algorithm/src/test/java/com/jun/plugin/algorithm/sort/MergeSortTest.java
  class MergeSortTest (line 7) | public class MergeSortTest {
    method testMergeSort (line 8) | @Test

FILE: jun_java_plugins/jun_algorithm/src/test/java/com/jun/plugin/algorithm/sort/QuickSortTest.java
  class QuickSortTest (line 10) | public class QuickSortTest {
    method testQuickSort (line 11) | @Test

FILE: jun_java_plugins/jun_algorithm/src/test/java/com/jun/plugin/algorithm/sort/RadixSortTest.java
  class RadixSortTest (line 7) | public class RadixSortTest {
    method testRadixSort (line 8) | @Test

FILE: jun_java_plugins/jun_algorithm/src/test/java/com/jun/plugin/algorithm/sort/SelectSortTest.java
  class SelectSortTest (line 9) | public class SelectSortTest {
    method testSelectSort (line 11) | @Test

FILE: jun_java_plugins/jun_algorithm/src/test/java/com/jun/plugin/algorithm/sort/ShellSortTest.java
  class ShellSortTest (line 7) | public class ShellSortTest {
    method testShellSort (line 8) | @Test

FILE: jun_java_plugins/jun_algorithm/src/test/java/com/jun/plugin/algorithm/sort/SortPerformanceTest.java
  class SortPerformanceTest (line 28) | public class SortPerformanceTest {
    method main (line 31) | public static void main(String[] args) {
    method insertionSortPerformance (line 68) | private Long insertionSortPerformance() {
    method shellSortPerformance (line 78) | private Long shellSortPerformance() {
    method bubbleSortPerformance (line 88) | private Long bubbleSortPerformance() {
    method selectSortPerformance (line 98) | private Long selectSortPerformance() {
    method mergeSortPerformance (line 108) | private Long mergeSortPerformance() {
    method qucikSortPerformance (line 118) | private Long qucikSortPerformance() {
    method heapSortPerformance (line 128) | private Long heapSortPerformance() {
    method radixSortPerformance (line 138) | private Long radixSortPerformance() {
    method apiArraysSortPerformance (line 148) | private Long apiArraysSortPerformance() {
    method createBenchMark (line 157) | private void createBenchMark() {
    method readBenchMark (line 179) | private int[] readBenchMark() {

FILE: jun_java_plugins/jun_aliyun_sms/src/main/java/com/jun/plugin/aliyunsms/config/AliSmsConfig.java
  class AliSmsConfig (line 14) | public class AliSmsConfig {
    method AliSmsConfig (line 15) | private AliSmsConfig(){}
    class SingletonHolder (line 36) | private static class SingletonHolder{
    method getAcsClient (line 42) | public static IAcsClient getAcsClient(){

FILE: jun_java_plugins/jun_aliyun_sms/src/main/java/com/jun/plugin/aliyunsms/config/SmsUtil.java
  class SmsUtil (line 14) | public class SmsUtil {
    method sendSms (line 16) | public static SendSmsResponse sendSms(SendSmsRequest request) {

FILE: jun_java_plugins/jun_aliyun_sms/src/main/java/com/jun/plugin/aliyunsms/demo/SmsDemo.java
  class SmsDemo (line 12) | public class SmsDemo {
    method main (line 14) | public static void main(String[] args) throws ClientException, Interru...

FILE: jun_java_plugins/jun_aliyun_sms/src/main/java/com/jun/plugin/aliyunsms/servlet/AliyunServlet.java
  class AliyunServlet (line 29) | @WebServlet("/AliyunServlet")
    method doGet (line 31) | protected void doGet(HttpServletRequest request, HttpServletResponse r...
    method doPost (line 69) | protected void doPost(HttpServletRequest request, HttpServletResponse ...

FILE: jun_java_plugins/jun_aliyun_sms/src/main/java/com/jun/plugin/aliyunsms/servlet/SendServlet.java
  class SendServlet (line 20) | public class SendServlet extends HttpServlet {
    method doGet (line 23) | @Override
    method doPost (line 29) | @Override

FILE: jun_java_plugins/jun_aliyun_sms/src/main/webapp/js/jquery-3.4.1.js
  function DOMEval (line 98) | function DOMEval( code, node, doc ) {
  function toType (line 128) | function toType( obj ) {
  function isArrayLike (line 496) | function isArrayLike( obj ) {
  function Sizzle (line 729) | function Sizzle( selector, context, results, seed ) {
  function createCache (line 871) | function createCache() {
  function markFunction (line 889) | function markFunction( fn ) {
  function assert (line 898) | function assert( fn ) {
  function addHandle (line 920) | function addHandle( attrs, handler ) {
  function siblingCheck (line 935) | function siblingCheck( a, b ) {
  function createInputPseudo (line 961) | function createInputPseudo( type ) {
  function createButtonPseudo (line 972) | function createButtonPseudo( type ) {
  function createDisabledPseudo (line 983) | function createDisabledPseudo( disabled ) {
  function createPositionalPseudo (line 1039) | function createPositionalPseudo( fn ) {
  function testContext (line 1062) | function testContext( context ) {
  function setFilters (line 2150) | function setFilters() {}
  function toSelector (line 2221) | function toSelector( tokens ) {
  function addCombinator (line 2231) | function addCombinator( matcher, combinator, base ) {
  function elementMatcher (line 2295) | function elementMatcher( matchers ) {
  function multipleContexts (line 2309) | function multipleContexts( selector, contexts, results ) {
  function condense (line 2318) | function condense( unmatched, map, filter, context, xml ) {
  function setMatcher (line 2339) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
  function matcherFromTokens (line 2432) | function matcherFromTokens( tokens ) {
  function matcherFromGroupMatchers (line 2490) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
  function nodeName (line 2826) | function nodeName( elem, name ) {
  function winnow (line 2836) | function winnow( elements, qualifier, not ) {
  function sibling (line 3131) | function sibling( cur, dir ) {
  function createOptions (line 3218) | function createOptions( options ) {
  function Identity (line 3443) | function Identity( v ) {
  function Thrower (line 3446) | function Thrower( ex ) {
  function adoptValue (line 3450) | function adoptValue( value, resolve, reject, noValue ) {
  function resolve (line 3543) | function resolve( depth, deferred, handler, special ) {
  function completed (line 3908) | function completed() {
  function fcamelCase (line 4003) | function fcamelCase( all, letter ) {
  function camelCase (line 4010) | function camelCase( string ) {
  function Data (line 4027) | function Data() {
  function getData (line 4196) | function getData( data ) {
  function dataAttr (line 4221) | function dataAttr( elem, key, data ) {
  function adjustCSS (line 4554) | function adjustCSS( elem, prop, valueParts, tween ) {
  function getDefaultDisplay (line 4622) | function getDefaultDisplay( elem ) {
  function showHide (line 4645) | function showHide( elements, show ) {
  function getAll (line 4746) | function getAll( context, tag ) {
  function setGlobalEval (line 4771) | function setGlobalEval( elems, refElements ) {
  function buildFragment (line 4787) | function buildFragment( elems, context, scripts, selection, ignored ) {
  function returnTrue (line 4908) | function returnTrue() {
  function returnFalse (line 4912) | function returnFalse() {
  function expectSync (line 4922) | function expectSync( elem, type ) {
  function safeActiveElement (line 4929) | function safeActiveElement() {
  function on (line 4935) | function on( elem, types, selector, data, fn, one ) {
  function leverageNative (line 5420) | function leverageNative( el, type, expectSync ) {
  function manipulationTarget (line 5791) | function manipulationTarget( elem, content ) {
  function disableScript (line 5802) | function disableScript( elem ) {
  function restoreScript (line 5806) | function restoreScript( elem ) {
  function cloneCopyEvent (line 5816) | function cloneCopyEvent( src, dest ) {
  function fixInput (line 5851) | function fixInput( src, dest ) {
  function domManip (line 5864) | function domManip( collection, args, callback, ignored ) {
  function remove (line 5956) | function remove( elem, selector, keepData ) {
  function computeStyleTests (line 6249) | function computeStyleTests() {
  function roundPixelMeasures (line 6293) | function roundPixelMeasures( measure ) {
  function curCSS (line 6338) | function curCSS( elem, name, computed ) {
  function addGetHookIf (line 6391) | function addGetHookIf( conditionFn, hookFn ) {
  function vendorPropName (line 6416) | function vendorPropName( name ) {
  function finalPropName (line 6431) | function finalPropName( name ) {
  function setPositiveNumber (line 6457) | function setPositiveNumber( elem, value, subtract ) {
  function boxModelAdjustment (line 6469) | function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, ...
  function getWidthOrHeight (line 6537) | function getWidthOrHeight( elem, dimension, extra ) {
  function Tween (line 6904) | function Tween( elem, options, prop, end, easing ) {
  function schedule (line 7027) | function schedule() {
  function createFxNow (line 7040) | function createFxNow() {
  function genFx (line 7048) | function genFx( type, includeWidth ) {
  function createTween (line 7068) | function createTween( value, prop, animation ) {
  function defaultPrefilter (line 7082) | function defaultPrefilter( elem, props, opts ) {
  function propFilter (line 7254) | function propFilter( props, specialEasing ) {
  function Animation (line 7291) | function Animation( elem, properties, options ) {
  function stripAndCollapse (line 8006) | function stripAndCollapse( value ) {
  function getClass (line 8012) | function getClass( elem ) {
  function classesToArray (line 8016) | function classesToArray( value ) {
  function buildParams (line 8638) | function buildParams( prefix, obj, traditional, add ) {
  function addToPrefiltersOrTransports (line 8792) | function addToPrefiltersOrTransports( structure ) {
  function inspectPrefiltersOrTransports (line 8826) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
  function ajaxExtend (line 8855) | function ajaxExtend( target, src ) {
  function ajaxHandleResponses (line 8875) | function ajaxHandleResponses( s, jqXHR, responses ) {
  function ajaxConvert (line 8933) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
  function done (line 9448) | function done( status, nativeStatusText, responses, headers ) {

FILE: jun_java_plugins/jun_aliyun_sms/src/test/java/Test.java
  class Test (line 17) | public class Test {
    method setUpBeforeClass (line 22) | @BeforeClass
    method tearDownAfterClass (line 29) | @AfterClass
    method setUp (line 36) | @Before
    method tearDown (line 43) | @After
    method test (line 47) | @org.junit.Test

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/CollectionUtil.java
  class CollectionUtil (line 21) | public class CollectionUtil {
    method join (line 29) | public static <T> String join(Iterable<T> collection, String conjuncti...
    method join (line 50) | public static <T> String join(T[] array, String conjunction) {
    method sortEntrySetToList (line 69) | public static List<Entry<Long, Long>> sortEntrySetToList(Set<Entry<Lon...
    method popPart (line 90) | public static <T> List<T> popPart(Stack<T> surplusAlaDatas, int partSi...
    method newHashMap (line 112) | public static <T, K> HashMap<T, K> newHashMap(){
    method newHashSet (line 120) | public static <T> HashSet<T> newHashSet(){
    method newArrayList (line 128) | public static <T> ArrayList<T> newArrayList(){
    method append (line 139) | public static <T> T[] append(T[] buffer, T newElement) {
    method resize (line 152) | @SuppressWarnings({"unchecked"})
    method resize (line 170) | public static <T> T[] resize(T[] buffer, int newSize) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/Conf.java
  class Conf (line 10) | public abstract class Conf {
    method getRedisServerPropByKey (line 23) | public static Map<String, String> getRedisServerPropByKey(

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/Config.java
  class Config (line 20) | public final class Config {
    method Config (line 31) | public Config(String pathBaseClassLoader){
    method Config (line 41) | public Config(File configFile){
    method Config (line 61) | public Config(String path, Class<?> clazz){
    method init (line 71) | public  void init(URL configUrl){
    method getString (line 93) | public String getString(String key){
    method getInt (line 102) | public int getInt(String key){
    method getBool (line 111) | public boolean getBool(String key){
    method getLong (line 120) | public long getLong(String key){
    method setProperty (line 129) | public void setProperty(String key, Object value){
    method store (line 137) | public void store(String absolutePath){
    method store (line 153) | public void store(String path, Class<?> clazz){
    method entrySet (line 157) | public Set<Entry<Object, Object>> entrySet(){

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/ConsistentHash.java
  class ConsistentHash (line 15) | public class ConsistentHash<T> {
    method ConsistentHash (line 28) | public ConsistentHash(int numberOfReplicas, Collection<T> nodes) {
    method ConsistentHash (line 50) | public ConsistentHash(HashFunc hashFunc, int numberOfReplicas, Collect...
    method add (line 66) | public void add(T node) {
    method remove (line 76) | public void remove(T node) {
    method get (line 87) | public T get(Object key) {
    type HashFunc (line 105) | public interface HashFunc {
      method hash (line 106) | public Integer hash(Object key);

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/CsvUtil.java
  class CsvUtil (line 17) | public class CsvUtil {
    method toCSV (line 25) | public static void toCSV(ResultSet rs, String pathWithName, String cha...
    method toCSV (line 56) | public static void toCSV(Collection<String> collection, String pathWit...

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/DateUtil.java
  class DateUtil (line 16) | public class DateUtil {
    method now (line 41) | public static String now() {
    method today (line 49) | public static String today() {
    method format (line 60) | public static String format(Date date, String format){
    method formatDateTime (line 69) | public static String formatDateTime(Date date) {
    method formatHttpDate (line 79) | public static String formatHttpDate(Date date) {
    method formatDate (line 89) | public static String formatDate(Date date) {
    method parse (line 102) | public static Date parse(String dateString, String format){
    method parseDateTime (line 116) | public static Date parseDateTime(String dateString){
    method parseDate (line 131) | public static Date parseDate(String dateString){
    method getOffsiteDate (line 149) | public static Date getOffsiteDate(Date date, int calendarField, int of...
    method dateDiff (line 164) | public static long dateDiff(Date subtrahend, Date minuend, long diffFi...

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/Exceptions/ConnException.java
  class ConnException (line 7) | public class ConnException extends Exception{
    method ConnException (line 10) | public ConnException(Throwable e) {
    method ConnException (line 14) | public ConnException(String message) {
    method ConnException (line 18) | public ConnException(String message, Throwable throwable) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/Exceptions/SettingException.java
  class SettingException (line 7) | public class SettingException extends Exception{
    method SettingException (line 10) | public SettingException(Throwable e) {
    method SettingException (line 14) | public SettingException(String message) {
    method SettingException (line 18) | public SettingException(String message, Throwable throwable) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/FileUtil.java
  class FileUtil (line 22) | public class FileUtil {
    method touch (line 29) | public static File touch(String fullFilePath) throws IOException {
    method mkdir (line 41) | public static File mkdir(String dirPath){
    method getAbsolutePath (line 54) | public static String getAbsolutePath(String path, Class<?> baseClass){
    method getAbsolutePath (line 73) | public static String getAbsolutePath(String pathBaseClassLoader){
    method isExist (line 82) | public static boolean isExist(String path){
    method close (line 90) | public static void close(Closeable closeable){
    method getBufferedWriter (line 106) | public static BufferedWriter getBufferedWriter(String path, String cha...
    method getPrintWriter (line 122) | public static PrintWriter getPrintWriter(String path, String charset, ...
    method getOutputStream (line 132) | public static OutputStream getOutputStream(String path) throws IOExcep...
    method cleanDir (line 140) | public static void cleanDir(String dirPath){
    method getReader (line 158) | public static BufferedReader getReader(String path, String charset) th...
    method loadFileLines (line 170) | public static <T extends Collection<String>> T loadFileLines(String pa...
    method loadDataFromfile (line 189) | public static <T> T loadDataFromfile(ReaderHandler<T> readerHandler, S...
    method getExtension (line 208) | public static String getExtension(String fileName) {
    type ReaderHandler (line 228) | public interface ReaderHandler<T> {
      method handle (line 229) | public T handle(BufferedReader reader) throws IOException;

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/HashUtil.java
  class HashUtil (line 9) | public class HashUtil {
    method additiveHash (line 18) | public static int additiveHash(String key, int prime) {
    method rotatingHash (line 32) | public static int rotatingHash(String key, int prime) {
    method oneByOneHash (line 55) | public static int oneByOneHash(String key) {
    method bernstein (line 75) | public static int bernstein(String key) {
    method universal (line 90) | public static int universal(char[] key, int mask, int[] tab) {
    method zobrist (line 121) | public static int zobrist(char[] key, int mask, int[][] tab) {
    method FNVHash (line 140) | public static int FNVHash(byte[] data) {
    method FNVHash1 (line 155) | public static int FNVHash1(byte[] data) {
    method FNVHash1 (line 174) | public static int FNVHash1(String data) {
    method intHash (line 192) | public static int intHash(int key) {
    method RSHash (line 207) | public static int RSHash(String str) {
    method JSHash (line 225) | public static int JSHash(String str) {
    method PJWHash (line 240) | public static int PJWHash(String str) {
    method ELFHash (line 264) | public static int ELFHash(String str) {
    method BKDRHash (line 284) | public static int BKDRHash(String str) {
    method SDBMHash (line 300) | public static int SDBMHash(String str) {
    method DJBHash (line 315) | public static int DJBHash(String str) {
    method DEKHash (line 330) | public static int DEKHash(String str) {
    method APHash (line 345) | public static int APHash(String str) {
    method javaDefaultHash (line 362) | public static int javaDefaultHash(String str) {
    method mixHash (line 377) | public static long mixHash(String str) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/IoUtil.java
  class IoUtil (line 10) | public class IoUtil {
    method copy (line 17) | public static int copy(Reader input, Writer output) throws IOException {
    method getStringFromStream (line 36) | public static String getStringFromStream(InputStream in, String charse...

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/LangUtil.java
  class LangUtil (line 8) | public class LangUtil {
    method isEmpty (line 19) | public static boolean isEmpty(String str) {
    method getRandomString (line 29) | public static String getRandomString(int length) {
    method cast (line 50) | public static Object cast(Class<?> clazz, Object value) {
    method getGeneralField (line 78) | public static String getGeneralField(String methodNameWithGet){
    method genSetter (line 91) | public static String genSetter(String fieldName){
    method genGetter (line 100) | public static String genGetter(String fieldName){
    method cutPreAndLowerFirst (line 111) | public static String cutPreAndLowerFirst(String str, int preLength) {
    method upperFirstAndAddPre (line 132) | public static String upperFirstAndAddPre(String str, String preString) {
    method split (line 147) | public static List<String> split(String str, char separator) {
    method split (line 158) | public static List<String> split(String str, char separator, int limit){
    method repeat (line 196) | public static String repeat(char c, int count) {
    method transCharset (line 212) | public static String transCharset(String str, String sourceCharset, St...
    type BASIC_TYPE (line 228) | private static enum BASIC_TYPE {
      method BASIC_TYPE (line 232) | private BASIC_TYPE(String value) {
      method toString (line 235) | @Override

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/MessageUtils.java
  class MessageUtils (line 10) | public class MessageUtils {
    method getResourceBundleByLang (line 25) | public static ResourceBundle getResourceBundleByLang(String lang) {
    method getResourceBundleByLang (line 36) | public static ResourceBundle getResourceBundleByLang(Locale locale) {
    method get (line 59) | public static String get(String lang, String key) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/RegexUtil.java
  class RegexUtil (line 12) | public class RegexUtil {
    method RegexUtil (line 14) | private RegexUtil() {
    method get (line 26) | public static String get(String regex, String content, int groupIndex) {
    method delFirst (line 41) | public static String delFirst(String regex, String content) {
    method delPreLocation (line 52) | public static String delPreLocation(String regex, String content) {
    method gets (line 69) | @Deprecated
    method findAll (line 89) | public static <T extends Collection<String>> T findAll(String regex, S...
    method getFirstNumber (line 103) | public static int getFirstNumber(String StringWithNumber) {
    method isIpv4 (line 113) | public static boolean isIpv4(String ip) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/SecureUtil.java
  class SecureUtil (line 17) | public class SecureUtil {
    method md5 (line 25) | public static String md5(String key) {
    method sha1 (line 29) | public static String sha1(String key) {
    method base64Encode (line 38) | public static String base64Encode(byte[] bytes){
    method crc32 (line 42) | public static long crc32(String key) {
    method digest (line 54) | private static String digest(ALGORITHM algorithm, String key) {
    type ALGORITHM (line 74) | enum ALGORITHM{

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/Setting.java
  class Setting (line 31) | public class Setting extends HashMap<String, String> {
    method Setting (line 63) | public Setting(Charset charset, boolean isUseVariable) {
    method Setting (line 75) | public Setting(String pathBaseClassLoader, String charset, boolean isU...
    method Setting (line 87) | public Setting(File configFile, String charset, boolean isUseVariable) {
    method Setting (line 104) | public Setting(String path, Class<?> clazz, String charset, boolean is...
    method Setting (line 116) | public Setting(URL url, String charset, boolean isUseVariable) {
    method init (line 129) | public boolean init(URL settingUrl, String charset, boolean isUseVaria...
    method load (line 147) | public boolean load(URL settingUrl) {
    method reload (line 169) | public void reload() {
    method load (line 181) | public boolean load(InputStream settingStream, boolean isUseVariable) ...
    method setVarRegex (line 239) | public void setVarRegex(String regex) {
    method getWithLog (line 249) | public String getWithLog(String key) {
    method get (line 264) | public String get(String key, String group) {
    method getString (line 278) | public String getString(String key) {
    method getString (line 289) | public String getString(String key, String group) {
    method getInt (line 299) | public int getInt(String key) throws NumberFormatException {
    method getInt (line 310) | public int getInt(String key, String group) throws NumberFormatExcepti...
    method getBool (line 320) | public boolean getBool(String key) throws NumberFormatException {
    method getBool (line 331) | public boolean getBool(String key, String group) throws NumberFormatEx...
    method getLong (line 341) | public long getLong(String key) throws NumberFormatException {
    method getLong (line 352) | public long getLong(String key, String group) throws NumberFormatExcep...
    method getChar (line 362) | public char getChar(String key) {
    method getChar (line 373) | public char getChar(String key, String group) {
    method getDouble (line 383) | public double getDouble(String key) throws NumberFormatException {
    method getDouble (line 394) | public double getDouble(String key, String group) throws NumberFormatE...
    method setSetting (line 404) | public void setSetting(String key, Object value) {
    method store (line 413) | public void store(String absolutePath) {
    method store (line 436) | public void store(String path, Class<?> clazz) {
    method settingToObject (line 447) | public void settingToObject(String group, Object object) throws Settin...
    method settingToObject (line 474) | public void settingToObject(Object object) throws SettingException {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/Span.java
  class Span (line 13) | public class Span {
    method Span (line 28) | public Span(){
    method Span (line 35) | public Span(long id, String name){
    method Span (line 44) | public Span(long min, long max){
    method Span (line 54) | public Span(String name, long min, long max){
    method Span (line 65) | public Span(long min, long max, int count){
    method Span (line 76) | public Span(long id, long min, long max) {
    method getSub (line 88) | public long getSub(){
    method cut (line 97) | public List<Span> cut(int partCount){
    method isEmpty (line 123) | public boolean isEmpty(){
    method compareToReplace (line 136) | public void compareToReplace(long number){
    method isInBetween (line 146) | public boolean isInBetween(long number){
    method newInstance (line 154) | public static Span newInstance(){

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/TaskScheduler.java
  class TaskScheduler (line 13) | public class TaskScheduler extends Timer{
    method TaskScheduler (line 16) | public TaskScheduler(boolean isDeamon) {
    method newInstance (line 26) | public static TaskScheduler newInstance(boolean isDaemon){
    method schedule (line 36) | public void schedule(TimerTask timerTask, String startTime, long period){
    method schedule (line 48) | public void schedule(TimerTask timerTask, long delay, long period) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/XmlUtil.java
  class XmlUtil (line 27) | public class XmlUtil {
    method parseDoc (line 37) | public static Document parseDoc(String xmlString) throws DocumentExcep...
    method readDoc (line 47) | public static Document readDoc(String xmlPathBaseClassLoader) throws D...
    method readDoc (line 57) | public static Document readDoc(File xmlFile) throws DocumentException{
    method readDoc (line 68) | public static Document readDoc(URL url) throws DocumentException, IOEx...
    method createDoc (line 77) | public static Document createDoc(String rootElementName){
    method xmlWriteToFile (line 91) | public static void xmlWriteToFile(Document doc, String filePath, Strin...
    method validateBySchema (line 118) | public static String validateBySchema(Document doc, String schemePath)...
    method cleanInvalid (line 147) | public static String cleanInvalid(String xmlContent){

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/ZhUtil.java
  class ZhUtil (line 9) | public class ZhUtil {
    method initS2T (line 39) | public static void initS2T() {
    method initT2S (line 46) | public static void initT2S() {
    method clean (line 53) | public static void clean() {
    method toSimplified (line 67) | public static String toSimplified(String text) {
    method toTraditional (line 90) | public static String toTraditional(String text) {
    method toDBC (line 113) | public static String toDBC(String src) {
    method toSBC (line 137) | public static String toSBC(String src) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/apiext/CollectionUtil.java
  class CollectionUtil (line 19) | @SuppressWarnings("rawtypes")
    method listJoin (line 31) | public static String listJoin(List<String> fromList, String joinStr)
    method arrayJoin (line 57) | public static String arrayJoin(Object[] fromList, String joinStr)
    method arrayMerge (line 74) | public static String[] arrayMerge(String[] a, String[] b) {
    method splitList (line 95) | public static List<List<?>> splitList(List<?> inputList, int sumPerRow) {
    method getColFromObj (line 121) | public static List<?> getColFromObj(List<?> fromList, String colName) {
    method getSQLStr (line 144) | public static String getSQLStr(String oriStr) {
    method selectFilter (line 158) | public static Collection selectFilter(Collection inputCollection,
    method filterNull (line 171) | public static void filterNull(Map<String, String> orimap) {
    method filter (line 195) | public static List filter(List oriList, final String colName,
    method asList (line 271) | public static List<Integer> asList(int[] oriAry) {
    method asList (line 287) | public static List<Integer> asList(String[] oriAry) {
    method asList (line 297) | public static List<String> asList(List<?> oriList) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/apiext/DateUtil.java
  class DateUtil (line 29) | public abstract class DateUtil {
    method objToDate (line 32) | public static Date objToDate(Object ojbDate, DateFormat formate) {
    method formatDate (line 86) | public static String formatDate(Object bean, String path, String format,
    method formatDate (line 115) | public static String formatDate(Date oriDate, String format, Boolean i...
    method objToDate (line 132) | public static Date objToDate(Object ojbDate) {
    method setDayBeginTime (line 139) | public static Date setDayBeginTime(Date date) {
    method setDayAfterBeginTime (line 156) | public static Date setDayAfterBeginTime(Date date, int num) {
    method setDayAfterMonthTime (line 174) | public static Date setDayAfterMonthTime(Date date, int monthNum) {
    method differDays (line 188) | public static int differDays(Date beginData, Date endDate) {
    method compareTo (line 205) | public static int compareTo(Date beginData, int days, Date endDate) {
    method compareMonthTo (line 225) | public static int compareMonthTo(Date beginData, int month, Date endDa...
    method getLastDayOfMonth (line 237) | public static Date getLastDayOfMonth(Date date) {
    method getDateByTwoIso (line 259) | public static Date getDateByTwoIso(String dateStr1, String dateStr2) {
    method getDateByStr (line 294) | public static Date getDateByStr(String dateStr1, String dateStr2) {
    method xmlDateToDate (line 315) | public static Date xmlDateToDate(XMLGregorianCalendar xmlDate) {
    method dateToXmlDate (line 325) | public static XMLGregorianCalendar dateToXmlDate(Date date) {
    method getTomorrow (line 350) | public static Date getTomorrow(Object ojbDate) {
    method getTomorrowStr (line 362) | public static String getTomorrowStr(Object ojbDate) {
    method convertMinuteToSecond (line 376) | public static int convertMinuteToSecond(int min, MathConvertType conTy...

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/apiext/DynaBeanUtil.java
  class DynaBeanUtil (line 7) | public abstract class DynaBeanUtil {
    method proBean (line 8) | public static DynaBean proBean(String... params) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/apiext/IOUtil.java
  class IOUtil (line 24) | public abstract class IOUtil {
    method slurp (line 35) | public static String slurp(InputStream in) throws IOException {
    method fileToProperties (line 52) | public static Properties fileToProperties(String filePath) {
    method mergeFolderAndFilePath (line 72) | public static String mergeFolderAndFilePath(String folderPath,
    method getDirForFilePath (line 94) | public static String getDirForFilePath(
    method getDirForCommonUtilFilePath (line 110) | public static String getDirForCommonUtilFilePath(String filePath) {
    method copyInToOut (line 122) | public static long copyInToOut(InputStream from, OutputStream to)

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/apiext/JSONUtil.java
  class JSONUtil (line 27) | @SuppressWarnings("rawtypes")
    method mergeJSON (line 42) | public static JSONObject mergeJSON(JSONObject res1, JSONObject res2) {
    method getValues (line 61) | public static List<String[]> getValues(JSONObject jsonObject) {
    method getJsonForMap (line 84) | public static String getJsonForMap(Map<String, Object> fromMap,
    method getJsonForMap (line 122) | public static String getJsonForMap(Map<String, Object> fromMap,
    method packMvel2 (line 133) | private static String packMvel2(String valCol, int startindex) {
    method getJsonForList (line 161) | public static String getJsonForList(List<?> fromList,
    method getJsonForList (line 239) | public static String getJsonForList(List<?> fromList, String... titles) {
    method getJsonForList (line 252) | public static String getJsonForList(List<?> fromList,
    method getJsonForListAlias (line 289) | public static String getJsonForListAlias(List<?> fromList,
    method getJsonForListAlias (line 313) | public static String getJsonForListAlias(List<?> fromList) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/apiext/LoggerHelp.java
  class LoggerHelp (line 6) | public class LoggerHelp implements java.io.Serializable {
    method getUtilLogger (line 14) | public static final Logger getUtilLogger() {
    method getJspLog (line 24) | public static final Logger getJspLog(String name) {
    method getLoggerByClass (line 34) | @SuppressWarnings("rawtypes")

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/apiext/NumberUtil.java
  class NumberUtil (line 15) | public abstract class NumberUtil {
    method handleScale (line 25) | public static BigDecimal handleScale(BigDecimal input, int scale) {
    method handleScale (line 38) | public static BigDecimal handleScale(double input, int scale) {
    method handleScale (line 52) | public static BigDecimal handleScale(String input, int scale) {
    method proUniqNumByTime (line 62) | public synchronized static long proUniqNumByTime() {
    method bigDecimalAdd (line 74) | public static BigDecimal bigDecimalAdd(BigDecimal b1, BigDecimal b2) {
    method bigDecimalPlus (line 89) | public static BigDecimal bigDecimalPlus(BigDecimal b1, BigDecimal b2) {
    method handNull (line 97) | public static BigDecimal handNull(BigDecimal ori) {
    method changeBD (line 107) | public static BigDecimal changeBD(Object db) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/apiext/ReflectAsset.java
  class ReflectAsset (line 28) | @SuppressWarnings("rawtypes")
    method invokeStaticMothed (line 34) | public static Object invokeStaticMothed(String className,
    method invokeStaticMothed (line 49) | public static Object invokeStaticMothed(String className,
    method invokeMothed (line 63) | public static Object invokeMothed(Object invokeObj, String methodName,
    method isPrimitieClass (line 138) | public static boolean isPrimitieClass(Class clz) {
    method findGetMethod (line 151) | public static List<String> findGetMethod(Class clz) {
    method findGetField (line 180) | public static List<String> findGetField(Class clz) {
    method convertMapFromBean (line 196) | public static Map<String, String> convertMapFromBean(Object obj,
    method isInterface (line 245) | public static boolean isInterface(Class c, String szInterface) {
    method getPropertyDescriptors (line 273) | public static PropertyDescriptor[] getPropertyDescriptors(Class clazz) {
    method getClassRefType (line 283) | public static Class getClassRefType(PropertyDescriptor propertyDescrip...
    method getContextType (line 306) | public static Map<String, Class[]> getContextType(Class classz) {
    method copyProperties (line 347) | public static void copyProperties(Object dest, Object orig) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/apiext/StringUtil.java
  class StringUtil (line 21) | public abstract class StringUtil {
    method hasNull (line 30) | public static String hasNull(String... inputStr) {
    method isNull (line 58) | public static boolean isNull(String input) {
    method isNotNull (line 73) | public static boolean isNotNull(String input) {
    method trimSpace (line 84) | public static String trimSpace(String str) {
    method sumOfNumLet (line 118) | public static int sumOfNumLet(String src) {
    method parseObject (line 136) | @Override
    method format (line 141) | @Override
    method combo (line 148) | public static String combo(String[] paramArrayOfString, String paramSt...
    method toUpperCaseFirstOne (line 168) | public static String toUpperCaseFirstOne(String s) {
    method str2Object (line 188) | public static final <T> T str2Object(Class<T> type, String v,
    method str2Object (line 234) | public static final <T> T str2Object(Class<T> type, String v) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/apiext/XmlUtil.java
  class XmlUtil (line 24) | public abstract class XmlUtil {
    class XMLHandler (line 27) | private static final class XMLHandler extends DefaultHandler {
      method XMLHandler (line 31) | public XMLHandler(String nodeName) {
      method getNodeSax (line 35) | public NodeSax getNodeSax() {
      method startDocument (line 39) | @Override
      method startElement (line 45) | @Override
      method characters (line 54) | @Override
    method getFirstNode (line 71) | public static NodeSax getFirstNode(InputStream input, String nodeName) {
    method parserDocment (line 95) | public static final Document parserDocment(String src) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/assistbean/EasyUINode.java
  class EasyUINode (line 21) | public class EasyUINode implements Comparable<EasyUINode> {
    method EasyUINode (line 27) | public EasyUINode(String id, String text) {
    method EasyUINode (line 32) | public EasyUINode(String id) {
    method getSubById (line 52) | public EasyUINode getSubById(String id) {
    method getSubs (line 56) | public Map<String, EasyUINode> getSubs() {
    method addRootMap (line 60) | public void addRootMap(EasyUINode add) {
    method toJson (line 64) | public JSONObject toJson() {
    method compareTo (line 100) | @Override
    method addChildres (line 106) | public void addChildres(EasyUINode addNode) {
    method addChildres (line 116) | public void addChildres(List<EasyUINode> addNodes) {
    method putAllSubMap (line 126) | private void putAllSubMap(List<EasyUINode> addNodes) {
    method putAncestor (line 142) | private static void putAncestor(EasyUINode parent, EasyUINode sub) {
    method addAttributes (line 161) | public void addAttributes(String... attr) {
    method getAttribute (line 172) | public String getAttribute(String attrName) {
    method getText (line 176) | public String getText() {
    method setText (line 180) | public void setText(String text) {
    method getIconCls (line 184) | public String getIconCls() {
    method setIconCls (line 188) | public void setIconCls(String iconCls) {
    method getChecked (line 192) | public Boolean getChecked() {
    method setChecked (line 196) | public void setChecked(Boolean checked) {
    method getIndex (line 200) | public int getIndex() {
    method setIndex (line 204) | public void setIndex(int index) {
    method getId (line 208) | public String getId() {
    method setId (line 212) | public void setId(String id) {
    method isClose (line 216) | public boolean isClose() {
    method setClose (line 220) | public void setClose(boolean isClose) {
    method getParent (line 224) | public EasyUINode getParent() {
    method setParent (line 228) | public void setParent(EasyUINode parent) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/assistbean/EasyUINodeConf.java
  class EasyUINodeConf (line 16) | public class EasyUINodeConf {
    method EasyUINodeConf (line 30) | public EasyUINodeConf(String idCol, String textCol, String parentCol) {
    method EasyUINodeConf (line 39) | public EasyUINodeConf(String idCol, String textCol, String parentCol,
    method EasyUINodeConf (line 45) | public EasyUINodeConf(String idCol, String textCol, String parentCol,
    method getIdCol (line 51) | public String getIdCol() {
    method setIdCol (line 55) | public void setIdCol(String idCol) {
    method getTextCol (line 59) | public String getTextCol() {
    method setTextCol (line 63) | public void setTextCol(String textCol) {
    method getParentCol (line 67) | public String getParentCol() {
    method setParentCol (line 71) | public void setParentCol(String parentCol) {
    method getCheckedCol (line 75) | public String getCheckedCol() {
    method setCheckedCol (line 79) | public void setCheckedCol(String checkedCol) {
    method getIndexCol (line 83) | public String getIndexCol() {
    method setIndexCol (line 87) | public void setIndexCol(String indexCol) {
    method getIconClsCol (line 91) | public String getIconClsCol() {
    method setIconClsCol (line 95) | public void setIconClsCol(String iconClsCol) {
    method getIsCloseCol (line 99) | public String getIsCloseCol() {
    method setIsCloseCol (line 103) | public void setIsCloseCol(String isCloseCol) {
    method getAttrCols (line 107) | public String[] getAttrCols() {
    method setAttrCols (line 111) | public void setAttrCols(String... attrCols) {
    method getIsRoot (line 115) | public Predicate getIsRoot() {
    method setIsRoot (line 119) | public void setIsRoot(Predicate isRoot) {
    method getCheckedList (line 123) | public List<String> getCheckedList() {
    method setCheckedList (line 127) | public void setCheckedList(List<String> checkedList) {
    method getTextConvert (line 131) | public IConvertValue getTextConvert() {
    method setTextConvert (line 135) | public void setTextConvert(IConvertValue textConvert) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/assistbean/NodeSax.java
  class NodeSax (line 5) | public class NodeSax {
    method NodeSax (line 10) | public NodeSax(String nodeName) {
    method getNodeName (line 14) | public String getNodeName() {
    method getNodeValue (line 18) | public String getNodeValue() {
    method setNodeValue (line 22) | public void setNodeValue(String nodeValue) {
    method getAttributes (line 26) | public Attributes getAttributes() {
    method setAttributes (line 30) | public void setAttributes(Attributes attributes) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/callback/IConvertValue.java
  type IConvertValue (line 6) | public interface IConvertValue {
    method getStr (line 7) | public String getStr(String key);

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/callback/IConvertValueDate.java
  type IConvertValueDate (line 5) | public interface IConvertValueDate  extends IConvertValue{
    method getStr (line 6) | public String getStr(Date key);

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/callback/ValueEncoder.java
  type ValueEncoder (line 22) | public interface ValueEncoder<V> {
    method toClient (line 24) | String toClient(V value);
    method toValue (line 26) | V toValue(String clientValue);

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/callback/impl/ConvertValueDate.java
  class ConvertValueDate (line 8) | public class ConvertValueDate implements IConvertValueDate {
    method ConvertValueDate (line 11) | public ConvertValueDate(SimpleDateFormatCase formate) {
    method ConvertValueDate (line 15) | public ConvertValueDate() {
    method getStr (line 19) | @Override
    method getStr (line 24) | @Override

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/callback/impl/ConvertValueMsg.java
  class ConvertValueMsg (line 14) | public class ConvertValueMsg implements IConvertValue {
    method ConvertValueMsg (line 17) | public ConvertValueMsg(String lang) {
    method ConvertValueMsg (line 21) | public ConvertValueMsg() {
    method getStr (line 25) | @Override

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/cli/HelloCli.java
  class HelloCli (line 32) | public class HelloCli {
    method main (line 39) | public static void main(String[] args) {
    method test (line 73) | @SuppressWarnings("static-access")

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/cli/Mkdir.java
  class Mkdir (line 11) | public class Mkdir {
    method main (line 15) | @SuppressWarnings("static-access")

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/constant/HibernateConf.java
  type HibernateConf (line 6) | public enum HibernateConf {
    method HibernateConf (line 16) | private HibernateConf(String driverClass, String dialect, String urlFo...
    method getDriverClass (line 22) | public String getDriverClass() {
    method getDialect (line 26) | public String getDialect() {
    method getUrl (line 30) | public String getUrl(String ip, int port, String databasename,
    method get (line 52) | public static HibernateConf get(String type) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/constant/MathConvertType.java
  type MathConvertType (line 9) | public enum MathConvertType {
    method MathConvertType (line 13) | private MathConvertType(String desc) {
    method getDesc (line 17) | public String getDesc() {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/constant/SimpleDateFormatCase.java
  type SimpleDateFormatCase (line 5) | public  enum SimpleDateFormatCase {
    method SimpleDateFormatCase (line 14) | private SimpleDateFormatCase(SimpleDateFormat instanc){
    method getInstanc (line 18) | public SimpleDateFormat getInstanc() {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/constant/StrPattern.java
  type StrPattern (line 6) | public enum StrPattern {
    method StrPattern (line 27) | private StrPattern(String code) {
    method checkStrFormat (line 38) | public boolean checkStrFormat(String str) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/db/DbUtil.java
  class DbUtil (line 23) | public class DbUtil {
    method DbUtil (line 26) | private DbUtil() {
    method newSqlRunner (line 36) | public static SqlRunner newSqlRunner(DataSource ds) {
    method buildJdbcUrl (line 49) | public static String buildJdbcUrl(String protocol, String host, int po...
    method close (line 68) | public static void close(Object... objsToClose) {
    method getJndiDs (line 94) | public static DataSource getJndiDs(String jndiName) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/db/DsSetting.java
  class DsSetting (line 18) | public class DsSetting {
    method DsSetting (line 67) | public DsSetting(String dataSourceName, String sshTunnel, Setting dbSe...
    method DsSetting (line 86) | public DsSetting(Setting dbSetting) {
    method genKey (line 100) | public String genKey(String keyTemplate) {
    method getString (line 112) | public String getString(String key) {
    method getInt (line 122) | public int getInt(String key) {
    method getName (line 130) | public String getName() {
    method isEnableSSH (line 138) | public boolean isEnableSSH() {
    method getSshHost (line 146) | public String getSshHost() {
    method getSshPort (line 154) | public int getSshPort() {
    method getSshUser (line 162) | public String getSshUser() {
    method getSshPass (line 170) | public String getSshPass() {
    method getDsHost (line 178) | public String getDsHost() {
    method getDsPort (line 186) | public int getDsPort() {
    method getDsDb (line 194) | public String getDsDb() {
    method getDsUser (line 202) | public String getDsUser() {
    method getDsPass (line 210) | public String getDsPass() {
    method getJdbcDriver (line 218) | public String getJdbcDriver() {
    method getProtocol (line 227) | public String getProtocol() {
    method getJdbcUrlParam (line 236) | public String getJdbcUrlParam(){
    method getSSHConnector (line 244) | public Connector getSSHConnector() {
    method getDsName (line 254) | public static String getDsName(String dsName, String sshName){

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/db/RsHandler.java
  type RsHandler (line 11) | public interface RsHandler<T> {
    method handle (line 12) | public T handle(ResultSet rs) throws SQLException;

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/db/SqlRunner.java
  class SqlRunner (line 21) | public class SqlRunner {
    method SqlRunner (line 26) | public SqlRunner(DataSource ds) {
    method query (line 39) | public <T> T query(String sql, RsHandler<T> rsh, Object... params) thr...
    method query (line 63) | public <T> T query(Connection conn, String sql, RsHandler<T> rsh, Obje...
    method update (line 87) | public int update(String sql, Object... params) throws SQLException {
    method update (line 110) | public int update(Connection conn, String sql, Object... params) throw...
    method updateBatch (line 131) | public int[] updateBatch(String sql, Object[]... paramsBatch) throws S...
    method updateBatch (line 154) | public int[] updateBatch(Connection conn, String sql, Object[]... para...
    method fillParams (line 177) | private void fillParams(PreparedStatement ps, Object... params) throws...

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/db/ds/C3p0Ds.java
  class C3p0Ds (line 31) | public class C3p0Ds {
    method init (line 55) | synchronized public static void init(Setting db_setting) {
    method getDataSource (line 72) | synchronized public static DataSource getDataSource(String dsName, Str...
    method getDataSource (line 126) | synchronized public static DataSource getDataSource() throws ConnExcep...
    method getConnection (line 139) | synchronized public static Connection getConnection(String datasource,...
    method getConnection (line 150) | synchronized public static Connection getConnection() throws SQLExcept...
    method closeDs (line 160) | synchronized public static void closeDs(String dsName, String sshName) {
    method closeDs (line 180) | synchronized public static void closeDs() {
    method closeAll (line 187) | synchronized public static void closeAll() {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/db/ds/DruidDs.java
  class DruidDs (line 31) | public class DruidDs {
    method init (line 56) | synchronized public static void init(Setting druid_setting, Setting db...
    method getDataSource (line 86) | synchronized public static DataSource getDataSource(String dsName, Str...
    method getDataSource (line 145) | synchronized public static DataSource getDataSource() throws ConnExcep...
    method getConnection (line 158) | synchronized public static Connection getConnection(String datasource,...
    method getConnection (line 169) | synchronized public static Connection getConnection() throws SQLExcept...
    method closeDs (line 179) | synchronized public static void closeDs(String dsName, String sshName) {
    method closeDs (line 199) | synchronized public static void closeDs() {
    method closeAll (line 206) | synchronized public static void closeAll() {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/exception/ExceptAll.java
  type ExceptAll (line 18) | public enum ExceptAll {
    method ExceptAll (line 37) | private ExceptAll(String desc) {
    method getDesc (line 41) | public String getDesc() {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/exception/ParamInfoBean.java
  class ParamInfoBean (line 3) | public class ParamInfoBean {
    method ParamInfoBean (line 11) | public ParamInfoBean(Integer index, String errStr) {
    method ParamInfoBean (line 17) | public ParamInfoBean(Integer index, String errStr, String needStr) {
    method ParamInfoBean (line 24) | public ParamInfoBean(String errStr) {
    method ParamInfoBean (line 29) | public ParamInfoBean(String name, String errStr) {
    method ParamInfoBean (line 35) | public ParamInfoBean(String name, String errStr, String needStr) {
    method getIndex (line 42) | public Integer getIndex() {
    method setIndex (line 46) | public void setIndex(Integer index) {
    method getErrStr (line 50) | public String getErrStr() {
    method setErrStr (line 54) | public void setErrStr(String errStr) {
    method getNeedStr (line 58) | public String getNeedStr() {
    method setNeedStr (line 62) | public void setNeedStr(String needStr) {
    method getName (line 66) | public String getName() {
    method setName (line 70) | public void setName(String name) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/exception/ProjectException.java
  class ProjectException (line 18) | @SuppressWarnings("rawtypes")
    method ProjectException (line 24) | public ProjectException(Enum exceptionAll) {
    method ProjectException (line 35) | public ProjectException(Enum exceptionAll, ParamInfoBean errBean,
    method ProjectException (line 42) | public ProjectException(Enum exceptionAll, Throwable cause) {
    method ProjectException (line 51) | public ProjectException(Enum exceptionAll, String errMsg) {
    method getMessage (line 56) | public String getMessage(IConvertValue convertValue){
    method getShowMessage (line 61) | public String getShowMessage() {
    method getShowMessage (line 66) | public String getShowMessage(String lang) {
    method getErrorMessage (line 83) | public String getErrorMessage() {
    method setErrorMessage (line 87) | public void setErrorMessage(String errorMessage) {
    method getCause (line 91) | public Throwable getCause() {
    method setCause (line 95) | public void setCause(Throwable cause) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/mail/MailAccount.java
  class MailAccount (line 14) | public class MailAccount {
    method MailAccount (line 26) | public MailAccount() {
    method MailAccount (line 29) | public MailAccount(String accountSettingFileBaseClassLoader) {
    method MailAccount (line 38) | public MailAccount(Setting setting) {
    method getHost (line 46) | public String getHost() {
    method setHost (line 49) | public void setHost(String host) {
    method getPort (line 52) | public String getPort() {
    method setPort (line 55) | public void setPort(String port) {
    method isAuth (line 58) | public boolean isAuth() {
    method setAuth (line 61) | public void setAuth(boolean isAuth) {
    method getUser (line 64) | public String getUser() {
    method setUser (line 67) | public void setUser(String user) {
    method getPass (line 70) | public String getPass() {
    method setPass (line 73) | public void setPass(String pass) {
    method getFrom (line 76) | public String getFrom() {
    method setFrom (line 79) | public void setFrom(String from) {
    method toString (line 83) | @Override

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/mail/MailUtil.java
  class MailUtil (line 25) | public class MailUtil {
    method sendToSingle (line 39) | public static void sendToSingle(String to, String subject, String cont...
    method send (line 52) | public static void send(Collection<String> tos, String subject, String...
    method send (line 70) | public static void send(final MailAccount mailAccount, Collection<Stri...

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/maths/Det.java
  class Det (line 10) | public class Det extends Matrix
    method Det (line 13) | public Det(int n)
    method getIDet (line 18) | public static Det getIDet(int n)
    method getDecade (line 28) | public Double getDecade()
    method getRankCount (line 53) | public int getRankCount()

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/maths/Matrix.java
  class Matrix (line 10) | public class Matrix
    method Matrix (line 17) | public Matrix(int m,int n)
    method reset (line 25) | public void reset()
    method getValue (line 35) | public Double getValue(int i,int j)
    method setValue (line 39) | public void setValue(int i,int j,Double x)
    method getRowCount (line 43) | public int getRowCount()
    method getColumnCount (line 47) | public int getColumnCount()
    method setRowValue (line 51) | public void setRowValue(int row,Double[] rowValue)
    method setColValue (line 58) | public void setColValue(int col,Double[] colValue)
    method getRowValue (line 65) | public Double[] getRowValue(int row)
    method getColValue (line 69) | public Double[] getColValue(int col)

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/maths/algorithm/MultiVariableLinearRegression.java
  class MultiVariableLinearRegression (line 16) | public class MultiVariableLinearRegression
    method MultiVariableLinearRegression (line 76) | public MultiVariableLinearRegression(int n)
    method addExample (line 84) | public void addExample(List<Double> x, Double y)
    method regression (line 91) | public Boolean regression()
    method getRegressionLine (line 105) | public String getRegressionLine()
    method forecast (line 121) | public Double forecast(List<Double> x)
    method computeAvgX (line 131) | private void computeAvgX()
    method computeAvgY (line 145) | private void computeAvgY()
    method computeLMatrix (line 155) | private void computeLMatrix()
    method computeAVector (line 182) | private void computeAVector()

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/maths/algorithm/Viterbi.java
  class Viterbi (line 18) | public class Viterbi
    class Triad (line 28) | private class Triad
      method Triad (line 33) | Triad(Double allPorb,Path path,Double prob)
    class Path (line 40) | public class Path
      method toString (line 43) | public String toString()
    method Viterbi (line 53) | public Viterbi(Matrix tran,Matrix prob,Object[] states,Object[] observes)
    method viterbi (line 61) | public boolean viterbi(int[] obs,double[] start)
    method getTranslation (line 143) | public Matrix getTranslation()
    method setTranslation (line 147) | public void setTranslation(Matrix translation)
    method getProbability (line 151) | public Matrix getProbability()
    method setProbability (line 155) | public void setProbability(Matrix probability)
    method getMaxPath (line 159) | public Path getMaxPath()
    method getStates (line 163) | public Object[] getStates()
    method setStates (line 167) | public void setStates(Object[] states)
    method getObserves (line 171) | public Object[] getObserves()
    method setObserves (line 175) | public void setObserves(Object[] observes)
    method getMaxProb (line 179) | public double getMaxProb()
    method getAllProb (line 183) | public double getAllProb()

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/net/AccessControl.java
  class AccessControl (line 27) | public class AccessControl{
    method AccessControl (line 50) | public AccessControl() {
    method AccessControl (line 54) | public AccessControl(String pathBaseClassLoader) {
    method init (line 61) | @SuppressWarnings("unchecked")
    method isAuthorized (line 121) | public boolean isAuthorized(String username, String pass, String group){
    method isPermit (line 137) | public boolean isPermit(HttpServletRequest request){
    method isPermit (line 146) | public boolean isPermit(String ip){
    method isAuthorizedWithIP (line 164) | public boolean isAuthorizedWithIP(String username, String pass, String...
    method isInSection (line 173) | private boolean isInSection(String ip){
    method buildKey (line 190) | private String buildKey(String name, String pass, String group) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/net/Connector.java
  class Connector (line 8) | public class Connector {
    method Connector (line 16) | public Connector() {
    method Connector (line 25) | public Connector(String user, String password, String group) {
    method Connector (line 38) | public Connector(String host, int port, String user, String password) {
    method getHost (line 51) | public String getHost() {
    method setHost (line 58) | public void setHost(String host) {
    method getPort (line 66) | public int getPort() {
    method setPort (line 73) | public void setPort(int port) {
    method getUser (line 81) | public String getUser() {
    method setUser (line 88) | public void setUser(String name) {
    method getPassword (line 96) | public String getPassword() {
    method setPassword (line 103) | public void setPassword(String password) {
    method getGroup (line 111) | public String getGroup() {
    method setGroup (line 118) | public void setGroup(String group) {
    method toString (line 125) | @Override

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/net/HtmlUtil.java
  class HtmlUtil (line 10) | public class HtmlUtil {
    method restoreEscaped (line 20) | public static String restoreEscaped(String htmlStr) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/net/HttpUtil.java
  class HttpUtil (line 27) | public class HttpUtil {
    method HttpUtil (line 36) | public HttpUtil() {
    method get (line 47) | public String get(String urlString, String customCharset) throws IOExc...
    method encode (line 92) | public static String encode(String content, String charset){
    method decode (line 109) | public static String decode(String content, String charset){
    method formatUrl (line 126) | public static String formatUrl(String url){
    method formatHeaderName (line 137) | public static String formatHeaderName(String headerName) {
    method getClientIP (line 180) | public static String getClientIP(HttpServletRequest request) {
    method getCharsetFromConn (line 206) | private static String getCharsetFromConn(HttpURLConnection conn){
    method isUnknow (line 221) | private static boolean isUnknow(String checkString) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/net/SSHUtil.java
  class SSHUtil (line 21) | public class SSHUtil {
    method generateLocalPort (line 40) | synchronized public static int generateLocalPort(){
    method getSession (line 56) | synchronized public static Session getSession(String sshHost, int sshP...
    method openSession (line 75) | synchronized public static Session openSession(String sshHost, int ssh...
    method bindPort (line 101) | synchronized public static boolean bindPort(Session session, String re...
    method unBindPort (line 115) | synchronized public static boolean unBindPort(Session session, int loc...
    method openAndBindPortToLocal (line 133) | synchronized public static int openAndBindPortToLocal(Connector sshCon...
    method close (line 151) | synchronized public static void close(Session session){
    method close (line 161) | synchronized public static void close(String host){
    method closeAll (line 172) | synchronized public static void closeAll(){

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/net/SocketUtil.java
  class SocketUtil (line 18) | public class SocketUtil {
    method isUsableLocalPort (line 27) | public static boolean isUsableLocalPort(int port) {
    method isValidPort (line 46) | public static boolean isValidPort(int port) {
    method longToIpv4 (line 57) | public static String longToIpv4(long longIP) {
    method ipv4ToLong (line 76) | public static long ipv4ToLong(String strIP) {
    method netCat (line 102) | public static void netCat(String host, int port, boolean isBlock, Byte...
    method netCat (line 117) | public static void netCat(String host, int port, byte[] data) throws I...

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/net/URLUtil.java
  class URLUtil (line 17) | public class URLUtil {
    method getURL (line 25) | public static URL getURL(String pathBaseClassLoader){
    method getURL (line 35) | public static URL getURL(String path, Class<?> clazz){
    method getURL (line 44) | public static URL getURL(File configFile){

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/test/MD5Tools.java
  class MD5Tools (line 5) | public class MD5Tools {
    method MD5 (line 6) | public final static String MD5(String pwd) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/test/RegUtils.java
  class RegUtils (line 5) | public class RegUtils {
    method isTelePhone (line 14) | public static boolean isTelePhone(String phone) {
    method isEail (line 27) | public static boolean isEail(String eamil) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/test/SecurityCode.java
  class SecurityCode (line 5) | public class SecurityCode {
    type SecurityCodeLevel (line 9) | public enum SecurityCodeLevel {Simple,Medium,Hard}
    method getSecurityCode (line 14) | public static String getSecurityCode(){
    method getSecurityCode (line 21) | public static String getSecurityCode(int n){
    method getSecurityCode (line 31) | public static String getSecurityCode(int length,SecurityCodeLevel leve...

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/thread/ICancelHandle.java
  type ICancelHandle (line 9) | public interface ICancelHandle {
    method doCancle (line 10) | public void doCancle();

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/thread/RejectedExecutionForLog.java
  class RejectedExecutionForLog (line 17) | public class RejectedExecutionForLog implements RejectedExecutionHandler {
    method rejectedExecution (line 20) | @Override

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/thread/ThreadPool.java
  class ThreadPool (line 12) | public class ThreadPool {
    method getThreadPoolByName (line 21) | public static final ExecutorService getThreadPoolByName(String poolname,
    method getDefaultPool (line 70) | public static final ExecutorService getDefaultPool(Properties properti...
    method getTimeUnit (line 74) | private static TimeUnit getTimeUnit(String TimeUnitStr) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/threads/BaseRunnable.java
  class BaseRunnable (line 9) | public abstract class BaseRunnable implements Runnable {
    method BaseRunnable (line 27) | public BaseRunnable() {
    method BaseRunnable (line 35) | public BaseRunnable(long id, String name) {
    method run (line 41) | @Override
    method work (line 58) | public abstract void work();
    method isRunning (line 64) | public boolean isRunning(){
    method stopRunning (line 70) | public void stopRunning(){
    method getRunTimes (line 78) | public Map<Integer, Long> getRunTimes(){
    method getCallCount (line 86) | public int getCallCount(){
    method setCallCount (line 94) | public void setCallCount(int callCount){
    method getId (line 102) | public long getId() {
    method setId (line 109) | public void setId(long id) {
    method getName (line 117) | public String getName() {
    method setName (line 124) | public void setName(String name) {
    method hashCode (line 128) | @Override
    method equals (line 133) | @Override

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/threads/Executor.java
  class Executor (line 17) | public class Executor {
    method execute (line 25) | public static void execute(Runnable runnable) {
    method restart (line 36) | public static void restart(){
    method newExecutor (line 46) | public static ExecutorService newExecutor(int threadSize){
    method newExecutor (line 54) | public static ExecutorService newExecutor(){
    method excAsync (line 63) | public static BaseRunnable excAsync(final BaseRunnable runnable, boole...
    method execAsync (line 81) | public static <T> Future<T> execAsync(Callable<T> task){
    method newCompletionService (line 89) | public static<T> CompletionService<T> newCompletionService(){
    method newCompletionService (line 97) | public static<T> CompletionService<T> newCompletionService(ExecutorSer...

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/threads/SyncQueue.java
  class SyncQueue (line 16) | public class SyncQueue<E> {
    method SyncQueue (line 41) | @SuppressWarnings("unchecked")
    method put (line 60) | public boolean put(E item) throws InterruptedException {
    method take (line 90) | public E take() throws InterruptedException {
    method size (line 114) | public int size() {
    method clear (line 127) | public void clear() {
    method signalAllTake (line 150) | public void signalAllTake() {
    method signalAllput (line 163) | public void signalAllput() {
    method close (line 177) | public void close() {
    method isClosed (line 185) | public boolean isClosed() {
    method inc (line 197) | private final int inc(int index) {
    method insert (line 205) | private void insert(E item) {
    method extract (line 217) | private E extract() {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/uid/SimpleUidUtil.java
  class SimpleUidUtil (line 5) | public class SimpleUidUtil
    method nextUid (line 7) | public static String nextUid()

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/web/EasyUiAssist.java
  class EasyUiAssist (line 28) | public abstract class EasyUiAssist {
    method getJsonForGrid (line 50) | public static String getJsonForGrid(List<?> fromList, String[] titles,
    method getJsonForGrid (line 68) | public static String getJsonForGrid(List<?> fromList, String[] titles,
    method getJsonForGrid (line 77) | public static String getJsonForGrid(List<?> fromList, String[] titles,
    method getJsonForGridAlias (line 97) | public static String getJsonForGridAlias(List<?> fromList,
    method getJsonForGridEmpty (line 127) | public static String getJsonForGridEmpty() {
    method getJsonForGridAlias (line 138) | public static String getJsonForGridAlias(List<?> fromList, long record...
    method getJsonForGridByObj (line 148) | public static String getJsonForGridByObj(Object... inputObj) {
    method getJsonFromList (line 175) | public static String getJsonFromList(List<Object> fromList,
    method getTreeFromList (line 203) | public static String getTreeFromList(EasyUINode... nodes) {
    method getTreeFromList (line 222) | public static String getTreeFromList(List<EasyUINode> nodes) {
    method getTreeRoot (line 237) | public static <T> List<EasyUINode> getTreeRoot(List<T> oriList,
    method getBoolean (line 314) | private static boolean getBoolean(String valueCol, Object oriObj,
    method packNode (line 327) | private static void packNode(List<EasyUINode> parentNodes,

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/web/OperateResult.java
  class OperateResult (line 12) | public class OperateResult {
    method OperateResult (line 22) | public OperateResult(ProjectException opeExcept) {
    method isSuc (line 30) | public boolean isSuc() {
    method OperateResult (line 34) | public OperateResult(int result, ProjectException opeExcept) {
    method OperateResult (line 42) | public OperateResult(int result, String message) {
    method OperateResult (line 47) | public OperateResult(int result) {
    method getResult (line 51) | public int getResult() {
    method setResult (line 55) | public void setResult(int result) {
    method getMessage (line 64) | public String getMessage(IConvertValue convertValue) {
    method setMessage (line 71) | public void setMessage(String message) {
    method getOpeExcept (line 75) | public ProjectException getOpeExcept() {
    method setOpeExcept (line 79) | public void setOpeExcept(ProjectException opeExcept) {
    method getJsonMsg (line 83) | public String getJsonMsg(IConvertValue convertValue) {
    method getJsonObj (line 95) | public JSONObject getJsonObj(){
    method setJsonMsg (line 100) | public void setJsonMsg(String jsonMsg) {
    method getRetObjs (line 104) | public Object[] getRetObjs() {
    method getRetObj (line 108) | public Object getRetObj(int index) {
    method setRetObjs (line 115) | public void setRetObjs(Object[] retObjs) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/web/PageAssist.java
  class PageAssist (line 5) | public class PageAssist {
    method PageAssist (line 11) | public PageAssist(int pageSize, int pageNo, int allNum) {
    method PageAssist (line 18) | public PageAssist(int pageSize, int pageNo) {
    method getPageSize (line 25) | public int getPageSize() {
    method getResult (line 29) | public List<?> getResult() {
    method setResult (line 33) | public void setResult(List<?> result) {
    method getPageNo (line 37) | public int getPageNo() {
    method getAllNum (line 41) | public long getAllNum() {
    method setAllNum (line 45) | public void setAllNum(long allNum) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/wordSearch/StopChar.java
  class StopChar (line 13) | public class StopChar {
    method isStopChar (line 38) | public static boolean isStopChar(String ch) {
    method isStopChar (line 50) | public static boolean isStopChar(char ch) {
    method toString (line 54) | @Override

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/wordSearch/Words.java
  class Words (line 14) | public class Words extends HashMap<Character, Words>{
    method Words (line 27) | public Words() {
    method Words (line 34) | public Words(int type) {
    method addWord (line 43) | public void addWord(String word) {
    method addWord (line 52) | public void addWord(String word, int type){
    method contains (line 89) | public boolean contains(String text) {
    method contains (line 99) | public boolean contains(String text, int type){
    method getFindedFirstWord (line 125) | public String getFindedFirstWord(String text) {
    method getFindedFirstWord (line 135) | public String getFindedFirstWord(String text, int type){
    method getFindedAllWords (line 164) | public List<String> getFindedAllWords(String text) {
    method getFindedAllWords (line 174) | public List<String> getFindedAllWords(String text, int type) {

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/workflow/Consumer.java
  class Consumer (line 14) | public abstract class Consumer<E> extends Thread {
    method Consumer (line 20) | public Consumer(Ecosystem<E> queue, ThreadGroup group, String name) {
    method run (line 25) | @Override
    method isFinished (line 50) | protected boolean isFinished() {
    method end (line 58) | protected abstract void end();
    method consume (line 66) | protected abstract void consume(E product);

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/workflow/Ecosystem.java
  class Ecosystem (line 21) | public class Ecosystem<E> extends SyncQueue<E>{
    method Ecosystem (line 39) | public Ecosystem(int capacity) {
    method newProducer (line 49) | public <T extends Producer<E>> T newProducer(Class<T> producerClass, S...
    method prepareNewProducer (line 71) | public void prepareNewProducer() {
    method finishNewProducer (line 83) | public void finishNewProducer() {
    method newConsumer (line 93) | public <T extends Consumer<E>> T newConsumer(Class<T> consumerClass, S...
    method shutDown (line 117) | synchronized public void shutDown(){
    method isActive (line 128) | public boolean isActive(){
    method activeProducerCount (line 136) | public int activeProducerCount(){
    method activeConsumerCount (line 144) | public int activeConsumerCount(){
    method producerEnd (line 154) | protected final void producerEnd(){
    method consumerEnd (line 172) | synchronized protected final void consumerEnd(){
    method actionAfterClose (line 185) | synchronized protected void actionAfterClose(){

FILE: jun_java_plugins/jun_apache_commons/src/main/java/com/jun/plugin/commons/util/workflow/Producer.java
  class Producer (line 13) | public abstract class Producer<E> extends Thread {
    method Producer (line 19) | public Producer(Ecosystem<E> queue, ThreadGroup group, String name) {
    method run (line 24) | @Override
    method isFinished (line 50) | protected boolean isFinished(){
    method end (line 57) | protected abstract void end();
    method produce (line 64) | protected abstract E produce();

FILE: jun_java_plugins/jun_apache_commons/src/test/java/com/jun/plugin/commons/test/Test.java
  class Test (line 3) | public class Test {

FILE: jun_java_plugins/jun_apache_commons/src/test/java/com/jun/plugin/commons/util/CommonTest.java
  class CommonTest (line 5) | public class CommonTest {
    method main (line 6) | public static void main(String[] args) {

FILE: jun_java_plugins/jun_apache_commons/src/test/java/com/jun/plugin/commons/util/DateUtilTest.java
  class DateUtilTest (line 11) | public class DateUtilTest {
    method dateTest (line 15) | @Test
    method datetimeTest (line 26) | @Test
    method getOffsiteDateTest (line 37) | @Test
    method main (line 43) | public static void main(String[] args) {

FILE: jun_java_plugins/jun_apache_commons/src/test/java/com/jun/plugin/commons/util/SecureUtilTest.java
  class SecureUtilTest (line 8) | public class SecureUtilTest {
    method getMd5Test (line 9) | @Test

FILE: jun_java_plugins/jun_apache_commons/src/test/java/com/jun/plugin/commons/util/SettingTest.java
  class SettingTest (line 8) | public class SettingTest {
    method settingTest (line 14) | @Test
    method settingGroupTest (line 32) | @Test

FILE: jun_java_plugins/jun_apache_commons/src/test/java/com/jun/plugin/commons/util/TestViterbi.java
  class TestViterbi (line 7) | public class TestViterbi
    method main (line 17) | public static void main(String[] args)

FILE: jun_java_plugins/jun_apache_commons/src/test/java/com/jun/plugin/commons/util/ZhUtilTest.java
  class ZhUtilTest (line 8) | public class ZhUtilTest {
    method zhUtilTest (line 9) | @Test

FILE: jun_java_plugins/jun_apache_commons/src/test/java/com/jun/plugin/commons/util/wordSraech/WordSearchTest.java
  class WordSearchTest (line 10) | public class WordSearchTest {
    method wordSearchTest (line 11) | @Test

FILE: jun_java_plugins/jun_compiler/src/main/java/com/jun/plugin/compiler/JAbstractJavaFileObject.java
  class JAbstractJavaFileObject (line 28) | public abstract class JAbstractJavaFileObject extends SimpleJavaFileObje...
    method JAbstractJavaFileObject (line 30) | public JAbstractJavaFileObject(String className, Kind kind) {

FILE: jun_java_plugins/jun_compiler/src/main/java/com/jun/plugin/compiler/JCompileBytesClassLoader.java
  class JCompileBytesClassLoader (line 28) | public class JCompileBytesClassLoader extends ClassLoader {
    method JCompileBytesClassLoader (line 30) | public JCompileBytesClassLoader() {
    method JCompileBytesClassLoader (line 34) | public JCompileBytesClassLoader(ClassLoader parent) {
    method loadCompileBytesClass (line 41) | public Class<?> loadCompileBytesClass(String className, byte[] compile...
    method loadCompileBytesClass (line 49) | public Class<?> loadCompileBytesClass(String className, InputStream co...

FILE: jun_java_plugins/jun_compiler/src/main/java/com/jun/plugin/compiler/JCompileResult.java
  class JCompileResult (line 28) | public class JCompileResult {
    method JCompileResult (line 54) | public JCompileResult(boolean success, long useTime, DiagnosticCollect...
    method isSuccess (line 67) | public boolean isSuccess() {
    method getUseTime (line 75) | public long getUseTime() {
    method getDiagnosticCollector (line 79) | public DiagnosticCollector<JavaFileObject> getDiagnosticCollector() {
    method getDiagnostics (line 87) | public String getDiagnostics() {
    method getClassName (line 99) | public String getClassName() {
    method getCompiledBytes (line 107) | public byte[] getCompiledBytes() {
    method newInstance (line 115) | public Object newInstance() throws Exception {
    method getCompiledClass (line 123) | public Class<?> getCompiledClass() {
    method toString (line 135) | @Override

FILE: jun_java_plugins/jun_compiler/src/main/java/com/jun/plugin/compiler/JMemoryJavaCompiler.java
  class JMemoryJavaCompiler (line 38) | public class JMemoryJavaCompiler implements Closeable {
    method JMemoryJavaCompiler (line 56) | public JMemoryJavaCompiler() {
    method JMemoryJavaCompiler (line 65) | public JMemoryJavaCompiler(boolean paralleLock) {
    method compile (line 76) | public JCompileResult compile(String content) throws Exception {
    method compile (line 84) | public JCompileResult compile(String className, String content) throws...
    method getFullClassName (line 102) | private String getFullClassName(String content) {
    method getClassCompilingLock (line 121) | private Object getClassCompilingLock(String className) {
    method close (line 133) | @Override

FILE: jun_java_plugins/jun_compiler/src/main/java/com/jun/plugin/compiler/JMemoryJavaFileManage.java
  class JMemoryJavaFileManage (line 34) | public class JMemoryJavaFileManage extends ForwardingJavaFileManager<Jav...
    method JMemoryJavaFileManage (line 40) | public JMemoryJavaFileManage(JavaFileManager fileManager) {
    method getJavaFileForOutput (line 45) | @Override
    method getCompiledBytes (line 60) | public byte[] getCompiledBytes(String className) {

FILE: jun_java_plugins/jun_compiler/src/main/java/com/jun/plugin/compiler/JMemoryJavaFileObject.java
  class JMemoryJavaFileObject (line 28) | public class JMemoryJavaFileObject extends JAbstractJavaFileObject {
    method JMemoryJavaFileObject (line 38) | public JMemoryJavaFileObject(String className, Kind kind) {
    method openOutputStream (line 42) | @Override
    method getCompiledBytes (line 52) | public byte[] getCompiledBytes() {

FILE: jun_java_plugins/jun_compiler/src/main/java/com/jun/plugin/compiler/JStringJavaFileObject.java
  class JStringJavaFileObject (line 26) | public class JStringJavaFileObject extends JAbstractJavaFileObject {
    method JStringJavaFileObject (line 36) | public JStringJavaFileObject(String className, String content) {
    method getCharContent (line 41) | @Override

FILE: jun_java_plugins/jun_compiler/src/test/java/com/jun/plugin/compiler/test/CompileTest.java
  class CompileTest (line 8) | public class CompileTest {
    method test (line 9) | @Test
    type Parent (line 23) | public interface Parent {
      method say (line 24) | void say();

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/Constants.java
  type Constants (line 6) | public interface Constants {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/KeyConstants.java
  type KeyConstants (line 6) | public interface KeyConstants {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/PrefixConstants.java
  type PrefixConstants (line 7) | public interface PrefixConstants {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/ReadResources.java
  type ReadResources (line 10) | public interface ReadResources {
    method load (line 17) | void load(InputStream is) throws IOException;

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/Resources.java
  type Resources (line 11) | public interface Resources extends Config {
    method getResources (line 17) | Map<Object, Object> getResources();
    method writeLocalProperties (line 22) | void writeLocalProperties();

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/SuffixConstants.java
  type SuffixConstants (line 6) | public interface SuffixConstants {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/ValueEncrypt.java
  class ValueEncrypt (line 12) | public class ValueEncrypt {
    method main (line 16) | public static void main(String[] args) {
    method setKey (line 55) | public void setKey(String key) {
    method getKey (line 59) | public String getKey() {
    method encrypt (line 63) | public String encrypt(String var) {
    method decrypt (line 67) | public String decrypt(String var) {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/config/AbstractConfig.java
  class AbstractConfig (line 14) | public abstract class AbstractConfig {
    method getResources (line 25) | protected Resources getResources(String name) throws IOException {
    method getResourcesName (line 52) | private String getResourcesName(String resourcesName) {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/config/Config.java
  type Config (line 8) | public interface Config {
    method getValue (line 10) | String getValue(String key);
    method getBooleanValue (line 12) | Boolean getBooleanValue(String key);
    method getIntegerValue (line 14) | Integer getIntegerValue(String key);
    method getFloatValue (line 16) | Float getFloatValue(String key);
    method getDoubleValue (line 18) | Double getDoubleValue(String key);
    method getCharValue (line 20) | Character getCharValue(String key);
    method get (line 22) | Object get(String key);
    method getConfig (line 24) | Map<Object, Object> getConfig();
    method clear (line 26) | void clear();

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/config/GlobalConfig.java
  class GlobalConfig (line 23) | public class GlobalConfig extends AbstractConfig implements Config, Refr...
    method useKey (line 59) | public static void useKey(String key) {
    class SingletonHolder (line 66) | private static class SingletonHolder {
    method getInstance (line 75) | private static GlobalConfig getInstance() {
    method get (line 84) | public static Config get() {
    method readConfig (line 94) | public static Config readConfig(String[] var1) {
    method putAll (line 105) | public static Config putAll(Map<Object, Object> config) {
    method put (line 117) | public static Config put(Object key, Object value) {
    method GlobalConfig (line 125) | private GlobalConfig() {
    method read (line 134) | private void read(String[] var1) {
    method read (line 148) | private void read(String name) {
    method getValue (line 159) | @Override
    method getBooleanValue (line 164) | @Override
    method getIntegerValue (line 169) | @Override
    method getFloatValue (line 174) | @Override
    method getDoubleValue (line 179) | @Override
    method getCharValue (line 184) | @Override
    method get (line 189) | @Override
    method getConfig (line 194) | @Override
    method clear (line 199) | @Override
    method refresh (line 204) | @Override

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/config/RefreshConfig.java
  type RefreshConfig (line 6) | public interface RefreshConfig {
    method refresh (line 7) | void refresh();

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/convert/Convert.java
  type Convert (line 6) | public interface Convert<T> {
    method convert (line 13) | T convert(Object obj);

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/convert/impl/BooleanConvert.java
  class BooleanConvert (line 8) | public class BooleanConvert implements Convert<Boolean> {
    method convert (line 10) | @Override

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/convert/impl/CharConvert.java
  class CharConvert (line 8) | public class CharConvert implements Convert<Character> {
    method convert (line 10) | @Override

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/convert/impl/DoubleConvert.java
  class DoubleConvert (line 8) | public class DoubleConvert implements Convert<Double> {
    method convert (line 10) | @Override

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/convert/impl/FloatConvert.java
  class FloatConvert (line 8) | public class FloatConvert implements Convert<Float> {
    method convert (line 10) | @Override

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/convert/impl/IntegerConvert.java
  class IntegerConvert (line 8) | public class IntegerConvert implements Convert<Integer> {
    method convert (line 10) | @Override

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/convert/impl/LongConvert.java
  class LongConvert (line 8) | public class LongConvert implements Convert<Long> {
    method convert (line 10) | @Override

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/convert/impl/StringConvert.java
  class StringConvert (line 8) | public class StringConvert implements Convert<String> {
    method convert (line 10) | @Override

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/core/AbstractResourceName.java
  class AbstractResourceName (line 10) | public abstract class AbstractResourceName {
    method getPrefixName (line 17) | public String getPrefixName(String sourceName) {
    method getSuffixName (line 31) | public String getSuffixName(String sourceName) {
    method isClassFile (line 46) | protected boolean isClassFile(String prefixName) {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/core/AbstractResources.java
  class AbstractResources (line 13) | public abstract class AbstractResources implements ReadResources, Resour...
    method getResources (line 17) | @Override
    method writeLocalProperties (line 22) | @Override
    method getValue (line 29) | @Override
    method getBooleanValue (line 34) | @Override
    method getIntegerValue (line 39) | @Override
    method getFloatValue (line 44) | @Override
    method getDoubleValue (line 49) | @Override
    method getCharValue (line 54) | @Override
    method get (line 59) | @Override
    method clear (line 64) | @Override

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/core/AutoResources.java
  class AutoResources (line 19) | public class AutoResources extends AbstractResourceName implements Resou...
    method AutoResources (line 23) | public AutoResources(String name) throws IOException {
    method getResources (line 80) | @Override
    method writeLocalProperties (line 88) | @Override
    method getValue (line 93) | @Override
    method getBooleanValue (line 98) | @Override
    method getIntegerValue (line 103) | @Override
    method getFloatValue (line 108) | @Override
    method getDoubleValue (line 113) | @Override
    method getCharValue (line 118) | @Override
    method get (line 123) | @Override
    method getConfig (line 128) | @Override
    method clear (line 133) | @Override

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/core/properties/DbProperties.java
  class DbProperties (line 16) | public class DbProperties extends Hashtable<Object, Object> {
    method DbProperties (line 21) | public DbProperties() {
    method DbProperties (line 29) | public DbProperties(Properties defaults) {
    method setProperty (line 33) | public synchronized Object setProperty(String key, String value) {
    method load (line 37) | public synchronized void load(String tableName) {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/core/properties/GitProperties.java
  class GitProperties (line 17) | public class GitProperties extends Hashtable<Object, Object> {
    method GitProperties (line 37) | public GitProperties() {
    method GitProperties (line 45) | public GitProperties(Properties defaults) {
    method setProperty (line 49) | public synchronized Object setProperty(String key, String value) {
    method load (line 53) | public synchronized void load() {
    method load (line 60) | public synchronized void load(String... name) {
    method load (line 72) | private synchronized void load(String filePath) {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/core/properties/YamlProperties.java
  class YamlProperties (line 19) | public class YamlProperties extends Hashtable<Object, Object> {
    method YamlProperties (line 26) | public YamlProperties() {
    method YamlProperties (line 34) | public YamlProperties(Properties defaults) {
    method setProperty (line 38) | public synchronized Object setProperty(String key, String value) {
    method load (line 42) | public synchronized void load(InputStream inStream) throws IOException {
    method getValue (line 54) | private void getValue(String key, Map<Object, Object> map) {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/db/DbUtils.java
  class DbUtils (line 14) | public final class DbUtils {
    method select (line 26) | public static List<Map<String, Object>> select(String sql) {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/db/JdbcUtils.java
  class JdbcUtils (line 20) | public final class JdbcUtils {
    method getDataSource (line 34) | private static DataSource getDataSource() {
    method getJdbcTemplate (line 67) | public static JdbcTemplate getJdbcTemplate() {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/db/datasource/AbstractDataSource.java
  class AbstractDataSource (line 9) | public abstract class AbstractDataSource {
    method AbstractDataSource (line 16) | public AbstractDataSource(String driverClass, String jdbcUrl, String u...
    method getDataSource (line 28) | public abstract DataSource getDataSource();
    method getDriverClass (line 30) | public String getDriverClass() {
    method getJdbcUrl (line 34) | public String getJdbcUrl() {
    method getUsername (line 38) | public String getUsername() {
    method getPassword (line 42) | public String getPassword() {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/db/datasource/DefaultDataSource.java
  class DefaultDataSource (line 12) | public class DefaultDataSource extends AbstractDataSource {
    method DefaultDataSource (line 14) | public DefaultDataSource(String driverClass, String jdbcUrl, String us...
    method getDataSource (line 18) | @Override

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/db/select/Select.java
  class Select (line 12) | public final class Select {
    method Select (line 16) | public Select() {
    method table (line 26) | public SelectColumn table(String name) {
    class SelectColumn (line 38) | public static class SelectColumn {
      method SelectColumn (line 42) | public SelectColumn(StringBuilder builder) {
      method column (line 52) | public SelectColumn column(String... column) {
      method columnAll (line 63) | public SelectColumn columnAll() {
      method toString (line 69) | @Override
    method toString (line 75) | @Override
    method judgeXSS (line 87) | public boolean judgeXSS(String value) {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/encrypt/ResourceEncrypt.java
  class ResourceEncrypt (line 13) | public final class ResourceEncrypt {
    method use (line 22) | public static void use(String key) {
    method value (line 32) | public static Object value(Object value) {
    method value (line 53) | public static Map<Object, Object> value(Map<Object, Object> resources) {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/extend/DbResources.java
  class DbResources (line 17) | public final class DbResources extends AbstractResources {
    method load (line 19) | public void load() {
    method load (line 25) | public void load(String tableName) {
    method load (line 31) | @Override
    method getConfig (line 36) | @Override
    method clear (line 41) | @Override

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/extend/GitResources.java
  class GitResources (line 13) | public final class GitResources extends AbstractResources {
    method load (line 15) | public void load() {
    method load (line 21) | public void load(String... name) {
    method load (line 27) | @Override
    method getConfig (line 32) | @Override
    method clear (line 37) | @Override

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/extend/PropertiesResources.java
  class PropertiesResources (line 17) | public final class PropertiesResources extends AbstractResources {
    method loadByClassPath (line 25) | public void loadByClassPath(String path) throws IOException {
    method loadByFile (line 35) | public void loadByFile(File file) throws IOException {
    method loadByFilePath (line 47) | public void loadByFilePath(String path) throws IOException {
    method load (line 52) | @Override
    method getConfig (line 62) | @Override
    method clear (line 67) | @Override

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/extend/XmlResources.java
  class XmlResources (line 17) | public final class XmlResources extends AbstractResources {
    method loadByClassPath (line 25) | public void loadByClassPath(String path) throws IOException {
    method loadByFile (line 35) | public void loadByFile(File file) throws IOException {
    method loadByFilePath (line 45) | public void loadByFilePath(String path) throws IOException {
    method load (line 49) | @Override
    method getConfig (line 59) | @Override
    method clear (line 64) | @Override

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/extend/YamlResources.java
  class YamlResources (line 16) | public final class YamlResources extends AbstractResources {
    method loadByClassPath (line 24) | public void loadByClassPath(String path) throws IOException {
    method loadByFile (line 34) | public void loadByFile(File file) throws IOException {
    method loadByFilePath (line 44) | public void loadByFilePath(String path) throws IOException {
    method load (line 49) | @Override
    method getConfig (line 59) | @Override
    method clear (line 64) | @Override

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/repository/RemoteRepository.java
  type RemoteRepository (line 8) | public interface RemoteRepository {
    method cloneRepository (line 15) | boolean cloneRepository();
    method pullRepository (line 22) | boolean pullRepository();
    method listFileAll (line 29) | List<String> listFileAll();

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/repository/git/GitBuilder.java
  class GitBuilder (line 16) | public class GitBuilder {
    method createProvider (line 30) | public static CredentialsProvider createProvider() {
    method createProvider (line 48) | public static CredentialsProvider createProvider(String username, Stri...

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/repository/git/GitCore.java
  class GitCore (line 23) | public class GitCore implements RemoteRepository {
    method cloneRepository (line 33) | @Override
    method pullRepository (line 56) | @Override
    method listFileAll (line 74) | @Override

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/repository/git/config/GitConfig.java
  class GitConfig (line 12) | public class GitConfig {
    method get (line 22) | public static GitConfig get() {
    method GitConfig (line 36) | public GitConfig() {
    method getUri (line 44) | public String getUri() {
    method setUri (line 48) | public void setUri(String uri) {
    method getUsername (line 52) | public String getUsername() {
    method setUsername (line 56) | public void setUsername(String username) {
    method getPassword (line 60) | public String getPassword() {
    method setPassword (line 64) | public void setPassword(String password) {
    method getBranch (line 68) | public String getBranch() {
    method setBranch (line 75) | public void setBranch(String branch) {
    method getLocalDir (line 79) | public String getLocalDir() {
    method setLocalDir (line 87) | public void setLocalDir(String localDir) {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/utils/AES.java
  class AES (line 17) | public class AES {
    method encrypt (line 31) | public static String encrypt(String data, String key) {
    method decrypt (line 42) | public static String decrypt(String data, String key) {
    method doAES (line 54) | private static String doAES(String data, String key, int mode) {
    method parseByte2HexStr (line 102) | public static String parseByte2HexStr(byte buf[]) {
    method parseHexStr2Byte (line 120) | public static byte[] parseHexStr2Byte(String hexStr) {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/utils/Args.java
  class Args (line 6) | public final class Args {
    method Args (line 8) | private Args() {
    method valueTrim (line 12) | public static String valueTrim(String var1) {
    method value (line 16) | public static String value(String var1) {
    method value (line 20) | public static String value(String var1, String var2) {
    method value (line 24) | public static Boolean value(Boolean var1) {
    method value (line 28) | public static Boolean value(Boolean var1, Boolean var2) {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/utils/ArrayUtils.java
  class ArrayUtils (line 8) | public final class ArrayUtils {
    method ArrayUtils (line 10) | private ArrayUtils() {
    method toString (line 14) | public static <E> String toString(E[] array) {
    method toString (line 26) | public static <E> String toString(List<E> list) {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/utils/FileUtils.java
  class FileUtils (line 10) | public final class FileUtils {
    method getFileName (line 18) | public static String getFileName(String path) {
    method listAllFiles (line 29) | public static List<String> listAllFiles(File file) {
    method listFiles (line 50) | public static List<String> listFiles(File file) {
    method delNotEmptyDir (line 71) | public static boolean delNotEmptyDir(File file) {
    method delDir (line 86) | public static boolean delDir(String file) {
    method delDir (line 91) | public static boolean delDir(File file) {
    method delFile (line 98) | public static boolean delFile(File file) {
    method delFile (line 105) | public static boolean delFile(String file) {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/utils/ResourcesUtils.java
  class ResourcesUtils (line 16) | public class ResourcesUtils {
    method getProfileProperties (line 27) | public static String getProfileProperties(String var1) {
    method getProfileProperties (line 40) | public static String getProfileProperties(String var1, String profile) {
    method getPropertiesName (line 68) | public static String getPropertiesName(String var1) {
    method convert (line 81) | public static String convert(String var1) {
    method exists (line 93) | public static boolean exists(String var1, boolean isClassPath) {
    method classInputStream (line 107) | public static InputStream classInputStream(String path) {

FILE: jun_java_plugins/jun_config_resources/src/main/java/com/jun/plugin/resources/utils/StringUtils.java
  class StringUtils (line 6) | public final class StringUtils {
    method isEmpty (line 8) | public static boolean isEmpty(String var1) {
    method isNotEmpty (line 12) | public static boolean isNotEmpty(String var1) {

FILE: jun_java_plugins/jun_config_resources/src/test/java/Test.java
  class Test (line 18) | public class Test {
    method useKey (line 20) | @Before
    method globalConfig (line 26) | @org.junit.Test
    method loadProperties (line 35) | @org.junit.Test
    method loadPropertiesByFilePath (line 44) | @org.junit.Test
    method loadXmlProperties (line 51) | @org.junit.Test
    method loadXmlPropertiesByFilePath (line 60) | @org.junit.Test
    method loadYamlProperties (line 67) | @org.junit.Test
    method loadYamlPropertiesByFilePath (line 76) | @org.junit.Test
    method loadDbProperties (line 85) | @org.junit.Test
    method loadDbPropertiesByTableName (line 94) | @org.junit.Test
    method autoReadResources (line 103) | @org.junit.Test
    method sqlBuilder (line 114) | @org.junit.Test
    method testGit (line 122) | @org.junit.Test
    method loadGit (line 129) | @org.junit.Test

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/XxlCrawler.java
  class XxlCrawler (line 26) | public class XxlCrawler {
    method getRunData (line 42) | public RunData getRunData() {
    method getRunConf (line 46) | public RunConf getRunConf() {
    class Builder (line 51) | public static class Builder {
      method setRunData (line 61) | public Builder setRunData(RunData runData){
      method setUrls (line 72) | public Builder setUrls(String... urls) {
      method setAllowSpread (line 88) | public Builder setAllowSpread(boolean allowSpread) {
      method setWhiteUrlRegexs (line 99) | public Builder setWhiteUrlRegexs(String... whiteUrlRegexs) {
      method setPageParser (line 114) | public Builder setPageParser(PageParser pageParser){
      method setPageLoader (line 125) | public Builder setPageLoader(PageLoader pageLoader){
      method setParamMap (line 137) | public Builder setParamMap(Map<String, String> paramMap){
      method setCookieMap (line 148) | public Builder setCookieMap(Map<String, String> cookieMap){
      method setHeaderMap (line 159) | public Builder setHeaderMap(Map<String, String> headerMap){
      method setUserAgent (line 170) | public Builder setUserAgent(String... userAgents){
      method setReferrer (line 187) | public Builder setReferrer(String referrer){
      method setIfPost (line 198) | public Builder setIfPost(boolean ifPost){
      method setTimeoutMillis (line 209) | public Builder setTimeoutMillis(int timeoutMillis){
      method setPauseMillis (line 220) | public Builder setPauseMillis(int pauseMillis){
      method setProxyMaker (line 231) | public Builder setProxyMaker(ProxyMaker proxyMaker){
      method setFailRetryCount (line 242) | public Builder setFailRetryCount(int failRetryCount){
      method setThreadCount (line 256) | public Builder setThreadCount(int threadCount) {
      method build (line 261) | public XxlCrawler build() {
    method start (line 273) | public void start(boolean sync){
    method tryFinish (line 317) | public void tryFinish(){
    method stop (line 335) | public void stop(){

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/conf/XxlCrawlerConf.java
  class XxlCrawlerConf (line 8) | public class XxlCrawlerConf {
    type SelectType (line 27) | public enum SelectType {

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/exception/XxlCrawlerException.java
  class XxlCrawlerException (line 8) | public class XxlCrawlerException extends RuntimeException {
    method XxlCrawlerException (line 10) | public XxlCrawlerException() {
    method XxlCrawlerException (line 14) | public XxlCrawlerException(String message) {

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/loader/PageLoader.java
  class PageLoader (line 12) | public abstract class PageLoader {
    method load (line 20) | public abstract Document load(PageRequest pageRequest);

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/loader/strategy/HtmlUnitPageLoader.java
  class HtmlUnitPageLoader (line 30) | public class HtmlUnitPageLoader extends PageLoader {
    method load (line 33) | @Override

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/loader/strategy/JsoupPageLoader.java
  class JsoupPageLoader (line 14) | public class JsoupPageLoader extends PageLoader {
    method load (line 16) | @Override

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/loader/strategy/SeleniumPhantomjsPageLoader.java
  class SeleniumPhantomjsPageLoader (line 28) | public class SeleniumPhantomjsPageLoader extends PageLoader {
    method SeleniumPhantomjsPageLoader (line 32) | public SeleniumPhantomjsPageLoader(String driverPath) {
    method load (line 36) | @Override

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/model/PageRequest.java
  class PageRequest (line 11) | public class PageRequest {
    method PageRequest (line 24) | public PageRequest() {
    method PageRequest (line 27) | public PageRequest(String url,
    method getUrl (line 49) | public String getUrl() {
    method setUrl (line 53) | public void setUrl(String url) {
    method getParamMap (line 57) | public Map<String, String> getParamMap() {
    method setParamMap (line 61) | public void setParamMap(Map<String, String> paramMap) {
    method getCookieMap (line 65) | public Map<String, String> getCookieMap() {
    method setCookieMap (line 69) | public void setCookieMap(Map<String, String> cookieMap) {
    method getHeaderMap (line 73) | public Map<String, String> getHeaderMap() {
    method setHeaderMap (line 77) | public void setHeaderMap(Map<String, String> headerMap) {
    method getUserAgent (line 81) | public String getUserAgent() {
    method setUserAgent (line 85) | public void setUserAgent(String userAgent) {
    method getReferrer (line 89) | public String getReferrer() {
    method setReferrer (line 93) | public void setReferrer(String referrer) {
    method isIfPost (line 97) | public boolean isIfPost() {
    method setIfPost (line 101) | public void setIfPost(boolean ifPost) {
    method getTimeoutMillis (line 105) | public int getTimeoutMillis() {
    method setTimeoutMillis (line 109) | public void setTimeoutMillis(int timeoutMillis) {
    method isValidateTLSCertificates (line 113) | public boolean isValidateTLSCertificates() {
    method setValidateTLSCertificates (line 117) | public void setValidateTLSCertificates(boolean validateTLSCertificates) {
    method getProxy (line 121) | public Proxy getProxy() {
    method setProxy (line 125) | public void setProxy(Proxy proxy) {

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/model/RunConf.java
  class RunConf (line 18) | public class RunConf {
    method validWhiteUrl (line 44) | public boolean validWhiteUrl(String link){
    method isAllowSpread (line 65) | public boolean isAllowSpread() {
    method setAllowSpread (line 69) | public void setAllowSpread(boolean allowSpread) {
    method getWhiteUrlRegexs (line 73) | public Set<String> getWhiteUrlRegexs() {
    method setWhiteUrlRegexs (line 77) | public void setWhiteUrlRegexs(Set<String> whiteUrlRegexs) {
    method getPageLoader (line 81) | public PageLoader getPageLoader() {
    method setPageLoader (line 85) | public void setPageLoader(PageLoader pageLoader) {
    method getPageParser (line 89) | public PageParser getPageParser() {
    method setPageParser (line 93) | public void setPageParser(PageParser pageParser) {
    method getParamMap (line 97) | public Map<String, String> getParamMap() {
    method setParamMap (line 101) | public void setParamMap(Map<String, String> paramMap) {
    method getCookieMap (line 105) | public Map<String, String> getCookieMap() {
    method setCookieMap (line 109) | public void setCookieMap(Map<String, String> cookieMap) {
    method getHeaderMap (line 113) | public Map<String, String> getHeaderMap() {
    method setHeaderMap (line 117) | public void setHeaderMap(Map<String, String> headerMap) {
    method getUserAgentList (line 121) | public List<String> getUserAgentList() {
    method setUserAgentList (line 125) | public void setUserAgentList(List<String> userAgentList) {
    method getReferrer (line 129) | public String getReferrer() {
    method setReferrer (line 133) | public void setReferrer(String referrer) {
    method isIfPost (line 137) | public boolean isIfPost() {
    method setIfPost (line 141) | public void setIfPost(boolean ifPost) {
    method getTimeoutMillis (line 145) | public int getTimeoutMillis() {
    method setTimeoutMillis (line 149) | public void setTimeoutMillis(int timeoutMillis) {
    method getPauseMillis (line 153) | public int getPauseMillis() {
    method setPauseMillis (line 157) | public void setPauseMillis(int pauseMillis) {
    method getProxyMaker (line 161) | public ProxyMaker getProxyMaker() {
    method setProxyMaker (line 165) | public void setProxyMaker(ProxyMaker proxyMaker) {
    method getFailRetryCount (line 169) | public int getFailRetryCount() {
    method setFailRetryCount (line 173) | public void setFailRetryCount(int failRetryCount) {
    method isValidateTLSCertificates (line 177) | public boolean isValidateTLSCertificates() {
    method setValidateTLSCertificates (line 181) | public void setValidateTLSCertificates(boolean isValidateTLSCertificat...

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/parser/PageParser.java
  class PageParser (line 15) | public abstract class PageParser<T> {
    method preParse (line 22) | public void preParse(PageRequest pageRequest) {
    method parse (line 33) | public abstract void parse(Document html, Element pageVoElement, T pag...

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/parser/strategy/NonPageParser.java
  class NonPageParser (line 13) | public abstract class NonPageParser extends PageParser {
    method parse (line 15) | @Override
    method parse (line 24) | public abstract void parse(String url, String pageSource);

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/proxy/ProxyMaker.java
  class ProxyMaker (line 12) | public abstract class ProxyMaker {
    method addProxy (line 16) | public ProxyMaker addProxy(Proxy proxy) {
    method addProxyList (line 21) | public ProxyMaker addProxyList(List<Proxy> proxyList) {
    method clear (line 26) | public ProxyMaker clear() {
    method make (line 36) | public abstract Proxy make();

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/proxy/strategy/RandomProxyMaker.java
  class RandomProxyMaker (line 13) | public class RandomProxyMaker extends ProxyMaker {
    method make (line 17) | @Override

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/proxy/strategy/RoundProxyMaker.java
  class RoundProxyMaker (line 8) | public class RoundProxyMaker extends ProxyMaker {
    method make (line 12) | @Override

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/rundata/RunData.java
  class RunData (line 8) | public abstract class RunData {
    method addUrl (line 16) | public abstract boolean addUrl(String link);
    method getUrl (line 23) | public abstract String getUrl();
    method getUrlNum (line 30) | public abstract int getUrlNum();

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/rundata/strategy/LocalRunData.java
  class LocalRunData (line 20) | public class LocalRunData extends RunData {
    method addUrl (line 32) | @Override
    method getUrl (line 56) | @Override
    method getUrlNum (line 70) | @Override

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/thread/CrawlerThread.java
  class CrawlerThread (line 36) | public class CrawlerThread implements Runnable {
    method CrawlerThread (line 42) | public CrawlerThread(XxlCrawler crawler) {
    method toStop (line 47) | public void toStop() {
    method isRunning (line 50) | public boolean isRunning() {
    method run (line 54) | @Override
    method makePageRequest (line 122) | private PageRequest makePageRequest(String link){
    method processNonPage (line 151) | private boolean processNonPage(PageRequest pageRequest){
    method processPage (line 167) | private boolean processPage(PageRequest pageRequest) throws IllegalAcc...

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/util/FieldReflectionUtil.java
  class FieldReflectionUtil (line 17) | public final class FieldReflectionUtil {
    method FieldReflectionUtil (line 19) | private FieldReflectionUtil(){}
    method parseByte (line 21) | public static Byte parseByte(String value) {
    method parseBoolean (line 30) | public static Boolean parseBoolean(String value) {
    method parseInt (line 41) | public static Integer parseInt(String value) {
    method parseShort (line 50) | public static Short parseShort(String value) {
    method parseLong (line 59) | public static Long parseLong(String value) {
    method parseFloat (line 68) | public static Float parseFloat(String value) {
    method parseDouble (line 77) | public static Double parseDouble(String value) {
    method parseDate (line 86) | public static Date parseDate(PageFieldSelect apiRequestParam, String v...
    method parseValue (line 106) | public static Object parseValue(Field field, String value) {

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/util/FileUtil.java
  class FileUtil (line 17) | public class FileUtil {
    method getFileNameByUrl (line 27) | public static String getFileNameByUrl(String url, String contentType) {
    method saveFile (line 42) | public static void saveFile(String fileData, String filePath, String f...
    method downFile (line 61) | public static boolean downFile(String fileUrl, int timeoutMillis, Stri...

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/util/IOUtil.java
  class IOUtil (line 13) | public class IOUtil {
    method toInputStream (line 22) | public static InputStream toInputStream(String str, String encoding) {
    method toString (line 39) | public static String toString(InputStream inputStream, String encoding){

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/util/JsoupUtil.java
  class JsoupUtil (line 23) | public class JsoupUtil {
    method load (line 33) | public static Document load(PageRequest pageRequest) {
    method loadPageSource (line 79) | public static String loadPageSource(PageRequest pageRequest) {
    method parseElement (line 131) | public static String parseElement(Element fieldElement, XxlCrawlerConf...
    method findLinks (line 155) | public static Set<String> findLinks(Document html) {
    method findImages (line 191) | public static Set<String> findImages(Document html) {

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/util/ProxyIpUtil.java
  class ProxyIpUtil (line 18) | public class ProxyIpUtil {
    method checkProxy (line 28) | public static int checkProxy(Proxy proxy, String validSite){
    method checkProxyRepeat (line 61) | public static int checkProxyRepeat(Proxy proxy, String validSite){

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/util/RegexUtil.java
  class RegexUtil (line 10) | public class RegexUtil {
    method matches (line 18) | public static boolean matches(String regex, String str) {
    method isUrl (line 32) | public static boolean isUrl(String str) {

FILE: jun_java_plugins/jun_crawler/src/main/java/com/jun/plugin/crawler/util/UrlUtil.java
  class UrlUtil (line 8) | public class UrlUtil {
    method isUrl (line 13) | public static boolean isUrl(String url) {

FILE: jun_java_plugins/jun_crawler/src/test/java/com/jun/plugin/crawler/test/XxlCrawlerTest.java
  class XxlCrawlerTest (line 16) | public class XxlCrawlerTest {
    class PageVo (line 18) | @PageSelect(cssQuery = "#search-projects-ulist .project")
      method getRepository (line 27) | public String getRepository() {
      method setRepository (line 31) | public void setRepository(String repository) {
      method getDescription (line 35) | public String getDescription() {
      method setDescription (line 39) | public void setDescription(String description) {
      method toString (line 43) | @Override
    method main (line 52) | public static void main(String[] args) {

FILE: jun_java_plugins/jun_crawler/src/test/java/com/jun/plugin/crawler/test/XxlCrawlerTest02.java
  class XxlCrawlerTest02 (line 16) | public class XxlCrawlerTest02 {
    method main (line 18) | public static void main(String[] args) {

FILE: jun_java_plugins/jun_crawler/src/test/java/com/jun/plugin/crawler/test/XxlCrawlerTest03.java
  class XxlCrawlerTest03 (line 22) | public class XxlCrawlerTest03 {
    class PageVo (line 24) | @PageSelect(cssQuery = "body")
      method getImages (line 30) | public List<String> getImages() {
      method setImages (line 34) | public void setImages(List<String> images) {
      method toString (line 38) | @Override
    method main (line 46) | public static void main(String[] args) {

FILE: jun_java_plugins/jun_crawler/src/test/java/com/jun/plugin/crawler/test/XxlCrawlerTest04.java
  class XxlCrawlerTest04 (line 20) | public class XxlCrawlerTest04 {
    method main (line 23) | public static void main(String[] args) {

FILE: jun_java_plugins/jun_crawler/src/test/java/com/jun/plugin/crawler/test/XxlCrawlerTest05.java
  class XxlCrawlerTest05 (line 27) | public class XxlCrawlerTest05 {
    class PageVo (line 30) | @PageSelect(cssQuery = "#list > table > tbody > tr")
      method getIp (line 39) | public String getIp() {
      method setIp (line 43) | public void setIp(String ip) {
      method getPort (line 47) | public int getPort() {
      method setPort (line 51) | public void setPort(int port) {
      method toString (line 55) | @Override
    method main (line 64) | public static void main(String[] args) {

FILE: jun_java_plugins/jun_crawler/src/test/java/com/jun/plugin/crawler/test/XxlCrawlerTest06.java
  class XxlCrawlerTest06 (line 15) | public class XxlCrawlerTest06 {
    method main (line 17) | public static void main(String[] args) {

FILE: jun_java_plugins/jun_crawler/src/test/java/com/jun/plugin/crawler/test/XxlCrawlerTest07.java
  class XxlCrawlerTest07 (line 21) | public class XxlCrawlerTest07 {
    class PageVo (line 24) | @PageSelect(cssQuery = "body")
      method getData (line 30) | public String getData() {
      method setData (line 34) | public void setData(String data) {
    method main (line 39) | public static void main(String[] args) {

FILE: jun_java_plugins/jun_crawler/src/test/java/com/jun/plugin/crawler/test/XxlCrawlerTest08.java
  class XxlCrawlerTest08 (line 21) | public class XxlCrawlerTest08 {
    class PageVo (line 24) | @PageSelect(cssQuery = "body")
      method getData (line 30) | public String getData() {
      method setData (line 34) | public void setData(String data) {
    method main (line 39) | public static void main(String[] args) {

FILE: jun_java_plugins/jun_crawler/src/test/java/com/jun/plugin/crawler/test/XxlCrawlerTest09.java
  class XxlCrawlerTest09 (line 14) | public class XxlCrawlerTest09 {
    method main (line 17) | public static void main(String[] args) {

FILE: jun_java_plugins/jun_crawler/src/test/java/com/jun/plugin/crawler/test/util/FileUtilTest.java
  class FileUtilTest (line 13) | public class FileUtilTest {
    method saveFileTest (line 18) | @Test

FILE: jun_java_plugins/jun_crawler/src/test/java/com/jun/plugin/crawler/test/util/IOUtilTest.java
  class IOUtilTest (line 10) | public class IOUtilTest {
    method main (line 12) | public static void main(String[] args) {

FILE: jun_java_plugins/jun_crawler/src/test/java/com/jun/plugin/crawler/test/util/JsoupUtilTest.java
  class JsoupUtilTest (line 19) | public class JsoupUtilTest {
    method loadParseTest (line 25) | @Test
    method findLinksTest (line 37) | @Test
    method findImagesTest (line 57) | @Test

FILE: jun_java_plugins/jun_crawler/src/test/java/com/jun/plugin/crawler/test/util/ProxyIpUtilTest.java
  class ProxyIpUtilTest (line 13) | public class ProxyIpUtilTest {
    method main (line 15) | public static void main(String[] args) {

FILE: jun_java_plugins/jun_crawler/src/test/java/com/jun/plugin/crawler/test/util/RegexUtilTest.java
  class RegexUtilTest (line 13) | public class RegexUtilTest {
    method matchesTest (line 19) | @Test
    method isUrlTest (line 31) | @Test

FILE: jun_java_plugins/jun_crawler/src/test/java/com/jun/plugin/crawler/test/util/UrlUtilTest.java
  class UrlUtilTest (line 13) | public class UrlUtilTest {
    method isUrlTest (line 18) | @Test

FILE: jun_java_plugins/jun_datasource/src/main/java/com/jun/plugin/datasource/DataSourceC3p0.java
  class DataSourceC3p0 (line 7) | public class DataSourceC3p0 {
    method releaseConnection (line 12) | public static void releaseConnection(Connection connection){
    method getConnection (line 31) | public static Connection getConnection() throws SQLException{
    method getDataSource (line 34) | public static DataSource getDataSource() {

FILE: jun_java_plugins/jun_datasource/src/main/java/com/jun/plugin/datasource/DataSourceDBCP.java
  class DataSourceDBCP (line 21) | public class DataSourceDBCP {
    method DataSourceDBCP (line 40) | private DataSourceDBCP() {
    method getConn (line 49) | public static final Connection getConn() {
    method getDataSource (line 58) | public static final DataSource getDataSource() {
    method closeConn (line 68) | public static void closeConn(Connection conn) {
    method closeAll (line 80) | public static void closeAll(ResultSet rs,Statement stmt,Connection conn){
    method main (line 107) | public static void main(String[] args) {
    method testpool11 (line 143) | public void testpool11() throws Exception {
    method Test3 (line 171) | @SuppressWarnings("stat
Copy disabled (too large) Download .json
Condensed preview — 6149 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (24,515K chars).
[
  {
    "path": "#### wujun个人开发作品集(持续更新)###.md",
    "chars": 28174,
    "preview": "## [俊哥个人技术栈代码库(持续更新)](https://github.com/wujun728)\n---------------------------------------------------------------------"
  },
  {
    "path": ".claude/settings.local.json",
    "chars": 5480,
    "preview": "{\n  \"permissions\": {\n    \"allow\": [\n      \"Bash(mvn compile -q)\",\n      \"Bash(mvn test -Dtest=io.github.wujun728.db.DbAc"
  },
  {
    "path": ".gitignore",
    "chars": 435,
    "preview": "*.class\r\n.DS_Store\r\napplication.pid\r\n\r\n# Mobile Tools for Java (J2ME)\r\n.mtj.tmp/\r\n\r\n# Package Files #\r\n*.jar\r\n*.war\r\n*.e"
  },
  {
    "path": "README.md",
    "chars": 27409,
    "preview": "### `jun_java_plugin` 项目  \r\n\r\n### 项目说明\r\njun_java_plugin 整合Java企业级各种开发组件、开箱即用、不写重复代码,包含基础Java基础开发组件,Spring企业级开发组,SpringBo"
  },
  {
    "path": "doc/#### wujun个人开发作品集(持续更新)###.md",
    "chars": 27955,
    "preview": "## [俊哥个人技术栈代码库(持续更新)](https://github.com/wujun728)\n---------------------------------------------------------------------"
  },
  {
    "path": "doc/Devops/CentOS使用yum安装jdk.md",
    "chars": 1046,
    "preview": "# [CentOS使用yum安装jdk](https://www.cnblogs.com/zqyanywn/p/10812870.html)\n\n1、查看系统版本命令\n\n```\ncat /etc/issue\n2、查看yum包含的jdk版本\ny"
  },
  {
    "path": "doc/Devops/Centos下如何安装MySQL5.7.md",
    "chars": 9402,
    "preview": "## [Centos下如何安装MySQL5.7](https://www.cnblogs.com/wherehappens/articles/15055614.html)\n\n\n\n####  \n\n1、查看rpm包\n\n`rpm-qa|grep "
  },
  {
    "path": "doc/Devops/Docker cp 命令.md",
    "chars": 445,
    "preview": "Docker cp 命令\n Docker 命令大全Docker 命令大全\n\ndocker cp :用于容器与主机之间的数据拷贝。\n\n语法\ndocker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-\n"
  },
  {
    "path": "doc/Devops/Dockerfile",
    "chars": 274,
    "preview": "# 基础镜像\nFROM openjdk:8-jdk-alpine\n# author\nMAINTAINER wenbin\n# 复制jar文件到路径\nADD manager.jar manager.jar\n# 时间\nRUN ln -sf /us"
  },
  {
    "path": "doc/Devops/docker 安装 mysql5.7.md",
    "chars": 751,
    "preview": "docker 安装 mysql5.7\n\n\n1.安装mysql5.7 docker镜像\n拉取官方mysql5.7镜像 \n\ndocker pull mysql:5.7\n\n\n查看镜像库\n\ndocker images\n\n\n2.创建mysql容器\n在"
  },
  {
    "path": "doc/Devops/docker 搭建Mysql集群.md",
    "chars": 7965,
    "preview": "# [docker 搭建Mysql集群](https://www.cnblogs.com/zhenghongxin/p/9228101.html)\n\n**docker基本指令:**\n\n更新软件包\n\n```\nyum -y update\n```"
  },
  {
    "path": "doc/Devops/docker.md",
    "chars": 752,
    "preview": "\n------MySQL \n\n1.拉取镜像。\n\ndocker pull mysql:8\n\n2.运行镜像,name、端口和密码可自行修改。\n\ndocker run -p 3307:3306 --name mysql8 -e MYSQL_ROO"
  },
  {
    "path": "doc/Devops/docker安装Redis并设置密码.md",
    "chars": 699,
    "preview": "# [docker安装Redis并设置密码](https://www.cnblogs.com/zhangzimo/p/12753563.html)\n\n## 1.搜索镜像\n\n```\ndocker search redis\n```\n\n## 2."
  },
  {
    "path": "doc/Devops/部署文档",
    "chars": 544,
    "preview": "1. 使用IDE导入本项目,IDE需要安装lombok插件\n2. 下载redis 启动redis\n3. 创建数据库, 导入***.sql\n4. 配置application-dev.yml中的redis以及数据库连接\n5. 运行项目\n   1"
  },
  {
    "path": "doc/部署文档",
    "chars": 1070,
    "preview": "1. 使用IDE导入本项目,IDE需要安装lombok插件\n2. 下载redis 启动redis\n3. 创建数据库, 导入***.sql\n4. 配置application-dev.yml中的redis以及数据库连接\n5. 运行项目\n   1"
  },
  {
    "path": "doc/重置master分支.md",
    "chars": 2349,
    "preview": "重置master分支:\ngit checkout --orphan latest_branch\ngit add -A\ngit commit -am \"commit message\"\ngit branch -D master\ngit bran"
  },
  {
    "path": "java_project_template/jun_api_service_admin/Dockerfile",
    "chars": 267,
    "preview": "# 基础镜像\nFROM openjdk:8-jre\n# author\nMAINTAINER wenbin\n# 复制jar文件到路径\nADD manager.jar manager.jar\n# 时间\nRUN ln -sf /usr/share"
  },
  {
    "path": "java_project_template/jun_api_service_admin/pom.xml",
    "chars": 12353,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
  },
  {
    "path": "java_project_template/jun_api_service_admin/src/main/java/com/jun/plugin/ApiServiceApplication.java",
    "chars": 2443,
    "preview": "package com.jun.plugin;\n\nimport com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;\nimport lombok."
  },
  {
    "path": "java_project_template/jun_api_service_admin/src/main/resources/application-dev.yml",
    "chars": 2283,
    "preview": "# 开发环境配置\nspring:\n  thymeleaf:\n    cache: false\n  datasource:\n    type: com.alibaba.druid.pool.DruidDataSource\n    url: j"
  },
  {
    "path": "java_project_template/jun_api_service_admin/src/main/resources/application.yml",
    "chars": 1136,
    "preview": "# 端口\nserver:\n  port: 8088\n\nspring:\n  profiles:\n    active: dev\n  mvc:\n    throw-exception-if-no-handler-found: true\n  re"
  },
  {
    "path": "java_project_template/jun_api_service_admin/src/main/resources/logback-spring.xml",
    "chars": 2059,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<configuration>\n    <!-- 这里面定义了 CONSOLE_LOG_PATTERN, FILE_LOG_PATTERN 等日志格式, 还定义了"
  },
  {
    "path": "java_project_template/jun_api_service_admin/src/main/resources/templates/biztest/list.html",
    "chars": 10479,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\" xmlns:shiro=\"http://www.pollix.at/thymeleaf/shiro\"\n      xmlns:th=\"http://www.thymeleaf."
  },
  {
    "path": "java_project_template/jun_api_service_demo/.gitignore",
    "chars": 217,
    "preview": "target/\n\n### STS ###\n.apt_generated\n.classpath\n.factorypath\n.project\n.settings\n.springBeans\n\n### IntelliJ IDEA ###\n.idea"
  },
  {
    "path": "java_project_template/jun_api_service_demo/README.md",
    "chars": 1710,
    "preview": "## 简介\nSpring Boot API 是一个基于Spring Boot & MyBatis plus的种子项目,用于快速构建中小型API项目,特点稳定、简单、快速,摆脱那些重复劳动\n\n## 特征&提供\n- 统一响应结果封装及生成工具\n"
  },
  {
    "path": "java_project_template/jun_api_service_demo/pom.xml",
    "chars": 5173,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/java/com/company/project/Application.java",
    "chars": 1752,
    "preview": "package com.company.project;\n\nimport com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;\nimport or"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/java/com/company/project/configurer/LoginInterceptor.java",
    "chars": 2459,
    "preview": "package com.company.project.configurer;\n\n\nimport com.alibaba.fastjson.JSON;\nimport com.company.project.core.Result;\nimpo"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/java/com/company/project/configurer/MyBatisPlusConfig.java",
    "chars": 588,
    "preview": "package com.company.project.configurer;\n\nimport com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;\nimport"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/java/com/company/project/configurer/SwaggerConfiguration.java",
    "chars": 1561,
    "preview": "package com.company.project.configurer;\n\nimport com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;\nimport org"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/java/com/company/project/configurer/WebMvcConfigurer.java",
    "chars": 7118,
    "preview": "package com.company.project.configurer;\n\nimport java.io.IOException;\nimport java.nio.charset.Charset;\nimport java.util.A"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/java/com/company/project/core/ApplicationContextUtil.java",
    "chars": 963,
    "preview": "package com.company.project.core;\n \nimport org.springframework.beans.BeansException;\nimport org.springframework.context."
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/java/com/company/project/core/Result.java",
    "chars": 971,
    "preview": "package com.company.project.core;\n\nimport com.alibaba.fastjson.JSON;\n\n/**\n * 统一API响应结果封装\n */\npublic class Result<T> {\n  "
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/java/com/company/project/core/ResultCode.java",
    "chars": 405,
    "preview": "package com.company.project.core;\n\n/**\n * 响应码枚举,参考HTTP状态码的语义\n */\npublic enum ResultCode {\n    SUCCESS(200),//成功\n    FAIL"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/java/com/company/project/core/ResultGenerator.java",
    "chars": 836,
    "preview": "package com.company.project.core;\n\n/**\n * 响应结果生成工具\n */\npublic class ResultGenerator {\n    private static final String DE"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/java/com/company/project/core/ServiceException.java",
    "chars": 381,
    "preview": "package com.company.project.core;\n\n/**\n * 服务(业务)异常如“ 账号或密码错误 ”,该异常只做INFO级别的日志记录 @see WebMvcConfigurer\n */\npublic class S"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/java/com/company/project/dao/UserMapper.java",
    "chars": 268,
    "preview": "package com.company.project.dao;\n\nimport com.company.project.model.User;\nimport com.baomidou.mybatisplus.core.mapper.Bas"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/java/com/company/project/model/User.java",
    "chars": 1479,
    "preview": "package com.company.project.model;\n\nimport com.baomidou.mybatisplus.annotation.IdType;\nimport com.baomidou.mybatisplus.a"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/java/com/company/project/service/IUserService.java",
    "chars": 270,
    "preview": "package com.company.project.service;\n\nimport com.company.project.model.User;\nimport com.baomidou.mybatisplus.extension.s"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/java/com/company/project/service/impl/UserServiceImpl.java",
    "chars": 471,
    "preview": "package com.company.project.service.impl;\n\nimport com.company.project.model.User;\nimport com.company.project.dao.UserMap"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/java/com/company/project/utils/JwtUtils.java",
    "chars": 1863,
    "preview": "package com.company.project.utils;\n\nimport com.company.project.model.User;\nimport io.jsonwebtoken.Claims;\nimport io.json"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/java/com/company/project/utils/MD5Utils.java",
    "chars": 1226,
    "preview": "package com.company.project.utils;\n\nimport org.apache.commons.codec.digest.DigestUtils;\nimport org.apache.commons.lang3."
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/java/com/company/project/web/UserController.java",
    "chars": 3585,
    "preview": "package com.company.project.web;\n\nimport com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;\nimport com.baomido"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/resources/application-dev.yml",
    "chars": 1150,
    "preview": "# 开发环境配置\nspring:\n  datasource:\n    dynamic:\n      primary: master #设置默认的数据源或者数据源组,默认值即为master\n      datasource:\n        "
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/resources/application-prod.yml",
    "chars": 51,
    "preview": "# 生产环境配置\nknife4j:\n  production: true #生成环境禁用查看接口文档\n"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/resources/application-test.yml",
    "chars": 9,
    "preview": "# 测试环境配置\n"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/resources/application.yml",
    "chars": 256,
    "preview": "spring:\n  profiles:\n    active: dev\n  mvc:\n    throw-exception-if-no-handler-found: true\n  resources:\n    add-mappings: "
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/resources/banner.txt",
    "chars": 1510,
    "preview": "////////////////////////////////////////////////////////////////////\n//                          _ooOoo_                "
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/main/resources/mapper/UserMapper.xml",
    "chars": 1202,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/test/java/CodeGenerator.java",
    "chars": 4127,
    "preview": "import com.baomidou.mybatisplus.core.toolkit.StringPool;\nimport com.baomidou.mybatisplus.generator.AutoGenerator;\nimport"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/test/java/com/company/project/Tester.java",
    "chars": 369,
    "preview": "package com.company.project;\n\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.springframework.boot.te"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/test/resources/templates/controller.java.ftl",
    "chars": 3284,
    "preview": "package ${package.Controller};\n\nimport com.baomidou.mybatisplus.extension.plugins.pagination.Page;\nimport com.company.pr"
  },
  {
    "path": "java_project_template/jun_api_service_demo/src/test/resources/user.sql",
    "chars": 2621,
    "preview": "/*\n Navicat Premium Data Transfer\n\n Source Server         : localhost\n Source Server Type    : MySQL\n Source Server Vers"
  },
  {
    "path": "java_project_template/jun_api_service_main/doc/user.sql",
    "chars": 2338,
    "preview": "SET NAMES utf8mb4;\nSET FOREIGN_KEY_CHECKS = 0;\n\n-- ----------------------------\n-- Table structure for user\n-- ---------"
  },
  {
    "path": "java_project_template/jun_api_service_main/pom.xml",
    "chars": 5160,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/ApiServiceApplication.java",
    "chars": 3244,
    "preview": "package com.jun.plugin.system;\n\nimport java.net.InetAddress;\nimport java.net.UnknownHostException;\n\nimport org.mybatis.s"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/configurer/LoginInterceptor.java",
    "chars": 2395,
    "preview": "package com.jun.plugin.system.configurer;\n\n\nimport com.alibaba.fastjson.JSON;\nimport com.alibaba.fastjson.JSONObject;\nim"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/configurer/WebMvcConfigurer.java",
    "chars": 6902,
    "preview": "package com.jun.plugin.system.configurer;\n\nimport java.io.IOException;\nimport java.nio.charset.Charset;\nimport java.util"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/core/Result.java",
    "chars": 973,
    "preview": "package com.jun.plugin.system.core;\n\nimport com.alibaba.fastjson.JSON;\n\n/**\n * 统一API响应结果封装\n */\npublic class Result<T> {\n"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/core/ResultCode.java",
    "chars": 407,
    "preview": "package com.jun.plugin.system.core;\n\n/**\n * 响应码枚举,参考HTTP状态码的语义\n */\npublic enum ResultCode {\n    SUCCESS(200),//成功\n    FA"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/core/ResultGenerator.java",
    "chars": 838,
    "preview": "package com.jun.plugin.system.core;\n\n/**\n * 响应结果生成工具\n */\npublic class ResultGenerator {\n    private static final String "
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/core/ServiceException.java",
    "chars": 383,
    "preview": "package com.jun.plugin.system.core;\n\n/**\n * 服务(业务)异常如“ 账号或密码错误 ”,该异常只做INFO级别的日志记录 @see WebMvcConfigurer\n */\npublic class"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/mapper/UserMapper.java",
    "chars": 275,
    "preview": "package com.jun.plugin.system.mapper;\n\nimport com.jun.plugin.system.model.User;\nimport com.baomidou.mybatisplus.core.map"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/model/User.java",
    "chars": 1334,
    "preview": "package com.jun.plugin.system.model;\n\nimport com.baomidou.mybatisplus.annotation.*;\n\nimport java.io.Serializable;\nimport"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/service/HttpSessionService.java",
    "chars": 3870,
    "preview": "package com.jun.plugin.system.service;\n\nimport com.alibaba.fastjson.JSON;\nimport com.alibaba.fastjson.JSONObject;\nimport"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/service/IUserService.java",
    "chars": 358,
    "preview": "package com.jun.plugin.system.service;\n\nimport com.jun.plugin.system.core.Result;\nimport com.jun.plugin.system.model.Use"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/service/RedisService.java",
    "chars": 1568,
    "preview": "package com.jun.plugin.system.service;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.spring"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/service/impl/UserServiceImpl.java",
    "chars": 2702,
    "preview": "package com.jun.plugin.system.service.impl;\n\nimport com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;\nimport "
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/utils/ImageCodeUtil.java",
    "chars": 3577,
    "preview": "package com.jun.plugin.system.utils;\n\nimport lombok.extern.slf4j.Slf4j;\n\nimport javax.imageio.ImageIO;\nimport javax.serv"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/utils/MD5Utils.java",
    "chars": 1228,
    "preview": "package com.jun.plugin.system.utils;\n\nimport org.apache.commons.codec.digest.DigestUtils;\nimport org.apache.commons.lang"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/java/com/jun/plugin/system/web/UserController.java",
    "chars": 6939,
    "preview": "package com.jun.plugin.system.web;\n\nimport com.alibaba.fastjson.JSONObject;\nimport com.baomidou.mybatisplus.core.conditi"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/resources/application-sqlite.yml",
    "chars": 353,
    "preview": "# 数据源配置\nspring:\n  datasource:\n    type: com.alibaba.druid.pool.DruidDataSource\n    driverClassName: org.sqlite.JDBC\n    "
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/resources/application-test.yml",
    "chars": 2516,
    "preview": "spring:\n  redis:\n    host: localhost # Redis服务器地址\n    database: 0 # Redis数据库索引(默认为0)\n    port: 6379 # Redis服务器连接端口\n    p"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/main/resources/application.yml",
    "chars": 1290,
    "preview": "# 端口\nserver:\n  port: 9080\n  http2:\n    enabled: true\n\nspring:\n  profiles:\n    active: test\n  mvc:\n    throw-exception-if"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/test/java/CodeGenerator.java",
    "chars": 4124,
    "preview": "import com.baomidou.mybatisplus.core.toolkit.StringPool;\nimport com.baomidou.mybatisplus.generator.AutoGenerator;\nimport"
  },
  {
    "path": "java_project_template/jun_api_service_main/src/test/java/com/jun/plugin/system/Tester.java",
    "chars": 440,
    "preview": "package com.jun.plugin.system;\n\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.springframework.boot."
  },
  {
    "path": "java_project_template/jun_api_service_main/src/test/resources/templates/controller.java.ftl",
    "chars": 3288,
    "preview": "package ${package.Controller};\n\nimport com.baomidou.mybatisplus.extension.plugins.pagination.Page;\nimport core.com.jun.p"
  },
  {
    "path": "java_project_template/jun_api_service_simple/pom.xml",
    "chars": 5061,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n\txmlns:xsi=\"http://www.w3.org/"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/QixingApplication.java",
    "chars": 2720,
    "preview": "package com.jun.plugin.project;\n\nimport java.net.Inet4Address;\nimport java.net.InetAddress;\n\nimport com.alibaba.druid.sp"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/GlobalRequestBodyAdvice2.java",
    "chars": 2932,
    "preview": "package com.jun.plugin.project.config;\n \nimport org.springframework.core.MethodParameter;\nimport org.springframework.htt"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/MetaObjectHandlerConfig2.java",
    "chars": 2732,
    "preview": "package com.jun.plugin.project.config;\n\nimport com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;\n//import com.ju"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/MyBatisPlusConfig2.java",
    "chars": 548,
    "preview": "package com.jun.plugin.project.config;\n\nimport com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerIntercept"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/RedisCacheConfig2.java",
    "chars": 4522,
    "preview": "package com.jun.plugin.project.config;\n\nimport java.time.Duration;\nimport java.util.HashMap;\nimport java.util.Map;\n\nimpo"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/ResourcesConfig2.java",
    "chars": 3261,
    "preview": "package com.jun.plugin.project.config;\n\nimport org.springframework.context.annotation.Configuration;\nimport org.springfr"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/SwaggerConfiguration2.java",
    "chars": 1766,
    "preview": "package com.jun.plugin.project.config;\n\nimport com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;\nimport com."
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/ThymeleafConfigration2.java",
    "chars": 3446,
    "preview": "package com.jun.plugin.project.config;\n\nimport java.io.File;\nimport java.io.FileNotFoundException;\n\nimport org.springfra"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/WebMvcConfig.java",
    "chars": 3599,
    "preview": "package com.jun.plugin.project.config;\n\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.c"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/interceptor/MyInterceptor2.java",
    "chars": 1462,
    "preview": "package com.jun.plugin.project.config.interceptor;\n\nimport javax.servlet.http.HttpServletRequest;\nimport javax.servlet.h"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/java/com/jun/plugin/project/config/interceptor/MybatisExecutor2.java",
    "chars": 2071,
    "preview": "package com.jun.plugin.project.config.interceptor;\n\n//import com.fen.dou.entity.BaseEntity;\n//import com.fen.dou.entity."
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/application-dev.yml",
    "chars": 1531,
    "preview": "# 开发环境配置\nspring:\n  thymeleaf:\n    cache: false\n  datasource:\n      url: jdbc:mysql://localhost:3306/db_test?useUnicode=t"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/application.yml",
    "chars": 5317,
    "preview": "# 端口\nserver:\n  port: 9081\n  compression:\n    enabled: true\n    min-response-size: 1KB\n    mime-types: application/json,a"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/config.properties",
    "chars": 1354,
    "preview": "################################################# step1 for modify datasource\njdbc.url=jdbc:mysql://localhost:3306/code_"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/files/tree.sql",
    "chars": 1691,
    "preview": "--  省市区域字符串连接拼接测试\ncreate  table    t_tree(id  varchar(3)  ,  pid  varchar(3)  ,  name  varchar(10));\ninsert  into    t_t"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/logback-spring.xml",
    "chars": 2051,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<configuration>\n    <!-- 这里面定义了 CONSOLE_LOG_PATTERN, FILE_LOG_PATTERN 等日志格式, 还定义了"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/qiniu.properties",
    "chars": 180,
    "preview": "bucketName=qixing-files\ndomain=http://qiniu.hbqxcpa.cn\nprefix=upload\ntype=1\nACCESS_KEY=ts0n9OF16ekFkDkZTTlpmyPI-tP3HKQDy"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/beetlsql/beetlcontroller.ftl",
    "chars": 2635,
    "preview": "<#if isAutoImport?exists && isAutoImport==true>\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport or"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/beetlsql/beetlentity.ftl",
    "chars": 896,
    "preview": "<#if isAutoImport?exists && isAutoImport==true>\nimport java.io.Serializable;\nimport lombok.Data;\nimport java.util.Date;\n"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/beetlsql/beetlmd.ftl",
    "chars": 801,
    "preview": "sample\n===\n\nselect #use(\"cols\")# from ${classInfo.tableName} where #use(\"condition\")#\n\ncols\n===\n<#if classInfo.fieldList"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/common-mapper/tkentity.ftl",
    "chars": 1822,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.entity;</#if>\n\n<#if isAutoImport?exists && isAut"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/common-mapper/tkmapper.ftl",
    "chars": 497,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.mapper;</#if>\n<#if isAutoImport?exists && isAuto"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/controller.ftl",
    "chars": 2137,
    "preview": "package ${packageController};\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.anno"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/dao.ftl",
    "chars": 1153,
    "preview": "package ${packageDao};\n\nimport org.apache.ibatis.annotations.Param;\nimport org.springframework.stereotype.Component;\nimp"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/jdbc-template/jtdao.ftl",
    "chars": 533,
    "preview": "<#if isAutoImport?exists && isAutoImport==true>\nimport java.util.List;\n</#if>\n/**\n * @description ${classInfo.classComme"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/jdbc-template/jtdaoimpl.ftl",
    "chars": 3695,
    "preview": "<#if isAutoImport?exists && isAutoImport==true>\nimport org.springframework.beans.factory.annotation.Autowired;\nimport or"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/jpa/entity.ftl",
    "chars": 1928,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.entity;</#if>\n\n<#if isAutoImport?exists && isAut"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/jpa/jpacontroller.ftl",
    "chars": 3082,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.controller;</#if>\n<#if isAutoImport?exists && is"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/jpa/repository.ftl",
    "chars": 854,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.mapper;</#if>\n<#if isAutoImport?exists && isAuto"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/model.ftl",
    "chars": 1224,
    "preview": "package ${packageModel};\n\n<#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0>\n    <#list classInfo.fieldLi"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis/controller.ftl",
    "chars": 2326,
    "preview": "<#if isAutoImport?exists && isAutoImport==true>\nimport org.springframework.stereotype.Controller;\nimport org.springframe"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis/mapper.ftl",
    "chars": 1330,
    "preview": "<#if isAutoImport?exists && isAutoImport==true>\nimport org.apache.ibatis.annotations.Param;\nimport org.apache.ibatis.ann"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis/mapper2.ftl",
    "chars": 2556,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.mapper;</#if>\n<#if isAutoImport?exists && isAuto"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis/model.ftl",
    "chars": 1102,
    "preview": "<#if isAutoImport?exists && isAutoImport==true>\nimport java.io.Serializable;\nimport java.util.Date;\nimport java.util.Lis"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis/mybatis.ftl",
    "chars": 3823,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\"\n        \"http://myba"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis/service.ftl",
    "chars": 695,
    "preview": "<#if isAutoImport?exists && isAutoImport==true>\nimport java.util.Map;\n</#if>\n/**\n * @description ${classInfo.classCommen"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis/service_impl.ftl",
    "chars": 1893,
    "preview": "<#if isAutoImport?exists && isAutoImport==true>\nimport org.springframework.stereotype.Service;\nimport javax.annotation.R"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus/pluscontroller.ftl",
    "chars": 7346,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.controller;</#if>\n<#if isAutoImport?exists && is"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus/plusentity.ftl",
    "chars": 1678,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.entity;</#if>\n\n<#if isAutoImport?exists && isAut"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus/plusmapper.ftl",
    "chars": 1528,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.mapper;</#if>\n<#if isAutoImport?exists && isAuto"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus/plusservice.ftl",
    "chars": 469,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.service;</#if>\n<#if isAutoImport?exists && isAut"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-single/controller.java.ftl",
    "chars": 10829,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.controller;</#if>\n<#if isAutoImport?exists && is"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-single/dto.java.ftl",
    "chars": 1615,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.dto;</#if>\n\n<#if isAutoImport?exists && isAutoIm"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-single/edit.html.ftl",
    "chars": 2377,
    "preview": "<!DOCTYPE html>\n<html>\n<body>\n<div class=\"layui-form layuimini-form\">\n    <input type=\"hidden\" name=\"${classInfo.classNa"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-single/entity.java.ftl",
    "chars": 2063,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.entity;</#if>\n\n<#if isAutoImport?exists && isAut"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-single/list.html.ftl",
    "chars": 11991,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <meta charset=\"utf-8\"/>\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrom"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-single/list.html.v1.ftl",
    "chars": 9339,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <meta charset=\"UTF-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome="
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-single/list.html.vm.ftl",
    "chars": 21204,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\" xmlns:shiro=\"http://www.pollix.at/thymeleaf/shiro\"\n      xmlns:th=\"http://www.thymeleaf."
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-single/mapper.java.ftl",
    "chars": 1623,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.mapper;</#if>\n<#if isAutoImport?exists && isAuto"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-single/menu.sql.ftl",
    "chars": 1081,
    "preview": "-- 菜单SQL\nINSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)\nVALUES ('1', '${class"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-single/service.impl.java.ftl",
    "chars": 951,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.service.impl;</#if>\n<#if isAutoImport?exists && "
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-single/service.java.ftl",
    "chars": 525,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.service;</#if>\n<#if isAutoImport?exists && isAut"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-single/vo.java.ftl",
    "chars": 2213,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.vo;</#if>\n\n<#if isAutoImport?exists && isAutoImp"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-v2/plus-controller.ftl",
    "chars": 10895,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.controller;</#if>\n<#if isAutoImport?exists && is"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-v2/plus-dto.ftl",
    "chars": 1613,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.dto;</#if>\n\n<#if isAutoImport?exists && isAutoIm"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-v2/plus-entity.ftl",
    "chars": 2060,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.entity;</#if>\n\n<#if isAutoImport?exists && isAut"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-v2/plus-mapper.ftl",
    "chars": 1623,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.mapper;</#if>\n<#if isAutoImport?exists && isAuto"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-v2/plus-service.ftl",
    "chars": 525,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.service;</#if>\n<#if isAutoImport?exists && isAut"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-v2/plus-serviceimpl.ftl",
    "chars": 951,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.service.impl;</#if>\n<#if isAutoImport?exists && "
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-v2/plus-vo.ftl",
    "chars": 2206,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.vo;</#if>\n\n<#if isAutoImport?exists && isAutoImp"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis-plus-v2/pluscontroller.ftl",
    "chars": 7604,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.controller;</#if>\n<#if isAutoImport?exists && is"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/mybatis.ftl",
    "chars": 3079,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\"\n        \"http://myba"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/renren-fast/menu-sql.ftl",
    "chars": 1081,
    "preview": "-- 菜单SQL\nINSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)\nVALUES ('1', '${class"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/renren-fast/rr-controller.ftl",
    "chars": 2950,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.controller;</#if>\n<#if isAutoImport?exists && is"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/renren-fast/rr-dao.ftl",
    "chars": 520,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.mapper;</#if>\n<#if isAutoImport?exists && isAuto"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/renren-fast/rr-daoxml.ftl",
    "chars": 631,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/renren-fast/rr-entity.ftl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/renren-fast/rr-service.ftl",
    "chars": 1112,
    "preview": "<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.service;</#if>\n<#if isAutoImport?exists && isAut"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/renren-fast/vue-edit.ftl",
    "chars": 4648,
    "preview": "<template>\n    <el-dialog\n            :title=\"!dataForm.${classInfo.className?uncap_first}Id ? '新增' : '修改'\"\n            "
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/renren-fast/vue-list.ftl",
    "chars": 6437,
    "preview": "<template>\n    <div class=\"mod-config\">\n        <el-form :inline=\"true\" :model=\"dataForm\" @keyup.enter.native=\"getDataLi"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/service.ftl",
    "chars": 783,
    "preview": "package ${packageService};\nimport java.util.Map;\n\nimport ${packageModel}.${classInfo.className};\nimport com.jun.plugin.c"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/service_impl.ftl",
    "chars": 2139,
    "preview": "package ${packageServiceImpl};\n\nimport org.springframework.stereotype.Service;\n\nimport com.jun.plugin.biz.dao.${classInf"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/ui/bootstrap-ui.ftl",
    "chars": 583,
    "preview": "<form action=\"/${classInfo.className?uncap_first}/save\">\n\n    <#if classInfo.fieldList?exists && classInfo.fieldList?siz"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/ui/element-ui.ftl",
    "chars": 891,
    "preview": "<el-form :inline=\"true\" :model=\"submitData\" class=\"demo-form-inline\" :rules=\"rules\" ref=\"ruleForm\">\n    <el-card class=\""
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/ui/layui-edit.ftl",
    "chars": 2377,
    "preview": "<!DOCTYPE html>\n<html>\n<body>\n<div class=\"layui-form layuimini-form\">\n    <input type=\"hidden\" name=\"${classInfo.classNa"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/ui/layui-list.ftl",
    "chars": 8975,
    "preview": "<!DOCTYPE html>\n<html>\n<body>\n<div class=\"layuimini-container\">\n    <div class=\"layuimini-main\">\n\n        <fieldset clas"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/ui/swagger-ui.ftl",
    "chars": 496,
    "preview": "@ApiOperation(value = \"${classInfo.classComment}\", notes = \"${classInfo.classComment}\")\n    @ApiImplicitParams({\n       "
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/util/beanutil.ftl",
    "chars": 1506,
    "preview": "/**\n* ${classInfo.classComment}对象Get Set\n* @author ${authorName} ${.now?string('yyyy-MM-dd')}\n*/\n\n<#if classInfo.fieldLi"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/util/json.ftl",
    "chars": 327,
    "preview": "<#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0>\n{\n<#list classInfo.fieldList as fieldItem>\n \"${fieldIt"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/util/sql.ftl",
    "chars": 2413,
    "preview": "\n<#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0>\n #SQL横向select\n    SELECT <#list classInfo.fieldList a"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/util/swagger-yml.ftl",
    "chars": 342,
    "preview": "\n<#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0>\n${classInfo.className}:\n  type: \"object\"\n  properties"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/main/resources/templates/code-generator/util/xml.ftl",
    "chars": 347,
    "preview": "<!--\n ${classInfo.classComment}对象Get Set\n @author ${authorName} ${.now?string('yyyy-MM-dd')}\n-->\n<#if classInfo.fieldLis"
  },
  {
    "path": "java_project_template/jun_api_service_simple/src/test/java/CodeGenerator.java",
    "chars": 2084,
    "preview": "import com.google.common.collect.Lists;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\nimport java.util.Array"
  },
  {
    "path": "java_project_template/maven_javaproject/pom.xml",
    "chars": 2333,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "java_project_template/maven_javaproject/src/main/java/com/jun/plugin/teamplate/App.java",
    "chars": 177,
    "preview": "package com.jun.plugin.teamplate;\n\n/**\n * Hello world!\n *\n */\npublic class App {\n    public static void main( String[] a"
  },
  {
    "path": "java_project_template/maven_javaproject/src/main/resources/applicationContext.xml",
    "chars": 339,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n       xmlns:xsi=\"http"
  },
  {
    "path": "java_project_template/maven_javaproject/src/test/java/com/jun/plugin/teamplate/AppTest.java",
    "chars": 199,
    "preview": "package com.jun.plugin.teamplate;\n\nimport org.testng.Assert;\nimport org.testng.annotations.Test;\n\n@Test\npublic class App"
  },
  {
    "path": "java_project_template/pom.xml",
    "chars": 2064,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n\txmlns:xsi=\"http://www.w3.org/"
  },
  {
    "path": "java_project_template/springboot-api-jwt/.gitignore",
    "chars": 217,
    "preview": "target/\n\n### STS ###\n.apt_generated\n.classpath\n.factorypath\n.project\n.settings\n.springBeans\n\n### IntelliJ IDEA ###\n.idea"
  },
  {
    "path": "java_project_template/springboot-api-jwt/README.md",
    "chars": 1710,
    "preview": "## 简介\nSpring Boot API 是一个基于Spring Boot & MyBatis plus的种子项目,用于快速构建中小型API项目,特点稳定、简单、快速,摆脱那些重复劳动\n\n## 特征&提供\n- 统一响应结果封装及生成工具\n"
  },
  {
    "path": "java_project_template/springboot-api-jwt/pom.xml",
    "chars": 5169,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/java/com/company/project/Application.java",
    "chars": 1752,
    "preview": "package com.company.project;\n\nimport com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;\nimport or"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/java/com/company/project/configurer/LoginInterceptor.java",
    "chars": 2459,
    "preview": "package com.company.project.configurer;\n\n\nimport com.alibaba.fastjson.JSON;\nimport com.company.project.core.Result;\nimpo"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/java/com/company/project/configurer/MyBatisPlusConfig.java",
    "chars": 588,
    "preview": "package com.company.project.configurer;\n\nimport com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;\nimport"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/java/com/company/project/configurer/SwaggerConfiguration.java",
    "chars": 1561,
    "preview": "package com.company.project.configurer;\n\nimport com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;\nimport org"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/java/com/company/project/configurer/WebMvcConfigurer.java",
    "chars": 7118,
    "preview": "package com.company.project.configurer;\n\nimport java.io.IOException;\nimport java.nio.charset.Charset;\nimport java.util.A"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/java/com/company/project/core/ApplicationContextUtil.java",
    "chars": 963,
    "preview": "package com.company.project.core;\n \nimport org.springframework.beans.BeansException;\nimport org.springframework.context."
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/java/com/company/project/core/Result.java",
    "chars": 971,
    "preview": "package com.company.project.core;\n\nimport com.alibaba.fastjson.JSON;\n\n/**\n * 统一API响应结果封装\n */\npublic class Result<T> {\n  "
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/java/com/company/project/core/ResultCode.java",
    "chars": 405,
    "preview": "package com.company.project.core;\n\n/**\n * 响应码枚举,参考HTTP状态码的语义\n */\npublic enum ResultCode {\n    SUCCESS(200),//成功\n    FAIL"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/java/com/company/project/core/ResultGenerator.java",
    "chars": 836,
    "preview": "package com.company.project.core;\n\n/**\n * 响应结果生成工具\n */\npublic class ResultGenerator {\n    private static final String DE"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/java/com/company/project/core/ServiceException.java",
    "chars": 381,
    "preview": "package com.company.project.core;\n\n/**\n * 服务(业务)异常如“ 账号或密码错误 ”,该异常只做INFO级别的日志记录 @see WebMvcConfigurer\n */\npublic class S"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/java/com/company/project/dao/UserMapper.java",
    "chars": 268,
    "preview": "package com.company.project.dao;\n\nimport com.company.project.model.User;\nimport com.baomidou.mybatisplus.core.mapper.Bas"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/java/com/company/project/model/User.java",
    "chars": 1479,
    "preview": "package com.company.project.model;\n\nimport com.baomidou.mybatisplus.annotation.IdType;\nimport com.baomidou.mybatisplus.a"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/java/com/company/project/service/IUserService.java",
    "chars": 270,
    "preview": "package com.company.project.service;\n\nimport com.company.project.model.User;\nimport com.baomidou.mybatisplus.extension.s"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/java/com/company/project/service/impl/UserServiceImpl.java",
    "chars": 471,
    "preview": "package com.company.project.service.impl;\n\nimport com.company.project.model.User;\nimport com.company.project.dao.UserMap"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/java/com/company/project/utils/JwtUtils.java",
    "chars": 1863,
    "preview": "package com.company.project.utils;\n\nimport com.company.project.model.User;\nimport io.jsonwebtoken.Claims;\nimport io.json"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/java/com/company/project/utils/MD5Utils.java",
    "chars": 1226,
    "preview": "package com.company.project.utils;\n\nimport org.apache.commons.codec.digest.DigestUtils;\nimport org.apache.commons.lang3."
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/java/com/company/project/web/UserController.java",
    "chars": 3585,
    "preview": "package com.company.project.web;\n\nimport com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;\nimport com.baomido"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/resources/application-dev.yml",
    "chars": 1160,
    "preview": "# 开发环境配置\nspring:\n  datasource:\n    dynamic:\n      primary: master #设置默认的数据源或者数据源组,默认值即为master\n      datasource:\n        "
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/resources/application-prod.yml",
    "chars": 51,
    "preview": "# 生产环境配置\nknife4j:\n  production: true #生成环境禁用查看接口文档\n"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/resources/application-test.yml",
    "chars": 9,
    "preview": "# 测试环境配置\n"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/resources/application.yml",
    "chars": 256,
    "preview": "spring:\n  profiles:\n    active: dev\n  mvc:\n    throw-exception-if-no-handler-found: true\n  resources:\n    add-mappings: "
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/resources/banner.txt",
    "chars": 1510,
    "preview": "////////////////////////////////////////////////////////////////////\n//                          _ooOoo_                "
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/main/resources/mapper/UserMapper.xml",
    "chars": 1202,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/test/java/CodeGenerator.java",
    "chars": 4127,
    "preview": "import com.baomidou.mybatisplus.core.toolkit.StringPool;\nimport com.baomidou.mybatisplus.generator.AutoGenerator;\nimport"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/test/java/com/company/project/Tester.java",
    "chars": 369,
    "preview": "package com.company.project;\n\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.springframework.boot.te"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/test/resources/templates/controller.java.ftl",
    "chars": 3284,
    "preview": "package ${package.Controller};\n\nimport com.baomidou.mybatisplus.extension.plugins.pagination.Page;\nimport com.company.pr"
  },
  {
    "path": "java_project_template/springboot-api-jwt/src/test/resources/user.sql",
    "chars": 2621,
    "preview": "/*\n Navicat Premium Data Transfer\n\n Source Server         : localhost\n Source Server Type    : MySQL\n Source Server Vers"
  },
  {
    "path": "java_project_template/springboot-api-session/.gitignore",
    "chars": 47,
    "preview": "# Created by .ignore support plugin (hsz.mobi)\n"
  },
  {
    "path": "java_project_template/springboot-api-session/README.md",
    "chars": 1920,
    "preview": "## 简介\nSpring Boot API 是一个基于Spring Boot & MyBatis plus的种子项目,用于快速构建中小型API项目,特点稳定、简单、快速,摆脱那些重复劳动\n\n## 特征&提供\n- 统一响应结果封装及生成工具\n"
  },
  {
    "path": "java_project_template/springboot-api-session/pom.xml",
    "chars": 5232,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "java_project_template/springboot-api-session/src/main/java/com/company/project/Application.java",
    "chars": 1752,
    "preview": "package com.company.project;\n\nimport com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;\nimport or"
  }
]

// ... and 5949 more files (download for full content)

About this extraction

This page contains the full source code of the wujun728/jun_java_plugin GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 6149 files (20.3 MB), approximately 5.8M tokens, and a symbol index with 25026 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!