张延森 59fe4a854c feats 4 yıl önce
.idea feats 4 yıl önce
admin 分批次提交 4 yıl önce
bootstrap 分批次提交 4 yıl önce
config 分批次提交 4 yıl önce
distribution 分批次提交 4 yıl önce
docs 分批次提交 4 yıl önce
example 分批次提交 4 yıl önce
framework 分批次提交 4 yıl önce
generator 分批次提交 4 yıl önce
logs 分批次提交 4 yıl önce
scheduled 分批次提交 4 yıl önce
system 分批次提交 4 yıl önce
CHANGELOG.md 1 4 yıl önce
LICENSE 1 4 yıl önce
NOTICE 分批次提交 4 yıl önce
README-zh.md 分批次提交 4 yıl önce
README.md 分批次提交 4 yıl önce
parent.iml 分批次提交 4 yıl önce
pom.xml 分批次提交 4 yıl önce

README.md

spring-boot-plus logo

Everyone can develop projects independently, quickly and efficiently!

spring-boot-plus 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.

Front-end and back-end separation, focusing on back-end services

Purpose

Everyone can develop projects independently, quickly and efficiently!

GITHUB | GITEE

中文文档

springboot.plus

Features

  • Integrated spring boot common development component set, common configuration, AOP log, etc
  • Maven Module 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 JWT,Shiro permission control
  • Integrated Redis Cache
  • Integration HikariCP connection pool, A solid, high-performance, JDBC connection pool at last.
  • Integrated Spring Boot Admin, real-time detection of project operation
  • Integrate maven-assembly-plugin for different environment package deployment, including startup and restart commands, and extract configuration files to external config directory

V2.0 Video Introduction

spring-boot-plus videos

Project structure

  spring-boot-plus
    ├── admin           SpringBootAdmin Server Module          
    ├── bootstrap       spring-boot-plus Bootstrap Module    
    ├── config          Config Module
    ├── distribution    Maven assembly Module        
    ├── docs            Document
    ├── example         Example Module
    ├── framework       Framework Core Module    
    ├── generator       Code Generator Module    
    ├── scheduled       Scheduled Module
    └── system          System Manager Module

Project Environment

Middleware | 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.2.5.RELEASE | Latest release stable version | Spring Framework | 5.2.4.RELEASE | Latest release stable version | Spring Boot Admin| 2.2.2 | Manage and monitor spring boot applications | Mybatis | 3.5.3 | DAO Framework | Mybatis Plus | 3.3.1 | mybatis Enhanced framework | HikariCP | 3.4.2 | DataSource | Fastjson | 1.2.67 | JSON processing toolset | Swagger2 | 2.9.2 | Api document generation tool | Knife4j | 2.0.2 | Api document generation tool | commons-lang3 | 3.9 | Apache language toolkit | commons-io | 2.6 | Apache IO Toolkit | commons-codec | 1.14 | Apache Toolkit such as encryption and decryption | commons-collections4 | 4.4 | Apache collections toolkit | reflections | 0.9.9 | Reflection Toolkit | hibernate-validator | 6.0.18.Final | Validator toolkit | Shiro | 1.5.1 | Permission control | JWT | 3.10.1 | JSON WEB TOKEN | hutool-all | 5.2.4 | Common toolset | lombok | 1.18.12 | Automatically plugs | mapstruct | 1.3.1.Final | Object property replication tool |

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';

-- ----------------------------
-- Records of foo_bar
-- ----------------------------
INSERT INTO foo_bar (id, name, foo, bar, remark, state, version, create_time, update_time) 
    VALUES (1, 'FooBar', 'foo', 'bar', 'remark...', 1, 0, '2019-11-01 14:05:14', null);
INSERT INTO foo_bar (id, name, foo, bar, remark, state, version, create_time, update_time) 
    VALUES (2, 'HelloWorld', 'hello', 'world', null, 1, 0, '2019-11-01 14:05:14', null);

2. Generator CRUD CODE

Code generation entry class, in the generator module

spring-boot-plus/generator/src/main/java/io/geekidea/springbootplus/generator/SpringBootPlusGenerator.java
/**
 * spring-boot-plus Code Generator Main Class
 *
 * @author geekidea
 * @date 2019-10-22
 **/
@Component
public class SpringBootPlusGenerator {

    /**
     * Generator Code
     * @param args
     */
    public static void main(String[] args) {
        GeneratorProperties generatorProperties = new GeneratorProperties();

        // Common configuration
        generatorProperties
                .setMavenModuleName("example")
                .setParentPackage("com.example")
                .setModuleName("foobar")
                .setAuthor("geekidea")
                .setFileOverride(true);

        // generator Table
        generatorProperties.addTable("foo_bar","id");

        // DataSourceConfig
        generatorProperties.getDataSourceConfig()
                .setDbType(DbType.MYSQL)
                .setUsername("root")
                .setPassword("root")
                .setDriverName("com.mysql.jdbc.Driver")
                .setUrl("jdbc:mysql://localhost:3306/spring_boot_plus?useUnicode=true&characterEncoding=UTF-8&useSSL=false");

        // GeneratorConfig
        generatorProperties.getGeneratorConfig()
                .setGeneratorStrategy(GeneratorStrategy.SINGLE)
                .setGeneratorEntity(true)
                .setGeneratorController(true)
                .setGeneratorService(true)
                .setGeneratorServiceImpl(true)
                .setGeneratorMapper(true)
                .setGeneratorMapperXml(true)
                .setGeneratorPageParam(true)
                .setGeneratorQueryVo(true)
                .setRequiresPermissions(true)
                .setPageListOrder(true)
                .setParamValidation(true)
                .setSwaggerTags(true)
                .setOperationLog(true);

        // GlobalConfig
        generatorProperties.getMybatisPlusGeneratorConfig().getGlobalConfig()
                .setOpen(true)
                .setSwagger2(true)
                .setIdType(IdType.AUTO)
                .setDateType(DateType.ONLY_DATE);

        // StrategyConfig
        generatorProperties.getMybatisPlusGeneratorConfig().getStrategyConfig()
                .setNaming(NamingStrategy.underline_to_camel)
                .setColumnNaming(NamingStrategy.underline_to_camel)
                .setEntityLombokModel(true)
                .setRestControllerStyle(true)
                .setControllerMappingHyphenStyle(true)
                .setVersionFieldName(GeneratorConstant.VERSION)
                .setLogicDeleteFieldName(GeneratorConstant.DELETED);

        // Code Generator 
        CodeGenerator codeGenerator = new CodeGenerator();
        codeGenerator.generator(generatorProperties);
    }
}

