# autumn **Repository Path**: nice_for/autumn ## Basic Information - **Project Name**: autumn - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-09-24 - **Last Updated**: 2021-08-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # autumn, 是一个在晚秋时节创建并开始开发的一个项目,是为一个Java web 项目的基础模块。 ## 项目结构 | ├── **core**
项目核心模块,存放各种工具类及共用框架整合配置
├── **security**
安全管理模块,存放鉴权框架的配置及基本登陆、注册功能的控制器及逻辑实现
├── **generator**
生成工具,可根据数据库表生成对应 Entity, service, serviceImpl, controller | | :----------------------------------------------------------- | | | ​ *在框架设计初衷,autumn为单独版本库管理且项目中的代码不随业务修改而变动,只为公共功能的升级、Bug修复等提供改动。* **当创建新项目时应新创建一个工程(project), 以依赖(dependency)的形式引入autumn,新工程只编写业务代码,** **所有可共用的基础代码都放在autumn下的某一个对应职责模块中,以供其他项目共用。** - 新建项目依赖 core 后自然拥有 core下的所有能力,含 Springboot , Mybatis-plus 等框架的整合,如项目无须安全认证或权限管理,仅依赖core 模块便足够使其拥有 spring springmvc mybatis-plus(SSM)框架的所有能力。 - 如需进行权限管理需依赖 security 模块,该模块使用 Shiro, java-jwt(com.auth0) 进行整合实现以token 为主的无状态登陆及权限管理。 ## 以下为全功能演示 ### 新工程创建及运行 - 创建新工程并依赖 security ![](docs/images/01.png) - 添加启动类 (启动类所在包需高于 nice.zhangyuanhui.autumn, 例如 nice.zhangyuanhui) 包结构: ![](docs/images/02.png) 启动类基础代码: ```java package nice.zhangyuanhui; @SpringBootApplication public class HelloApplication implements WebMvcConfigurer { public static void main(String[] args) { SpringApplication.run(HelloApplication.class, args); } } ``` - 启动应用 运行启动类中的main方法即可启动服务,默认配置为 autumn/core/src/main/resources/下, 直接拷贝文件到当前目录下即可覆盖默认配置,效果图: ![](docs/images/03.png) ### 生成工具 - 目录介绍 ![](docs/images/04.png) - 修改配置项以连接数据库,确定生成的数据表等信息 ```sql CREATE TABLE `emp` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号', `name` varchar(255) DEFAULT NULL COMMENT '名称', `phone` varchar(255) DEFAULT NULL COMMENT '电话', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `deleted_at` datetime DEFAULT NULL COMMENT '删除时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标记', `version` bigint(20) DEFAULT '0' COMMENT '乐观锁标记', `status` tinyint(1) DEFAULT NULL COMMENT '状态', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=95 DEFAULT CHARSET=utf8 COMMENT='员工表'; ``` 以 emp 表 为例,修改配置为 ```properties driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql:///autumn?useUnicode=true&characterEncoding=utf-8&useSSL=false&useAffectedRows=true&serverTimezone=UTC userName=root password=root #基础包名,生成文件为 ${packageName}.entities / .mapper / .service / .service.impl / .controller packageName=nice.zhangyuanhui.hello.ex.emp tableName= emp #controller requestMapping 的值 requestMapping= emp #controller 方法中的参数名 var= emp #文件头显示负责人(作者) author= Autumn ``` - 运行生成工具 ![](docs/images/06.png) 完成后如无问题会生成如下文件 ![](docs/images/07.png) 将生成的文件放入新工程对应包下即可 ![](docs/images/08.png) 访问:http://[host]:[port]/swagger-ui.html 可查看接口文档 ![](docs/images/09.png)