SpringBoot项目搭建(单体项目)

依赖

<parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.5.5</version>
      <relativePath/>
  </parent>

  <properties>
      <!--项目打包跳过test-->
      <maven.test.skip>true</maven.test.skip>
      <maven.compiler.source>8</maven.compiler.source>
      <maven.compiler.target>8</maven.compiler.target>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <lombok.version>1.18.26</lombok.version>
      <mybatis.plus.version>3.5.2</mybatis.plus.version>
      <mysql.version>8.0.30</mysql.version>
      <hutool.version>5.8.3</hutool.version>
      <fastjson.version>2.0.25</fastjson.version>
      <logback.version>1.2.3</logback.version>
      <jackson.version>2.14.2</jackson.version>
  </properties>

  <dependencies>

      <!--lombok-->
      <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>${lombok.version}</version>
      </dependency>
      <!--mybatis-plus-->
      <dependency>
          <groupId>com.baomidou</groupId>
          <artifactId>mybatis-plus-boot-starter</artifactId>
          <version>${mybatis.plus.version}</version>
      </dependency>
      <!--mysql驱动-->
      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>${mysql.version}</version>
      </dependency>
      <!--hutool工具类-->
      <dependency>
          <groupId>cn.hutool</groupId>
          <artifactId>hutool-all</artifactId>
          <version>${hutool.version}</version>
      </dependency>
      <!--fastjson-->
      <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>fastjson</artifactId>
          <version>${fastjson.version}</version>
      </dependency>
      <!--jackson-->
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-core</artifactId>
          <version>${jackson.version}</version>
      </dependency>
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-databind</artifactId>
          <version>${jackson.version}</version>
      </dependency>
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-annotations</artifactId>
          <version>${jackson.version}</version>
      </dependency>

      <!--web工程依赖依赖-->
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
      </dependency>

      <!--redis依赖-->
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-redis</artifactId>
      </dependency>
      <!--aop依赖-->
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-aop</artifactId>
      </dependency>

      <!--单元测试依赖-->
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
      </dependency>
      <dependency>
          <groupId>com.github.pagehelper</groupId>
          <artifactId>pagehelper-spring-boot-starter</artifactId>
          <version>1.4.1</version>
      </dependency>
      <!-- xxl-job 核心依赖 -->
      <dependency>
          <groupId>com.xuxueli</groupId>
          <artifactId>xxl-job-core</artifactId>
          <version>2.4.0</version>
      </dependency>

      <!--邮件发送-->
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-mail</artifactId>
      </dependency>

      <dependency>
          <groupId>com.alibaba.fastjson2</groupId>
          <artifactId>fastjson2</artifactId>
          <version>2.0.43</version>
      </dependency>
      <dependency>
          <groupId>com.google.zxing</groupId>
          <artifactId>core</artifactId>
          <version>3.4.1</version>
      </dependency>
      <dependency>
          <groupId>com.google.zxing</groupId>
          <artifactId>javase</artifactId>
          <version>3.4.1</version>
      </dependency>

</dependencies>

yml文件

# 服务端口号
server:
  port: 9898 #端口号配置
  servlet:
    context-path: / #访问路径

spring:
  application:
    name: ordersapi #应用名称
  datasource:
    username: root #用户名
    password: 1234 #用户密码
    driver-class-name: com.mysql.cj.jdbc.Driver #数据源
    url: jdbc:mysql://localhost:3306/day0326?serverTimezone=Asia/Shanghai&useTimezone=true&useUnicode=true&characterEncoding=utf8&nullCatalogMeansCurrent=true #连接地址
    type: com.zaxxer.hikari.HikariDataSource #连接池类型
# 日期格式与时区配置
  jackson:
    time-zone: GMT+8
    date-format: yyyy-MM-dd
# 图片上传配置
  upload:
    path: D:/pic/
