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


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

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

    模版目的

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

    目录说明

    src/main/java/

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

    src/main/resources/

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

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

    src/main/resources/static

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

    src/main/resources/templates

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

    src/main/resources/mapper

    存放mybatis的sql语句xml文件

    数据结构

    表结构定义写法如下

    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操作工具类,暴露如下操作方法

     

    CacheConfig简单缓存

    1、启动类上需要加@EnableCaching注解
    2、在需要执行缓存的类上面写上缓存前缀名称
    @CacheConfig(cacheNames="user")
    3、在查询方法上使用@Cacheable(key = "'list'")配置键的名称
    4、在修改方法上使用@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使用步骤

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

    注意事项

    • 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

    目录

     

    详细介绍

     

     

     

  • 相关阅读:
    第十一篇:Mysql系列
    mysql八:ORM框架SQLAlchemy
    mysql七:视图、触发器、事务、存储过程、函数
    mysql六:数据备份、pymysql模块
    工厂方法模式
    execution表达式
    CentOS系统下安装SVN及常用命令
    Spring Boot 表单验证、AOP统一处理请求日志、单元测试
    SSH文件上传代码片段
    JPA 实体映射
  • 原文地址:https://www.cnblogs.com/bwscode/p/13527017.html
Copyright © 2020-2023  润新知