spring-boot-plus
spring-boot-plus copied to clipboard
:fire: Spring-Boot-Plus is an easy-to-use, high-speed, high-efficient,feature-rich, open source spring boot scaffolding. :rocket:
Everyone can develop projects independently, quickly and efficientlyï¼
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
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
5. Access Knife4j Docs
http://47.105.159.10:8888/api/doc.html
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 Admin Instances
Spring Boot Admin Statistics
Spring Boot Admin Log
spring-boot-plus-vue Front-end Project
GITHUB-REPO
VUE WebSite
VUE HOME
System User List
System Role List
System Menu List
spring-boot-plus Videos :movie_camera:
- V2.x Video Introduction
- V1.x 5-Minutes-Finish-CRUD
- CentOS Quick Installation JDK/Git/Maven/Redis/MySQL
- CentOS Quick Build / Deploy / Launch Spring-boot-plus Project
Contact
QQ 625301326 | Wechat geekideaio | toutiao GeekIdea |
---|---|---|
Donate
Ask the author to drink coffee and let the code fly for a while!
License
spring-boot-plus is under the Apache 2.0 license. See the LICENSE file for details.