# maven
**Repository Path**: muycode/maven
## Basic Information
- **Project Name**: maven
- **Description**: 公开的 maven 仓库
- **Primary Language**: Java
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2022-04-28
- **Last Updated**: 2025-03-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# muycode-base
#### 介绍
通用的权限管理模块,前端动态路由,实现代码自动生成基础的增删改查功能
#### 软件架构
##### release.version
> 1.0.0
- SpringBoot: 2.7.2
- JDK: 17
- Hutool: 5.8.3
- Mysql: 8.0.28
- Redis: 同SpringBoot
- tkmybatis: 4.2.1 MyBatis 使用 tkmybatis 提供的方法实现对单表的数据操作
#### 安装教程
1、创建SpringBoot项目,Package name 使用`com.muycode`,添加以下配置
- 1.0.0
```
com.muycode
muycode-base
1.0.0
com.muycode
muycode-system
1.0.0
muycode-maven
https://gitee.com/muycode/maven/raw/master/repository
```
2、启动类配置
```
# 如果要使用tomcat部署war,启动类继承` extends SpringBootServletInitializer` ,并添加以下代码
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return super.configure(builder);
}
```
2.1 application.properties 自定义配置
```
# 服务配置
server.port=8751
server.max-http-header-size=10240
#spring相关配置
spring.profiles.active=dev
spring.servlet.multipart.max-request-size=100MB
spring.servlet.multipart.max-file-size=100MB
spring.jackson.time-zone=GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss.SSS
spring.jackson.locale=zh_CN
spring.jackson.serialization.indent_output=false
# 是否打印开启的配置地址, 比如swagger、druid
muycode.config.log.enable=true
# 不需要鉴权的URL
muycode.security.url.patterns.unauth=[/favicon.ico, /swagger-ui/**, /swagger-resources/**, /v3/**, /doc.html, \
/webjars/**, /druid/**, /unauth/**, /file/**]
# swagger 相关配置 中文使用Unicode编码:https://c.runoob.com/front-end/3602/
# swagger 使用的3.0,需要增加以下配置修改 mvc 的匹配策略
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
# 用来是否开启自定义配置
muycode.swagger.enable=true
muycode.swagger.title=\u6743\u9650\u6a21\u5757\u63a5\u53e3\u6587\u6863
muycode.swagger.description=\u5982\u6709\u7591\u95ee\uff0c\u8bf7\u8054\u7cfb\u5f00\u53d1\u5de5\u7a0b\u5e08
muycode.swagger.contact.name=muycode
muycode.swagger.contact.url=https://muycode.com/
muycode.swagger.contact.email=358075228@qq.com
muycode.swagger.version=1.0.0
mybatis.type-aliases-package=com.muycode.*.domain
# 如果自己的xml放在resources目录下,则需要在后面加上自己的xml文件 ,classpath:mapperxml/*.xml
mybatis.mapper-locations=classpath*:com/muycode/**/mapping/*.xml
```
2.2 application-dev.properties 环境配置
```
# Mysql数据库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/muycode_base?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
# redis
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=123456
# default db 0 可不配置
spring.redis.database=0
# 控制台输出sql
logging.level.root=INFO
logging.level.com.muycode=DEBUG
# 本地文件路径
muycode.local.file.path=E:/Project/muycode-main/src/main/resources/
# 项目临时文件夹,用户存放下载临时文件
muycode.local.temp.path=static/tempFile/
# 用于本地上传附件存储地址
muycode.file.path=static/localFile/
# 网络路径,用于访问本地文件,如下载
muycode.http.url=http://127.0.0.1:8751/file/
```
#### 使用说明
1. 按照上面配置好之后,程序会自动查询是否有数据库,没有则会自动创建需要的基础表。
2. 项目启动成功之后,通过 [muycode-base-web](https://gitee.com/muycode/muycode-base-web) 前端项目搭配使用。
3. 可直接在新项目中写业务逻辑,不用去管权限等基础模块。
4. 可以使用代码生成工具,来生成新增的表的基础功能。生成代码时,会自动配置菜单权限以及按钮权限,只需重启后端,重新登录即可。
5. 使用[七牛云对象存储](https://www.qiniu.com/products/kodo)系统,申请相应的key在 系统配置-全局参数 中修改并启用,在 数据字典-七牛云存储空间 中添加bucket、域名、水印。
6. 使用[阿里云对象存储OSS](https://www.aliyun.com/product/oss)系统,配置同七牛云。
7. 接口/按钮权限使用(菜单中对应的按钮主键):
- 前端:``checkAccess(菜单按钮Id)``
- 后端:``@PreAuthorize("@pv.check('菜单按钮Id', '菜单按钮Id')")``
7. 防止重复提交注解: ``@PreventRepeatCommit``
#### 可用方法
1. 获取用户相关信息: ``LoginContextHolder.getInstance()``
2. 获取数据字典相关数据: ``DictUtils.getSystemDict(String key);``
3. 获取系统配置相关数据: ``DictUtils.getSystemConfig(String key)``
4. 密钥对加解密: ``CryptogramUtil.encryptData2(String str, String publicKey)``
5. 时间辅助类(可以获取如刚刚、几分钟前格式,以及获取今天、昨天等): ``DateUtils``
6. Http、Https发送请求: ``HttpClientUtils``
```
NameValuePair[] data = {
new NameValuePair("ie", "utf-8"),
new NameValuePair("kw", "%E5%93%88%E4%BD%9B%E6%B1%BD%E8%BD%A6"),
new NameValuePair("fr", "search")
};
new HttpClientUtils().visitGetHttps(data, url);
```
7. Http辅助类(获取request、response对象,IP地址等): ``HttpUtils``
8. 正则验证辅助类: ``RegularUtil``
9. 阿里云发送短信: ``AliyunMessageUtil.sendMessage()``
10. 邮件发送辅助类: ``EmailUtil.sendEmail()``
11. 身份证相关验证: ``IdCardUtils``
12. 文件相关处理: ``FileUtil``
13. 使用Velocity模版引擎生成静态文件: ``VelocityUtil.generateFile()``
15. 民族: ``NationUtil.NATION_MAP``
16. 行政区划: ``AreaCodeUtils``
17. Excel 导出和解析数据: ``ExcelUtil``
18. 支持Hutool工具类库
#### 全局参数
1. 配置邮箱参数,可以调用方法发送邮件
2. 配置阿里云短信参数,可以调用方法发送短信
3. 配置验证码困难程度,可以实时在登录页面变化验证码复杂程度
4. 配置验证码固定值,可以通过设定的值跳过验证码验证
5. 是否保存明文密码,新增用户时,可通过此参数设置是否需要保存用户的明文密码
6. 是否物理删除,可以设置逻辑删除(需要包含status字段,否则也是物理删除)、物理删除、不允许删除
7. 系统停服维护以及系统维护升级,启用后,除超管外的用户则不能再进行访问
#### 参与贡献
muycode
#### 效果图
