Everyone can develop projects independently, quickly and efficiently! html
Spring-Boot-Plus是易於使用,快速,高效,功能豐富,開源的spring boot 腳手架.java
先後端分離,專一於後端服務mysql
每一個人均可以獨立、快速、高效地開發項目!git
中間件 | 版本 | 備註 |
---|---|---|
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 | 最新發布穩定版 |
Mybatis | 3.5.2 | 持久層框架 |
Mybatis Plus | 3.2.0 | mybatis加強框架 |
Alibaba Druid | 1.1.20 | 數據源 |
Fastjson | 1.2.62 | JSON處理工具集 |
swagger2 | 2.6.1 | api文檔生成工具 |
commons-lang3 | 3.9 | 經常使用工具包 |
commons-io | 2.6 | IO工具包 |
commons-codec | 1.13 | 加密解密等工具包 |
commons-collections4 | 4.4 | 集合工具包 |
reflections | 0.9.11 | 反射工具包 |
hibernate-validator | 6.0.17.Final | 後臺參數校驗註解 |
Shiro | 1.4.1 | 權限控制 |
JWT | 3.8.3 | JSON WEB TOKEN |
hutool-all | 5.0.3 | 經常使用工具集 |
lombok | 1.18.10 | 註解生成Java Bean等工具 |
mapstruct | 1.3.1.Final | 對象屬性複製工具 |
git clone https://github.com/geekidea/spring-boot-plus.git cd spring-boot-plus
默認使用local環境,對應配置文件:application-local.ymlgithub
mvn clean package -Plocal
-- ---------------------------- -- 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);
修改數據庫信息redis
修改組件名稱/做者/數據庫表名稱/主鍵idspring
/src/test/java/io/geekidea/springbootplus/test/SpringBootPlusGenerator.java
/** * spring-boot-plus代碼生成器入口類 * * @author geekidea * @date 2019-10-22 **/ public class SpringBootPlusGenerator { public static void main(String[] args) { CodeGenerator codeGenerator = new CodeGenerator(); // 公共配置 // 數據庫配置 codeGenerator .setUserName("root") .setPassword("root") .setDriverName("com.mysql.jdbc.Driver") .setDriverUrl("jdbc:mysql://localhost:3306/spring_boot_plus?useUnicode=true&characterEncoding=UTF-8&useSSL=false"); // 包信息 codeGenerator .setProjectPackagePath("io/geekidea/springbootplus") .setParentPackage("io.geekidea.springbootplus"); // 組件做者等配置 codeGenerator .setModuleName("foobar") .setAuthor("geekidea") .setPkIdColumnName("id"); // 生成策略 codeGenerator .setGeneratorStrategy(CodeGenerator.GeneratorStrategy.ALL) .setPageListOrder(true) .setParamValidation(true); // 生成實體映射相關代碼,可用於數據庫字段更新 // 當數據庫字段更新時,可自定義自動生成哪些那文件 codeGenerator .setGeneratorEntity(true) .setGeneratorQueryParam(true) .setGeneratorQueryVo(true); // 生成業務相關代碼 codeGenerator .setGeneratorController(true) .setGeneratorService(true) .setGeneratorServiceImpl(true) .setGeneratorMapper(true) .setGeneratorMapperXml(true); // 是否生成Shiro RequiresPermissions註解 codeGenerator.setRequiresPermissions(false); // 是否覆蓋已有文件 codeGenerator.setFileOverride(true); // 初始化公共變量 codeGenerator.init(); // 須要生成的表數組 // xxx,yyy,zzz爲須要生成代碼的表名稱 String[] tables = { "foo_bar" }; // 循環生成 for (String table : tables) { // 設置須要生成的表名稱 codeGenerator.setTableName(table); // 生成代碼 codeGenerator.generator(); } } }
生成的代碼結構sql
/src/main/java/io/geekidea/springbootplus/foobar
└── foobar ├── controller │ └── FooBarController.java ├── entity │ └── FooBar.java ├── mapper │ └── FooBarMapper.java ├── param │ └── FooBarQueryParam.java ├── service │ ├── FooBarService.java │ └── impl │ └── FooBarServiceImpl.java └── vo └── FooBarQueryVo.java
Mapper XML數據庫
/src/main/resources/mapper/foobar/FooBarMapper.xml
項目入口類apache
/src/main/java/io/geekidea/springbootplus/SpringBootPlusApplication.java
/** * spring-boot-plus 項目啓動入口 * @author geekidea * @since 2018-11-08 */ @EnableAsync @EnableScheduling @EnableTransactionManagement @EnableConfigurationProperties @EnableAdminServer @MapperScan({"io.geekidea.springbootplus.**.mapper"}) @SpringBootApplication public class SpringBootPlusApplication { public static void main(String[] args) { // 啓動spring-boot-plus ConfigurableApplicationContext context = SpringApplication.run(SpringBootPlusApplication.class, args); // 打印項目信息 PrintApplicationInfo.print(context); } }
http://127.0.0.1:8888/swagger-ui.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
SpringBootAdmin管理頁面
spring-boot-plus Swagger文檔頁面
http://47.105.159.10:8888/docs
tail -f -n 1000 /root/spring-boot-plus-server/logs/spring-boot-plus.log
spring-boot-plus is under the Apache 2.0 license. See the LICENSE file for details.