# self-tools **Repository Path**: Jyokiyi/self-tools ## Basic Information - **Project Name**: self-tools - **Description**: 项目使用的常用工具类 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2019-06-26 - **Last Updated**: 2021-12-13 ## Categories & Tags **Categories**: utils **Tags**: None ## README # self-tools #### 介绍 项目使用的常用工具类和配置。 环境是JDK1.8 #### 目录结构 总目录结构:
D:.
├─docker # Dockerfile文件存放目录
├─java
│ └─com
│ └─self
│ └─ry
│ ├─config # 配置
│ │ └─swagger2 # API文档配置
│ ├─controller # rest接口1
│ ├─controller2 # rest接口2
│ ├─mapper # mapper接口类
│ ├─model # bean,entity
│ └─utils # 辅助工具类
│ ├─lambda
│ └─sm2
└─resources
└─mybatis
└─mapper # 存放XML文件
部分类说明:
│
├─config # 跳板机设定
│ MySQLSSHSettings.java # MySQL配置读取
│ RedisSSHSettings.java # Redis配置读取
│ SSHConnection.java # 启动ssh连接
│
└─utils # 工具类
│ BCCUtil.java # BCC校验
│ ByteHexUtil.java # 字节-16进制操作
│ CRCUtil.java # CRC校验
│ DateUtil.java # 日期操作
│ EncryptUtil.java # 密码加密操作
│ ExcelUtil.java # Excel操作类
│ IPUtil.java # 获取IP类
│ JwtUtil.java # JWT--加解密操作
│ RipeMD160Util.java # RipeMD160加密操作
│ RSAUtil.java # RSA加解密操作
│ ShiftUtil.java # 移位和位操作
│ StringUtils.java # 字符串操作
│ TimerManageUtil.java # 定时任务 线程池操作
│ Util.java # 二进制 十六进制 字节数组操作
│
├─lambda # lambda表达式,groupby多个分组
│ Salary.java
│ SalaryTest.java
│ Tuple.java
│ Tuple2.java
│
└─sm2 # 国密2-加解密
Cipher2SM2.java
SM2EnDecryption.java
SM2Factory.java
SM2Result.java
SM2Util.java
SM3.java
SM3Digest.java
#### Swagger--API接口管理
采用的是`Swagger2`:
* 在应用主类中增加`@EnableSwagger2Doc`注解.
配置示例参照:https://github.com/SpringForAll/spring-boot-starter-swagger
本项目设定配置类:`com.self.ry.config.swagger2.Swagger2Config`。
使用`swagger.base-package`可以指定多个包生成API接口文档,使用`分号(;)`分隔。
项目运行后,在浏览器上输入[http://localhost:8089/swagger-ui.html](http://localhost:8089/swagger-ui.html),在选择myselfAPI分组,就可以看到接口信息。
#### 使用说明
所有的帮助类都在是`com.self.ry.utils`包中。
#### 数据库连接管理
要在Spring中使用MyBatis,您至少需要一个SqlSessionFactory 和至少一个mapper接口。
使用`mybatis-spring-boot-starter`依赖,它自动依赖jdbc: spring-boot-starter-jdbc`的2.0+版本,默认依赖使用了HiKari数据库连接池管理。本项目即时使用默认的数据库连接池。
`mybatis-spring-boot-starter`将做以下事情:
* 自动检测现有的`Datasource`.
* 使用`SqlSessionFactoryBean`类,`Datasource`作为输入将创建并注册一个`SqlSessionFactory`实例。
* 将创建并注册`SqlSessionTemplate`的实例从`SqlSessionFactory`中获取。
* 自动扫描Mappers,将它们链接到`SqlSessionTemplate`并将它们注册到Spring上下文,以便将它们注入到bean中。
在Mapper接口类上使用`org.apache.ibatis.annotations.Mapper`或者org.springframework.stereotype.Repository`注解,
* 默认情况下,`MyBatis-Spring-Boot-Starter`将搜索标有`@Mapper`注解的映射器。
* 你可能需要指定**自定义注解**或**标记接口**以进行扫描。 若是这样,必须使用`@MapperScan`注解指定包路径(`@MapperScan(com.self.ry.mapper)`)。
配置MyBatis时查看`MybatisProperties`类对应的属性集,然后在yml文件中设置对应的属性。
#### Redis
添加依赖:
```
# redis跳板机设置 ssh-redis: # 是否开启 ssh 服务 enable: true # enable: false # 跳板机IP地址 remote: XXX.XXX.XXX.XXX port: 14022 username: root password: 2019111 # 设定安全级别 no ask yes # 特别注意 此处一定要加''单引号,否则解析成 no-false yes-true strictKey: 'no' # 真实的redis的host和port redisHost: 192.168.5.140 redisPort: 6379在此例子中,跳板机是`XXX.XXX.XXX.XXX`,它的端口`14022`对应内部局域网中的主机`192.168.5.140`。这样通过端口-主机映射的方式, 达到操作局域网内部主机的目的。 #### Docker 在`src/main/docker`文件夹中,放置使用docker运行项目的文件,包括使用jenkins构建镜像的脚本文件。