栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

新项目如何技术选型以及落地实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

新项目如何技术选型以及落地实现

目录

一、技术选型概述

二、确定Spring家族依赖的版本号

1.springcloud

2.spring cloud alibaba

3.springboot

三、确定数据库信息

1.MySQL相关

1.1  官网推荐,兼容性好

1.2  Maven使用频率较高:

2.数据库连接池

2.1  Druid与C3P0的比较

2.2  druid依赖的版本使用:1.2.6

四、搭建整个工程

1.父项目的pom依赖

2.子模块的依赖

3.部分目录结构 

五、其他依赖

推荐阅读

如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦。


一、技术选型概述

技术选型的基本原则:求稳,适当求新。

根据业务需求,选用B/S、微服务架构,使用Java作为后端开发语言,Vue作为前端开发。

项目管理工具使用禅道,内容管理工具使用Confluence,代码协同工具使用Git,

数据库使用MySQL,缓存使用Redis,集成开发环境使用IDEA。

之前用过的,建议依旧沿用。

以上内容只是根据业务确定。


二、确定Spring家族依赖的版本号

SpringBoot、SpringCloud、SpringCloud Alibaba皆选用官网最稳定,最新版本。

1.springcloud

官网地址:Spring Cloud

2.spring cloud alibaba

官网地址:Spring Cloud Alibaba

3.springboot

官网地址:Spring Boot

SpringBoot选用2.3.12.RELEASE的原因是:SpringCloud Hoxton.SR12版本推荐使用 2.3.12.RELEASE版本。


三、确定数据库信息

1.MySQL相关

MySQL服务器的版本是5.6(之前安装的继续沿用)

mysql依赖的版本使用:8.0.16

1.1  官网推荐,兼容性好

MySQL :: MySQL Connector/J 5.1 Developer Guide :: 2 Connector/J Versions, and the MySQL and Java Versions They Require

MySQL :: MySQL Connector/J 8.0 Developer Guide :: 1 Overview of MySQL Connector/J

以下是 Connector/J 8.0的一些兼容性信息:

JDBC版本:Connector/J 8.0实现JDBC 4.2。当Connector/J 8.0与JDBC更高版本的库一起工作时,对于仅由JDBC 4.3和更高版本支持的方法调用,它会返回SQLFeatureNotSupportedException。

MySQL服务器版本:Connector/J 8.0支持MySQL 5.6、5.7和8.0。

JRE版本:Connector/J 8.0支持JRE 8或更高版本。

编译需要JDK:编译Connector/J 8.0需要JDK 8.0或更高版本。此外,在连接到MySQL服务器时,可能需要定制JSSE提供程序来使用一些更高版本的TLS和密码套件

强烈建议将 MySQL Connector/J 8.0 与 MySQL Server 8.0、5.7 和 5.6 一起使用。请升级到 MySQL Connector/J 8.0。

1.2  Maven使用频率较高:

2.数据库连接池

2.1  Druid与C3P0的比较

张有博-CSDN博客_java-数据库连接池技术">Java-数据库连接池技术_小小张自由—>张有博-CSDN博客_java-数据库连接池技术

2.2  druid依赖的版本使用:1.2.6

druid与druid-spring-boot-starter 的区别

作用是一样的,都是连接池提供连接,里边的配置参数都是一样的;

druid-spring-boot-starter只是在druid基础上进行了一次封装,专门用来整合spring-boot项目;

如果springboot项目想使用druid也是可以的,但是需要手动编写配置类并注入到bean中,并加载对应的配置参数;

但是不建议,明明有现成封装好的jar,就直接使用就好了!!!

四、搭建整个工程

1.父项目的pom依赖


    4.0.0

    com.tfjybj
    daily
    1.0.0-SNAPSHOT
    pom

    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.12.RELEASE
         
    
    
        daily-statistics
    

    
    
        8
        8
        2.3.12.RELEASE
        Hoxton.SR12
        2.1.2.RELEASE
        8.0.16
        1.2.6
        2.9.2
        1.18.8
        2.2.0
        1.2.58
    




    
    
    
        

            
            
            
                org.springframework.boot
                spring-boot-dependencies
                ${spring.boot.version}
                pom
                import
            

            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring.cloud.version}
                pom
                import
            

            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                ${spring.cloud.alibaba.version}
                pom
                import
            

            
            
                io.springfox
                springfox-swagger2
                ${swagger.version}
            
            
                io.springfox
                springfox-swagger-ui
                ${swagger.version}
            
            
            
                com.alibaba
                fastjson
                ${fastjson.version}
            
            
            
                org.projectlombok
                lombok
                ${lombok.version}
            



        
    

    
    
    


    

2.子模块的依赖


    
        daily
        com.tfjybj
        1.0.0-SNAPSHOT
    
    4.0.0

    daily-statistics

    
        8
        8
    

    

        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
        


        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-data-jpa
        
        





        
            org.springframework.boot
            spring-boot-starter-test
        

        
        
            mysql
            mysql-connector-java
            8.0.16
        

        
        
            com.alibaba
            druid-spring-boot-starter
            1.2.6
        

         
        
            io.springfox
            springfox-swagger2
        
        
            io.springfox
            springfox-swagger-ui
        

        
        
            org.projectlombok
            lombok
        

        
        
            com.alibaba
            fastjson
        

        
            com.xuxueli
            xxl-job-core
            2.0.2
        


    

    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                2.3.12.RELEASE
            
        
    


2.1 nacos中的部分配置

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      url: jdbc:mysql://mysql.xxx.tech/daily_prod
      username: roots
      password: roots
      filter:
        config:
          enabled: true #数据库过滤器是否开启
      connect-properties:
        druid.statmergeSql: true  #打开mergeSql功能
        druid.stat.slowSqlMillis: 5000  #慢SQL记录
        config.decrypt: false #是否解密
        config.decrypt.key: ${custom.publicKey} #解密的公钥
  jpa:
    hibernate:
      #      实体类发生改变,数据表会更新
      ddl-auto: update
      #      操作实体对象的时候,会跟我们生成sql语句: false 不生成sql语句:
      show-sql: true

2.2  Bootstrap中部分的配置

server:
  port: 9000

spring:
  cloud:
    nacos:
      discovery:
        server-addr: nacos.xxx.tech:80
        namespace: Daily-dev
      config:
        server-addr: nacos.xxx.tech:80
        namespace: Daily
        prefix: statistics
        file-extension: yml
  application:
    name: Daily-statistics

xxl:
  job:
    admin:
      addresses: http://xxljob.xxx.tech:8081/job-admin-dev  #xxljob调度中心部署  例如:http://127.0.0.1:8080/xxl-job-admin
    executor:
      appname: daily-test #xxljob配置的执行器名称,
      ip:             #执行器IP,默认为空表示自动获取IP
      port: 9998 #xxljob配置的端口号,默认为9999
      logpath: /data/xxl-job/jobhandler  #执行器运行日志文件存储磁盘路径
      logretentiondays: -1  #调度中心日志表数据保存天数,过期日志自动清理;限制大于等于7时生效,否则, 如-1,关闭自动清理功能
    accessToken: #调度中心通讯TOKEN [选填]:非空时启用


logging:
  level:
    com.alibaba: warn

3.部分目录结构 

五、其他依赖

其他依赖的版本号:没有仔细研究,使用我们其他项目中常用的。其实也可以直接去Maven官网上找。https://mvnrepository.com/

或者去github社区看看活跃度。没活跃度的就别用了,容易出错,出错不易解决。

推荐阅读

使用到了nacos做注册中心,配置中心,配置过程请见博客:张有博-CSDN博客_springboot集成nacos启动报错">SpringBoot项目集成nacos,并启动报错Failed to configure a DataSource: ‘url‘ attribute is not speci_小小张自由—>张有博-CSDN博客_springboot集成nacos启动报错

使用到了xxljob管理定时任务,配置过程请见博客:张有博-CSDN博客">SpringBoot项目集成xxljob全纪录(图文详解)_小小张自由—>张有博-CSDN博客

使用到了sonarqube检查代码质量,配置过程请见博客:张有博-CSDN博客_sonarqube使用方法">配置sonarqube的全过程_小小张自由—>张有博-CSDN博客_sonarqube使用方法

对异常进行了统一处理,配置过程请见博客:张有博-CSDN博客">Spring Boot 统一处理全局异常_小小张自由—>张有博-CSDN博客

通过AOP实现全局日志打印,配置过程请见博客:

张有博-CSDN博客">通过AOP实现全局日志打印_小小张自由—>张有博-CSDN博客

如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/656971.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号