#    servlet:
#      multipart:
#        max-file-size: 10MB #上传文件的大小
#        max-request-size: 100MB #一次请求的大小
        #resources:
        #static-locations:
        #file: ///D:/pic/
    file:
      staticAccessPath:
        /pic/**
      uploadRealPath:
        file:D:/pic/
#相关的eureka配置
eureka:
  client:
    register-with-eureka: true #注册到Eureka的注册中心
    fetch-registry: true #获取注册实例列表
    service-url:
      defaultZone: http://user:123456@localhost:8761/eureka/ #配置注册中心地址
      #defaultZone: http://user:user@localhost:8761/eureka/ #配置注册中心地址
      #defaultZone: http://user:user@node1:8762/eureka/,http://user:user@node2:8763/eureka/,http://user:user@node3:8764/eureka/

#---
##监控程序配置
#management:
#  endpoints:
#    web:
#      exposure:
#        include: '*' # health info
#      #base-path: actuator #默认访问的路径地址
#  endpoint:
#    health:
#      show-details: always
#
##连接的服务器端
#spring:
#  boot:
#    admin:
#      client:
#        url: http://localhost:9301 #配置admin-server地址
---
#日志
logging:
  file:
    name: userapi.log
    path: D:/opt/mycode/logs/
  level:
    root: info
---
#全局配置
ribbon:
  ConnectTimeout: 1000 #服务请求连接超时时间(毫秒)
  ReadTimeout: 3000 #服务请求处理超时时间(毫秒)
  OkToRetryOnAllOperations: true #对超时请求启用重试机制
  MaxAutoRetriesNextServer: 1 #切换重试实例的最大个数
  MaxAutoRetries: 1 # 切换实例后重试最大次数
  NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #修改负载均衡算法

#指定服务的配置
wish-userserver:
  ribbon:
    ConnectTimeout: 1000 #服务请求连接超时时间(毫秒)
    ReadTimeout: 3000 #服务请求处理超时时间(毫秒)
    OkToRetryOnAllOperations: true #对超时请求启用重试机制
    MaxAutoRetriesNextServer: 1 #切换重试实例的最大个数
    MaxAutoRetries: 1 # 切换实例后重试最大次数
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #修改负载均衡算法

#com.netflix.loadbalancer.RandomRule:从提供服务的实例中以随机的方式;
#com.netflix.loadbalancer.RoundRobinRule:以线性轮询的方式,就是维护一个计数器,从提供服务的实例中按顺序选取,第一次选第一个,第二次选第二个,以此类推,到最后一个以后再从头来过;
#com.netflix.loadbalancer.RetryRule:在RoundRobinRule的基础上添加重试机制,即在指定的重试时间内,反复使用线性轮询策略来选择可用实例;
#com.netflix.loadbalancer.WeightedResponseTimeRule:对RoundRobinRule的扩展,响应速度越快的实例选择权重越大,越容易被选择;
#com.netflix.loadbalancer.BestAvailableRule:选择并发较小的实例;
#com.netflix.loadbalancer.AvailabilityFilteringRule:先过滤掉故障实例,再选择并发较小的实例;
#com.netflix.loadbalancer.ZoneAwareLoadBalancer:采用双重过滤,同时过滤不是同一区域的实例和故障实例,选择并发较小的实例

# feign的服务降级与压缩配置
feign:
  hystrix:
    enabled: true #开启服务降级
  compression:
    request:
      enabled: false #是否对请求进行GZIP压缩
      mime-types: text/xml,application/xml,application/json #指定压缩的请求数据类型
      min-request-size: 2048 #超过该大小的请求会被压缩
    response:
      enabled: false #是否对响应进行GZIP压缩

# mybatis-plus配置
mybatis-plus:
  mapper-locations: classpath*:/mapper/**/*.xml #读取mapper的映射文件
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印的日志文件

#feign日志级别调试
#logging:
#  level:
#    org.example.wish.fegin.UserFegin: debug
---
# 链路追踪配置
#spring:
#  zipkin:
#    base-url: http://localhost:9411
#  sleuth:
#    sampler:
#      probability: 0.1 #设置Sleuth的抽样收集概率
---
# redis配置
spring:
  redis:
    host: localhost
    port: 6379
    database: 0
#---
## rocketmq配置
#rocketmq:
#  name-server: 127.0.0.1:9876 # rocketMQ 名称服务器
#  producer:
#    group: pay_order # 发送组
#    topic: payOrder  # topic 相当于一个地址
#    retry-times-when-send-failed: 5  # 错了以后重试几次
#  consumer:
#    group: test-consumer  #消费者组
#    topic: test-topic   # 消费topic
---
#邮箱配置
spring:
  mail:
    host: smtp.qq.com  #平台地址,这里用的是qq邮箱,使用其他邮箱请更换
    username: 1184895576@qq.com  #改成自己的邮箱
    password: xpywvabakozfjbig  #发送短信后它给你的授权码 填写到这里
    properties:
      mail:smtp:ssl:enalbe: true #这东西不用改
    default-encoding: utf-8  #编码格式
