GitHub - geekidea/spring-boot-plus: spring-boot-plus集成Spring Boot 2.1.6,Mybati...
source link: https://github.com/geekidea/spring-boot-plus?
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
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
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.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK