Everyone can develop projects independently, quickly and efficiently!
Spring-Boot-Plus是易于使用,快速,高效,功能丰富,开源的spring boot 脚手架.前后端分离,专注于后端服务
每个人都可以独立、快速、高效地开发项目!
└── spring-boot-plus
├── admin SpringBootAdmin Server模块
├── bootstrap spring-boot-plus 启动模块
├── config 配置模块
├── distribution 打包模块
├── docs 文档目录
├── example 示例模块,自己的业务可新建多个模块处理
├── framework 框架核心模块
├── generator 代码生成模块
├── scheduled 任务调度模块
└── system 系统模块
中间件
版本
备注
JDK
1.8+
JDK1.8及以上
MySQL
5.7+
5.7及以上
Redis
3.2+
技术
版本
备注
Spring Boot
2.2.0.RELEASE
最新发布稳定版
Spring Framework
5.2.0.RELEASE
最新发布稳定版
Spring Boot Admin
2.2.2
管理和监控SpringBoot应用程序
Mybatis
3.5.3
持久层框架
Mybatis Plus
3.3.1
mybatis增强框架
HikariCP
3.4.2
数据源
Fastjson
1.2.67
JSON处理工具集
Swagger2
2.9.2
api文档生成工具
Knife4j
2.0.2
api文档生成工具
commons-lang3
3.9
常用工具包
commons-io
2.6
IO工具包
commons-codec
1.14
加密解密等工具包
commons-collections4
4.4
集合工具包
reflections
0.9.9
反射工具包
hibernate-validator
6.0.18.Final
后台参数校验注解
Shiro
1.5.1
权限控制
JWT
3.10.1
JSON WEB TOKEN
hutool-all
5.2.4
常用工具集
lombok
1.18.12
注解生成Java Bean等工具
mapstruct
1.3.1.Final
对象属性复制工具
git clone https://gitee.com/geekidea/spring-boot-plus.git
cd spring-boot-plus
默认使用dev环境,对应配置文件:application-dev.yml
mvn clean package -Pdev
-- ----------------------------
-- Table structure for foo_bar
-- ----------------------------
DROP TABLE IF EXISTS `foo_bar`;
CREATE TABLE `foo_bar`
(
`id` bigint(20) NOT NULL COMMENT '主键',
`name` varchar(20) NOT NULL COMMENT '名称',
`foo` varchar(20) DEFAULT NULL COMMENT 'Foo',
`bar` varchar(20) NOT NULL COMMENT 'Bar',
`remark` varchar(200) DEFAULT NULL COMMENT '备注',
`state` int(11) NOT NULL DEFAULT '1' COMMENT '状态,0:禁用,1:启用',
`version` int(11) NOT NULL DEFAULT '0' COMMENT '版本',
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NULL DEFAULT NULL COMMENT '修改时间',
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);
代码生成入口类,在generator模块中
spring-boot-plus/generator/src/main/java/io/geekidea/springbootplus/generator/SpringBootPlusGenerator.java
/**
* spring-boot-plus代码生成器入口类
*
* @author geekidea
* @date 2019-10-22
**/
@Component
public class SpringBootPlusGenerator {
/**
* 生成代码
* @param args
*/
public static void main(String[] args) {
GeneratorProperties generatorProperties = new GeneratorProperties();
// 设置基本信息
generatorProperties
.setMavenModuleName("example")
.setParentPackage("com.example")
.setModuleName("foobar")
.setAuthor("geekidea")
.setFileOverride(true);
// 设置表信息
generatorProperties.addTable("foo_bar","id");
// 数据源配置
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");
// 生成配置
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);
// 全局配置
generatorProperties.getMybatisPlusGeneratorConfig().getGlobalConfig()
.setOpen(true)
.setSwagger2(true)
.setIdType(IdType.AUTO)
.setDateType(DateType.ONLY_DATE);
// 策略配置
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);
// 生成代码
CodeGenerator codeGenerator = new CodeGenerator();
codeGenerator.generator(generatorProperties);
}
}
使用Velocity模版生成代码,可自定义修改代码生成模版
spring-boot-plus/generator/src/main/resources
└── templates
├── controller.java.vm 控制器代码生成模版
├── entity.java.vm 实体类代码生成模版
├── mapper.java.vm mapper代码生成模版
├── mapper.xml.vm mapper xml 代码生成模版
├── pageParam.java.vm 分页参数代码生成模版
├── queryVo.java.vm 查询结果代码生成模版
├── service.java.vm 服务接口代码生成模版
└── serviceImpl.java.vm 服务实现代码生成模版
└── 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
SpringBootAdmin Server启动类,在admin模块中 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);
}
}
项目入口类,在bootstrap模块中 http://localhost:8888
spring-boot-plus/bootstrap/src/main/java/io/geekidea/springbootplus/SpringBootPlusApplication.java
/**
* spring-boot-plus 项目启动入口
*
* @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) {
// 启动spring-boot-plus
ConfigurableApplicationContext context = SpringApplication.run(SpringBootPlusApplication.class, args);
// 打印项目信息
PrintApplicationInfo.print(context);
// 打印项目提示
PrintApplicationInfo.printTip(context);
}
}
http://47.105.159.10:8888/api/swagger-ui.html
http://47.105.159.10:8888/api/doc.html
安装jdk
,git
,maven
,redis
,mysql
wget -O download-install-all.sh https://springboot.plus/bin/download-install-all.sh
sh download-install-all.sh
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Springbootplus666!';
exit
mysql -uroot -pSpringbootplus666!
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
deploy.sh
wget -O deploy.sh https://springboot.plus/bin/deploy.sh
sh deploy.sh
tail -f -n 1000 /spring-boot-plus-server-2.0/logs/spring-boot-plus.log
QQ 625301326
微信公众号 geekideaio
今日头条 GeekIdea
请作者喝咖啡,让代码飞一会儿!
spring-boot-plus is under the Apache 2.0 license. See the LICENSE file for details.
原网址: 访问
创建于: 2021-03-03 13:27:30
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
最新评论