---
## kafka配置
#spring:
#  kafka:
#    bootstrap-servers: 192.168.184.129:9092
#    producer:
#      value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
##      acks: 1 #all 体现集群
#      #0 只要发送就认为成功  消息会丢失
#      #1 只要发送到leader就成功,如果此时leader的broker宕机,消息也会丢失
#      # -1/all 只能在集群中,才能体现出消息不会丢失 必须确保有2个及以上的follower
#      retries: 3 # 表示生产者在发送消息时,出现异常时的重试次数。默认值为0,表示不进行重试。
#      #可以将其设置为大于0的值,以避免由于网络等原因导致的消息丢失。
#    consumer:
#      value-deserializer: org.apache.kafka.common.serialization.ByteArrayDeserializer
#      auto-offset-reset: earliest
##      #latest 当enable-auto-commit: off的时候,从topic最早的可用偏移量开始消费。
##      #earliest 从topic最新的消息偏移量开始消费。
##      #exception
##      #none 如果消费者组找不到之前的消费偏移量,抛出异常。
##      #latest,earliest对于同一个消费者组,若已有提交的offset,则从提交的offset开始接着消费
#      enable-auto-commit: false #false 交给spring提交 on kafka提交 手动提交
##      #auto-commit-interval: 5000 #自动提交时间
#    listener:
#      ack-mode: MANUAL_IMMEDIATE  #这个只有当enable-auto-commit: false才能生效
      #spring-kafka组件有下面几种AckMode提交模式:都是针对.enable-auto-commit设置为false才适用,如果true是kafka根据自身配置来提交的。默认AckMode是BATCH
      #MANUAL  poll()拉取一批消息,处理完业务后,手动调用Acknowledgment.acknowledge()先将offset存放到map本地缓存,在下一次poll之前从缓存拿出来批量提交 这个只有当enable-auto-commit: false才能生效
      #MANUAL_IMMEDIATE    每处理完业务手动调用Acknowledgment.acknowledge()后立即提交
      #RECORD  当每一条记录被消费者监听器(ListenerConsumer)处理之后提交
      #BATCH   当每一批poll()的数据被消费者监听器(ListenerConsumer)处理之后提交
      #TIME    当每一批poll()的数据被消费者监听器(ListenerConsumer)处理之后,距离上次提交时间大于TIME时提交
      #COUNT   当每一批poll()的数据被消费者监听器(ListenerConsumer)处理之后,被处理record数量大于等于COUNT时提交
      #COUNT_TIME  TIME或COUNT满足其中一个时提交
#---
# #elasticsearch配置
#spring:
#  elasticsearch:
#    rest:
#      uris: http://192.168.184.128:9200
#---
## 工作流配置
#spring:
#  activiti:
#    #1.flase:默认值。activiti在启动时,对比数据库表中保存的版本,如果没有表或者版本不匹配,将抛出异常
#    #2.true: activiti会对数据库中所有表进行更新操作。如果表不存在,则自动创建
#    #3.create_drop: 在activiti启动时创建表,在关闭时删除表(必须手动关闭引擎,才能删除表)
#    #4.drop-create: 在activiti启动时删除原来的旧表,然后在创建新表(不需要手动关闭引擎)
#    database-schema-update: true
#    #检测历史表是否存在 activiti7默认没有开启数据库历史记录 启动数据库历史记录,需要手动配置开启
#    db-history-used: true
#    #记录历史等级 可配置的历史级别有none, activity, audit, full
#    #none:不保存任何的历史数据,因此,在流程执行过程中,这是最高效的。
#    #activity:级别高于none,保存流程实例与流程行为,其他数据不保存。
#    #audit:除activity级别会保存的数据外,还会保存全部的流程任务及其属性。audit为history的默认值。
#    #full:保存历史数据的最高级别,除了会保存audit级别的数据外,还会保存其他全部流程相关的细节数据,包括一些流程参数等。
#    history-level: full
#    #校验流程文件,默认校验resources下的processes文件夹里的流程文件
#    check-process-definitions: false
---
# windows pdf 预览 下载 签章 数字签名
pdf:
  enable: true
  domain: http://localhost:${server.port}/
  pdf-ks: D:\test\store\ks
  pdf-ks-pass: 123456
  x: 400
  y: 400
  width: 200
  height: 200
  sign-pic-name: sign.png
  path: D:\test\sign\
  font: D:\test\font\simsun.ttc
#---
## linux pdf 预览 下载 签章 数字签名
#pdf:
#  enable: true
#  domain: 192.168.184.129:9100
#  pdf-ks: /opt/mycode/store
#  pdf-ks-pass: 123456
#  x: 400
#  y: 400
#  width: 200
#  height: 200
#  sign-pic-name: /opt/mycode/sign.png
#  path: /opt/mycode/
#  font: /opt/mycode/font/simsun.ttc
---
# xxl-job配置
#logging:
#  config: classpath:logback.xml
xxl:
  job:
    admin:
      addresses: http://127.0.0.1:7777/xxl-job-admin #xxl-job-admin地址
    accessToken: default_token
    executor:
      appname: wish-executor  #执行器名称
      address:  ### xxl-job, access token
      ip:
      port: 9999 #端口号
      logpath: /data/applogs/xxl-job/jobhandler #路径地址
      logretentiondays: 30
---
# 大文件上传配置
spring:
  servlet:
    multipart:
      max-file-size: 2048MB #上传大小限制
      max-request-size: 3000MB # 请求大小限制
file:
  enable: true
  path: D:/uploadPath/
  domain: http://localhost:${server.port}/uploadPath/
---
spring:
  mvc:
    static-path-pattern: /uploadPath/**
  resources:
    static-locations: file:D:/uploadPath/
---
spring:
  profiles:
    active: xxl,mail

启动类

响应结果集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值