阿里P8推荐的SpingBoot学习手册+Git开源项目实践分享,还不收藏

随着框架使用的不断的更新,后面使用SpringBoot会多,这边准备构建一个SpringBoot项目使用的模版。 所谓模版,和以前同样,就是一个最简单的项目,包含全部最简单的空实现。css

下面会有详细的步骤给你们介绍,并在最后有惊喜相待哦!html

模版目的

  • 一、不熟悉SpringBoot项目的人,在学习了SpringBoot的基础部分以后,能根据这个模版快速上手
  • 二、开发团队的项目结构和使用装备的统一,包括目录结构,使用的一些组件上面的统一
  • 三、不想重复造轮子,每次新建一个项目很麻烦

目录说明

src/main/java/

存放java代码,其中SpringBootTemplateApplication为SpringBoot启动类java

src/main/resources/

application.yml 全局配置文件
application-data.yml 数据源相关配置文件
application-mvc.yml 页面mvc相关配置文件
application-config.yml 须要引入的一些全局配置mysql

application-dev.yml 开发环境配置
application-prod.yml 生产环境配置linux

src/main/resources/static

存放各类静态资源文件,如css,js,image等git

src/main/resources/templates

存放使用的页面文件,各类html等github

src/main/resources/mapper

存放mybatis的sql语句xml文件redis

数据结构

表结构定义写法以下spring

SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for user_tab -- ---------------------------- DROP TABLE IF EXISTS `user_tab`; CREATE TABLE `user_tab` ( `id` int(11) NOT NULL AUTO_INCREMENT, `val` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; SET FOREIGN_KEY_CHECKS = 1;

注意事项

  1. 项目启动前本机须要启动redis,不然会出现ERRROR
  2. 测试地址为http://127.0.0.1:8080/test,测试方法所有在UserController中

RedisUtil

新Redis操做工具类,暴露以下操做方法sql

 

CacheConfig简单缓存

一、启动类上须要加@EnableCaching注解
二、在须要执行缓存的类上面写上缓存前缀名称
@CacheConfig(cacheNames="user")
三、在查询方法上使用@Cacheable(key = "'list'")配置键的名称
四、在修改方法上使用@CachePut(key = "'list'")配置键的名称
http://127.0.0.1:8080/cache/user/list
http://127.0.0.1:8080/cache/user/add
http://127.0.0.1:8080/cache/user/delete

FileHandleUtil

文件上传工具类,上传到与jar包同级的static目录下,开发环境和服务器环境都可


方法:upload

入参:
inputStream 文件流
path 文件路径,如:image/
filename 文件名,如:test.jpg

出参:
最后文件存放路径为:static/upload/image/test.jpg
文件访问路径为:http://127.0.0.1:8080/upload/image/test.jpg
该方法返回值为:/upload/image/test.jpg


方法:delete

入参:
path: 文件路径,是upload方法返回的路径如:/upload/image/test.jpg


关联配置:

spring: # 静态资源路径 resources: static-locations: classpath:static/,file:static/ 

Dockerfile使用步骤

一、使用gradle的bootRepackage进行打包
二、Dockerfile目录下使用命令:docker build -t springboot:v1.0 .
三、启动本地redis,并修改application-dev.yml中redis的IP地址为宿主机的IP地址如:192.168.1.111,mysql的IP地址同理
四、使用命令:docker run --name springbootTemplate -d -p 8080:8080 springboot:v1.0
五、直接访问测试地址便可

注意事项

  • Dockerfile中的APP_NAME对应jar.baseName-jar.version
  • Dockerfile中的APP_PORT&EXPOSE根据项目状况填写

快速启动和中止应用的脚本

app.sh脚本为快速启动应用和关闭应用的脚本,使用方法以下:

首先,将你须要发布的jar包,和含有上述内容的脚本app.sh,上传至linux服务器,注意二者必须处于同一目录,并给予app.sh相应执行权限,chmod 777 app.sh

而后就能够执行脚本,命令以下

 

脚本中能够修改的地方:

nohup java -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Xms512M -Xmx4G -jar $appName > /dev/null 2>&1 &


这是最终jar的启动命令,在这里你须要对gc、Xms、Xmx等针对你机器的实际状况修改,还能够添加你所须要的启动参数等。

for i in {5..1}
这里是设置restart的时候等待的时间,由于有的项目在5秒以内可能没有办法正常中止,因此能够调整为10秒,保证应用确实正常中止后再启动

  • 脚本至更新1.0.1
  1. 启动中止优化
    ./app.sh start 默认会启动当前目录下最后放入的jar包,stop同理
  2. 启动中止参数优化
    ./app.sh start springBootTemplate-0.0.1-SNAPSHOT.jar后面能够跟上项目名称,启动或中止指定的项目
  3. 重启指令优化,方便从新发布服务
    ./app.sh restart若是当前目录下有两个jar包,会中止前一个放入的jar并备份,而后启动最新放入的jar
    如:当前目录状况为
    app1.jar 放入文件夹时间为12:00
    app2.jar 放入文件夹时间为13:00
    app.sh
    执行重启指令后,先中止app1.jar,而后备份app1.jar,而后启动app2.jar

源码已经上传github,而对于SPringleBoot,能看到这里的朋友应该对这个技术很感兴趣吧,这里也给你们准备了一些资料

 

相应的文章已经整理造成文档,git扫码获取资料看这里

https://gitee.com/biwangsheng/personal.git

目录

 

详细介绍

 

 

 

相关文章
相关标签/搜索