244 Star 1.8K Fork 718

geekidea/spring-boot-plus

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README
MIT

spring-boot-plus logo

Everyone can develop projects independently, quickly and efficiently!

spring-boot-plus version spring boot version spring boot version code style

What is spring-boot-plus?

A easy-to-use, high-speed, high-efficient, feature-rich, open source spring boot scaffolding.

spring-boot-plus is a background rapid development framework that integrates spring boot common development components.

Purpose

Everyone can develop projects independently, quickly and efficiently!

Open source License MIT-License

Any individual or company can conduct secondary development based on this framework for commercial use without authorization!

Vue Project VUE3+TS

GITHUB | GITEE

中文文档

springboot.plus

Features

  • Integrated spring boot common development component set, common configuration, AOP log, etc
  • Maven Project
  • Integrated mybatis-plus fast dao operation
  • Quickly generate background code:entity/param/vo/controller/service/mapper/xml
  • Integrated Swagger/Knife4j, automatic generation of api documents
  • Integrated Redis Cache
  • Integration HikariCP connection pool, A solid, high-performance, JDBC connection pool at last.

Source code directory structure

spring-boot-plus
├── docs
│ ├── bin
│ │ └── install
│ ├── config
│ ├── db
│ └── img
├── logs
└── src
    ├── main
    │ ├── java
    │ │ └── io
    │ │     └── geekidea
    │ │         └── boot
    │ │             ├── auth
    │ │             ├── common
    │ │             ├── config
    │ │             ├── demo
    │ │             ├── framework
    │ │             ├── system
    │ │             ├── user
    │ │             └── util
    │ │             └── SpringBootPlusApplication.java
    │ └── resources
    │     ├── mapper
    │     └── static
    │     ├── application-dev.yml
    │     ├── application-prod.yml
    │     ├── application-test.yml
    │     ├── application.yml
    │     ├── banner.txt
    │     ├── ip2region.xdb
    │     ├── logback-spring.xml
    └── test
        ├── java
        │ └── io
        │     └── geekidea
        │         └── boot
        │             ├── generator
        │             └── system
        └── resources
            └── templates

Project Environment

Name Version Remark
JDK 1.8+ JDK1.8 and above
MySQL 5.7+ 5.7 and above
Redis 3.2+

Technology stack

Component Version Remark
Spring Boot 2.7.18
Mybatis 3.5.13 DAO Framework
Mybatis Plus 3.5.4.1 mybatis Enhanced framework
Fastjson 2.0.42 JSON processing toolset
Swagger V3 Api document generation tool
Knife4j 4.3.0 Api document generation tool
commons-lang3 3.14.0 Apache language toolkit
commons-io 2.15.0 Apache IO Toolkit
commons-codec 1.16.0 Apache Toolkit such as encryption and decryption
commons-collections4 4.4.4 Apache collections toolkit
hibernate-validator 6.2.5.Final Validator toolkit
hutool-all 5.8.23 Common toolset
lombok 1.18.30 Automatically plugs

Project Link Diagram

项目调用链路图

CHANGELOG

Quick Start

Clone spring-boot-plus

git clone https://github.com/geekidea/spring-boot-plus.git
cd spring-boot-plus

Maven Build

dev environment is used by default, The configuration file:application-dev.yml

mvn clean package -Pdev

5 Minutes Finish CRUD

1. Create Table

