springboot之腾讯云服务器部署jar

最近使用springboot开发后端微服务,想打包一个jar放在我的腾讯云服务器上,结果遇到2点小问题,这里记录一下:


1、打包jar时aplication.yml的配置问题

这里我配置了3个版本,一个为dev版本,一个prod版本,一个mine版本(用于测试环境)。
这里写图片描述

application.yml中配置使用哪个版本:

spring:
  profiles:
    active: prod

application-prod.yml主要配置了spring的一些内容,以及数据库和mybatis的一些配置

server:
  address: 10.1.42.1
  #配置端口号
  port: 8090
  #配置连接超时时间60分钟,默认是30分钟
  connection-timeout: 60
  compression:
    enabled: true
  tomcat:
    #tomacat临时文件存放路径,默认是在c盘
    basedir: E:/springboot/tomcat-tmp
    #tomacat的URI编码
    uri-encoding: UTF-8
    #tomacat最大线程数,默认是200
    #max-threads: 250


spring:
  datasource:
    url: jdbc:mysql://localhost:3306/ccbhouse?characterEncoding=utf8
    username: 我的数据库用户名
    password: 我的数据库密码
    driver-class-name: com.mysql.jdbc.Driver
  #配置html的模板路径,不配置的话,无法访问html
  thymeleaf:
    prefix: classpath:/templates/
    suffix: .html
    #关闭缓存及时刷新,上线时cache要改为true
    cache: false
  servlet:
    multipart:
      #设置文件size为-1,表示不限制上传文件大小
      max-file-size: -1
      max-request-size: -1
      location: E:\springboot\images\
  mvc:
    #配置静态文件映射路径,不配置的话,static文件下的东西无法引用
    static-path-pattern: /**
  resources:
    static-locations: classpath:/META-INF/resources/,classpath:/META-INF/resources/webjars/,classpath:/resources/,classpath:/static/,classpath:/public/,file:${spring.servlet.multipart.location}


#mybaits-plus配置,修改主键类型,mapper.xml、type 别名等
mybatis-plus:
  mapper-locations: classpath:/mapper/*Mapper.xml
  typeAliasesPackage: com.grg.entity
  global-config:
    #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
    id-type: 0
    #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
    field-strategy: 0
    #驼峰下划线转换
    db-column-underline: false
    #刷新mapper 调试神器
    refresh-mapper: true
    #数据库大写下划线转换
    #capital-mode: true
  configuration:
    map-underscore-to-camel-case: false
    cache-enabled: true

替换了其中的地址

server:
  address: 腾讯云外网ip

结果打包时,运行不成功,一直无法成功运行,网络基础太弱,这里应该是内网ip,浪费了好几个小时。

server:
  address: 腾讯云内网ip

maven 命令打包
(1)先clean一下

mvn clean

(2)然后打包

mvn package

ok,打包完毕。
部署:直接用命令 java -jar xxxx.jar启动服务jar。
测试:然后通过 <外网ip:端口号> 访问,一切ok

2、数据库用户的配置

连接数据库时,我想使用loacalhost来连接,不想使用ip地址,也是想保护点隐私。

于是修改了数据库连接

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/ccbhouse?characterEncoding=utf8
    username: 服务端数据库用户名
    password: 服务端数据库密码
    driver-class-name: com.mysql.jdbc.Driver

结果,打包各种打包不了。打包时一直报错。
原来是springboot在打包时,会启动校验一下,每次校验到数据库连接就报错,因为我本地没有服务端数据库的用户名和密码

于是在自己本机的数据库上建了一个和服务器数据库一样的用户名和密码,好了打包成功。
这种仅应用在服务器和数据库在一台服务器上的情况。

当数据库和服务器分别是不同的服务器时,千万不能用localhost哦。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