Code Generator Templates

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

spring-boot-plus/generator/src/main/resources
└── templates
    ├── controller.java.vm      controller generator template
    ├── entity.java.vm          entity generator template
    ├── mapper.java.vm          mapper  generator template
    ├── mapper.xml.vm           mapper xml  generator template
    ├── pageParam.java.vm       page param  generator template
    ├── queryVo.java.vm         query vo  generator template
    ├── service.java.vm         service  generator template
    └── serviceImpl.java.vm     service implement  generator template

Generated code structure

└── src
    └── main
        ├── java
        │   └── com
        │       └── example
        │           └── foobar
        │               ├── controller
        │               │   └── FooBarController.java
        │               ├── entity
        │               │   └── FooBar.java
        │               ├── mapper
        │               │   └── FooBarMapper.java
        │               ├── param
        │               │   └── FooBarPageParam.java
        │               ├── service
        │               │   ├── FooBarService.java
        │               │   └── impl
        │               │       └── FooBarServiceImpl.java
        │               └── vo
        │                   └── FooBarQueryVo.java
        └── resources
            └── mapper
                └── foobar
                    └── FooBarMapper.xml

3. Bootstrap SpringBootAdmin Server

SpringBootAdmin Server Main Class,admin module http://localhost:8000

spring-boot-plus/admin/src/main/java/io/geekidea/springbootplus/admin/SpringBootPlusAdminApplication
/**
 * Spring Boot Admin Bootstrap Main Class
 *
 * @author geekidea
 * @date 2020/3/20
 **/
@Slf4j
@Configuration
@EnableAutoConfiguration
@EnableAdminServer
@SpringBootApplication
public class SpringBootPlusAdminApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(SpringBootPlusAdminApplication.class, args);
        ConfigurableEnvironment environment = context.getEnvironment();
        String serverPort = environment.getProperty("server.port");
        log.info("SpringBootAdmin: http://localhost:" + serverPort);
    }

}

4. Startup Project

Project Main Class,bootstrap module http://localhost:8888

spring-boot-plus/bootstrap/src/main/java/io/geekidea/springbootplus/SpringBootPlusApplication.java
/**
 * spring-boot-plus Project Main Class
 *
 * @author geekidea
 * @since 2018-11-08
 */
@EnableAsync
@EnableScheduling
@EnableTransactionManagement
@EnableConfigurationProperties
@ServletComponentScan
@MapperScan({"io.geekidea.springbootplus.**.mapper", "com.example.**.mapper"})
@SpringBootApplication(scanBasePackages = {"io.geekidea.springbootplus", "com.example"})
public class SpringBootPlusApplication {

    public static void main(String[] args) {
        // Run spring-boot-plus
        ConfigurableApplicationContext context = SpringApplication.run(SpringBootPlusApplication.class, args);
        // Print Project Info
        PrintApplicationInfo.print(context);
        // Print Project Tip
        PrintApplicationInfo.printTip(context);
    }

}

4. Access Swagger Docs

http://47.105.159.10:8888/api/swagger-ui.html swagger-ui.png swagger-ui-1.png

5. Access Knife4j Docs

http://47.105.159.10:8888/api/doc.html knife4j.png knife4j-1.png

CentOS Quick Installation Environment / Build / Deploy / Launch Spring-boot-plus Project

1. Download the installation script

Install jdk, git, maven, redis, mysql

wget -O download-install-all.sh https://springboot.plus/bin/download-install-all.sh

2. Run the installation script

sh download-install-all.sh

3. Modify MySQL password

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Springbootplus666!';
exit
mysql -uroot -pSpringbootplus666!

4. Import MySQL scripts

create database if not exists spring_boot_plus character set utf8mb4;
use spring_boot_plus;
source /root/mysql_spring_boot_plus.sql;
show tables;
exit

5. Download deployment script deploy.sh

wget -O deploy.sh https://springboot.plus/bin/deploy.sh

6. Execution script

sh deploy.sh

7. View project run log

tail -f -n 1000 /spring-boot-plus-server-2.0/logs/spring-boot-plus.log

spring-boot-plus Views

spring-boot-plus IDEA Sources Views

spring-boot-plus-idea

Spring Boot Admin Instances

spring-boot-admin instances

Spring Boot Admin Statistics

spring-boot-admin statistics

Spring Boot Admin Log

spring-boot-admin log

spring-boot-plus-vue Front-end Project

GITHUB-REPO

VUE WebSite

VUE HOME

VUE HOME

System User List

System User List

System Role List

System Role List

System Menu List

System Menu List

spring-boot-plus Videos :movie_camera:

Contact

QQ 625301326| Wechat geekideaio| toutiao GeekIdea -|-|- spring-boot-plus QQ Group | Wechat Official Account | toutiao |

Donate

Ask the author to drink coffee and let the code fly for a while!

geekidea-wechat-donate

License

spring-boot-plus is under the Apache 2.0 license. See the LICENSE file for details.