# 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

- 添加启动类 (启动类所在包需高于 nice.zhangyuanhui.autumn, 例如 nice.zhangyuanhui)
包结构:

启动类基础代码:
```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/下,
直接拷贝文件到当前目录下即可覆盖默认配置,效果图:

### 生成工具
- 目录介绍

- 修改配置项以连接数据库,确定生成的数据表等信息
```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
```
- 运行生成工具

完成后如无问题会生成如下文件

将生成的文件放入新工程对应包下即可

访问:http://[host]:[port]/swagger-ui.html 可查看接口文档