-- ----------------------------
-- Table structure for foo_bar
-- ----------------------------
DROP TABLE IF EXISTS `foo_bar`;
CREATE TABLE `foo_bar`
(
    `id`            bigint(20)  NOT NULL COMMENT 'ID',
    `name`          varchar(20) NOT NULL COMMENT 'Name',
    `foo`           varchar(20)          DEFAULT NULL COMMENT 'Foo',
    `bar`           varchar(20) NOT NULL COMMENT 'Bar',
    `remark`        varchar(200)         DEFAULT NULL COMMENT 'Remark',
    `state`         int(11)     NOT NULL DEFAULT '1' COMMENT 'State,0:Disable,1:Enable',
    `version`       int(11)     NOT NULL DEFAULT '0' COMMENT 'Version',
    `create_time`   timestamp   NULL     DEFAULT CURRENT_TIMESTAMP COMMENT 'Create Time',
    `update_time`   timestamp   NULL     DEFAULT NULL COMMENT 'Update Time',
    PRIMARY KEY (`id`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4
  COLLATE = utf8mb4_general_ci COMMENT ='FooBar';

create table foo_bar
(
    id          bigint                               not null comment 'ID'
        primary key,
    name        varchar(20)                          not null comment 'Name',
    foo         varchar(100)                         null comment 'Foo',
    bar         varchar(100)                         null comment 'Bar',
    remark      varchar(200)                         null comment 'Remark',
    status      tinyint(1) default 1                 not null comment 'Status,0:Disable,1:Enable',
    create_time timestamp  default CURRENT_TIMESTAMP null comment 'Create Time',
    update_time timestamp                            null comment 'Update Time'
)
    comment 'FooBar';

-- ----------------------------
-- Records of foo_bar
-- ----------------------------
INSERT INTO foo_bar (id, name, foo, bar, remark, status, create_time, update_time) VALUES (1, 'FooBar', 'Foo', 'Bar', null, 1, '2023-07-01 21:01:10', null);

2. Generator CRUD CODE

Code generation entry class, in the generator module

src/test/java/io/geekidea/boot/generator/Generator.java
/**
 * spring-boot-plus Code Generator Main Class
 *
 * @author geekidea
 * @date 2022/3/16
 **/
public class Generator {

    public static void main(String[] args) throws Exception {
        GeneratorConfig config = new GeneratorConfig();
        // 项目信息配置
        config.setParentPackage("io.geekidea.boot" )
                .setModuleName("foobar" )
                .setAuthor("geekidea" );
        // 表名称和需要去掉的表前缀
        config.setTableNames("foo_bar" )
                .setTablePrefix("");
        // 是否覆盖已有文件
        config.setFileOverride(true);
        // 是否只更新实体类
        config.setOnlyOverrideEntity(false);
        GenerateHandler handler = new GenerateHandler();
        handler.generator(config);
    }
}

Generated code structure

├── controller
│ └── FooBarController.java
├── dto
│ ├── FooBarDto.java
│ └── FooBarUpdateDto.java
├── entity
│ └── FooBar.java
├── mapper
│ └── FooBarMapper.java
├── query
│ └── FooBarQuery.java
├── service
│ ├── FooBarService.java
│ └── impl
│     └── FooBarServiceImp.java
└── vo
    ├── FooBarVo.java
    └── FooBarVo.java

resources
└── mapper
    └── foobar
        └── FooBarMapper.xml    

Code Generator Templates

Use Velocity template to generate code, you can customize and modify the code to generate template

src/test/resources
└── templates
    ├── addDto.java.vm          Add DTO generator template
    ├── controller.java.vm      Controller generator template
    ├── entity.java.vm          Entity generator template
    ├── infoVo.java.vm          Detail VO generator template
    ├── mapper.java.vm          Mapper  generator template
    ├── mapper.xml.vm           Mapper xml  generator template
    ├── query.java.vm           Page Query  generator template
    ├── service.java.vm         Service  generator template
    ├── serviceImpl.java.vm     Service implement  generator template
    ├── updateDto.java.vm       Update DTO generator template
    └── vo.java.vm              List VO generator template

3. Startup Project

Project Main Class: SpringBootPlusApplication http://localhost:8888

src/main/java/io/geekidea/boot/SpringBootPlusApplication.java
/**
 * spring-boot-plus Project Main Class
 *
 * @author geekidea
 * @date 2022-3-16
 */
@EnableAsync
@SpringBootApplication
public class SpringBootPlusApplication {

    private static final String BACKSLASH = "/";

    public static void main(String[] args) throws Exception {
        ConfigurableApplicationContext context = SpringApplication.run(SpringBootPlusApplication.class, args);
        // 打印项目信息
        printlnProjectInfo(context);
        System.out.println("  _____ _______       _____ _______    _____ _    _  _____ _____ ______  _____ _____ \n" +
                " / ____|__   __|/\\   |  __ \\__   __|  / ____| |  | |/ ____/ ____|  ____|/ ____/ ____|\n" +
                "| (___    | |  /  \\  | |__) | | |    | (___ | |  | | |   | |    | |__  | (___| (___  \n" +
                " \\___ \\   | | / /\\ \\ |  _  /  | |     \\___ \\| |  | | |   | |    |  __|  \\___ \\\\___ \\ \n" +
                " ____) |  | |/ ____ \\| | \\ \\  | |     ____) | |__| | |___| |____| |____ ____) |___) |\n" +
                "|_____/   |_/_/    \\_\\_|  \\_\\ |_|    |_____/ \\____/ \\_____\\_____|______|_____/_____/ \n");
    }
}

4. Access Swagger Docs

http://localhost:8888/swagger-ui/index.html swagger-ui.png

5. Access Knife4j Docs

http://localhost:8888/doc.html knife4j.png

spring-boot-plus-vue Vue3 Project

GITEE-REPO

System User List

System User List

System Role List

System Role List

System Menu List

System Menu List

System Department

System Department List

System Log List

System Log List System Log Detail

User Profile

User Profile

spring-boot-plus Videos :movie_camera:

QQ群 625301326 微信公众号 geekideaio
spring-boot-plus QQ Group Wechat Official Account
微信技术交流群 业务咨询商务合作
微信群 业务咨询商务合作

License

spring-boot-plus is under the MIT-License. See the LICENSE file for details.

MIT License Copyright (c) 2023 geekidea Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

spring-boot-plus是一套集成spring boot常用开发组件的后台快速开发框架,每个人都可以独立、快速、高效地开发项目! 开源协议 MIT-License,任何个人或公司,均可基于此框架进行二次开发后,进行商业使用,无需授权! expand collapse
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/geekidea/spring-boot-plus.git
git@gitee.com:geekidea/spring-boot-plus.git
geekidea
spring-boot-plus
spring-boot-plus
master

Search

344bd9b3 5694891 D2dac590 5694891