# 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 #### 效果图 ![img](https://all-imgs.muycode.com/iTools/202206091042305468.png?imageMogr2/format/webp/blur/1x0/quality/75|watermark/2/text/bXV5Y29kZQ==/font/5qW35L2T/fontsize/280/fill/Izg1ODI4Mg==/dissolve/80/gravity/SouthEast/dx/10/dy/10)