最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot創(chuàng)建時常用的依賴詳解

 更新時間:2025年03月11日 11:06:55   作者:m0_74823131  
本文介紹了Spring?Boot項目中常用依賴的配置及作用,涵蓋了父依賴、Web應(yīng)用、測試、數(shù)據(jù)庫、MyBatis、連接池、JSON處理、Lombok、AOP、校驗、監(jiān)控、工具包、打包配置、多配置文件以及熱部署等

新建SpringBoot Maven項目中pom常用依賴配置及常用的依賴

1.springboot項目的總(父)依賴大全

<parent>
        <artifactId>spring-boot-dependencies</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.3.3.RELEASE</version>
</parent>

當(dāng)我們使用 spring 或 spring-boot 開發(fā)項目時,需要引入很多依賴,包括 spring 本身的組件、各種 spring-boot-starter、以及其它第三方依賴(如:slf4j、redis)。依賴多了,版本的選擇是個問題,就怕哪個版本選擇的不對導(dǎo)致出現(xiàn)一些意想不到的 BUG。

spring-boot-dependencies的作用主要是起到約束版本的作用,在這個包里面聲明了各種版本號,供子項目去引用。類似spring-cloud-dependencies和spring-cloud-alibaba-dependencies則是去聲明cloud和cloud-alibaba組件的版本。具體有些什么可以點進(jìn)去看看就知道了。如果當(dāng)下面的< dependency >中用到就可以不用配置版本號< version >

2.可執(zhí)行的 Web 應(yīng)用且內(nèi)含SpringBoot核心啟動器

包含各種springboot的配置日志等,創(chuàng)建項目時會自動引入該依賴

  • 支持注解:@controller、@Service、@Component、@Resource 是spring的,所以spring boot創(chuàng)建完成后就可以使用(由spring-boot-starter支持)
  • 支持注解:@RestController、@RequestMapping、@ResponseBody、@JsonFormat(由spring-boot-starter-web支持)
<!--Spring Boot Web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

spring-boot-starter-web 是什么?

spring-boot-starter-web是一個依賴庫,Spring Boot 是在 Spring 的基礎(chǔ)上創(chuàng)建的一個開原框架,它提供了 spring-boot-starter-web (web場景啟動器)來為web開發(fā)予以支持。spring-boot-starter-web 提供了嵌入的Servlet容器以及SpringMVC提供了大量自動配置,可以適用于大多數(shù)web開發(fā)場景。

只要我們在Spring Boot 項目中的 pom.xml 中引入了spring-boot-starter-web依賴,即使不進(jìn)行任何配置,也可以使用Spring MVC 進(jìn)行 Web 開發(fā)。Spring Web的啟動程序使用Spring MVC, REST和Tomcat作為默認(rèn)的嵌入式服務(wù)器。單個spring-boot-starter-web依賴關(guān)系可傳遞地獲取與Web開發(fā)相關(guān)的所有依賴關(guān)系。它還減少了構(gòu)建依賴項計數(shù)。

配置了該依賴就不用再配置

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>

因為spring-boot-starter-web包含了spring-boot-starter等,可以點進(jìn)去看看

3.junit測試,創(chuàng)建項目時會自動引入該依賴

用于編寫springboot Test測試類

SpringBoot Test測試類的使用

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

4.mysql數(shù)據(jù)配置

配置mysql依賴時,不寫版本號xx.xx.xx的話,就會引入mysql依賴的默認(rèn)版本

  • SpringBoot2.1.x以后默認(rèn)使用的是mysql 8版本,
  • SpringBoot2.1.x之前默認(rèn)使用的是mysql 5.x版本

在配置數(shù)據(jù)源的時候,就有差異了:

  • 配置低版本 5.xx.xx:
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
  • 配置高版本 8.xx.xx:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/student?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456

<!--MySQL 連接組件-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

5.mybatis

數(shù)據(jù)處理層持久層框架,連接數(shù)據(jù)庫

著重點放在了編寫sql上,而不是通過jdbc傳統(tǒng)方式來不斷操作Connection、Statment、ResultSet

注解@Mapper 指定映射接口

application.yaml配置文件中配置自動識別的xml:

mybatis:

mapper-locations: classpath:mapper/**/*.xml
type-aliases-package: run.leave.mapper
<!--MyBaits-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.2</version>
        </dependency>

8.Druid連接池

		<!--Druid-->
		<!--可以不配這個因為druid-spring-boot-starter里面已經(jīng)有了,隨便帶著一下這個依賴,代碼可讀性高一點,反正對其他啥也沒影響-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.8</version>
        </dependency>

        <!--    Druid Spring Boot 組件-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.8</version>
        </dependency>

在yaml文件中配置使用:

spring:
  datasource:
    #   數(shù)據(jù)源基本配置
    url: jdbc:mysql://localhost:3306/hotel?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
  #   數(shù)據(jù)源其他配置
    druid:
      #     配置初始化大小、最小、最大線程數(shù)
      initialSize: 5
      minIdle: 5
      #     CPU核數(shù)+1,也可以大些但不要超過20,數(shù)據(jù)庫加鎖時連接過多性能下降
      maxActive: 20
      #     最大等待時間,內(nèi)網(wǎng):800,外網(wǎng):1200(三次握手1s)
      maxWait: 60000
      timeBetweenEvictionRunsMillis: 60000
      #     配置一個連接在池中最大空間時間,單位是毫秒
      minEvictableIdleTimeMillis: 300000
      validationQuery: SELECT 1
      testWhileIdle: true
      #     設(shè)置從連接池獲取連接時是否檢查連接有效性,true檢查,false不檢查
      testOnBorrow: true
      #     設(shè)置從連接池歸還連接時是否檢查連接有效性,true檢查,false不檢查
      testOnReturn: true
      #     可以支持PSCache(提升寫入、查詢效率)
      poolPreparedStatements: true
      #   配置監(jiān)控統(tǒng)計攔截的filters,去掉后監(jiān)控界面sql無法統(tǒng)計,'wall'用于防火墻
      filters: stat,wall,log4j
      #     保持長連接
      keepAlive: true
      maxPoolPreparedStatementPerConnectionSize: 20
      useGlobalDataSourceStat: true
      connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

7.Json格式轉(zhuǎn)換工具Fastjson

Fastjson 是一個 Java 庫,可以將 Java 對象轉(zhuǎn)換為 JSON 格式,當(dāng)然它也可以將 JSON 字符串轉(zhuǎn)換為 Java 對象。

Java中 Json、String、jsonObject、jsonArray格式之間互相轉(zhuǎn)換

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.78</version>
        </dependency>

8.lombook

lombok最優(yōu)秀的就是注解了,一個注解就干掉了很多代碼

實體類中的注解.

  • @Data :直接可以省略了Get、Set方法
  • @Slf4j :不需要單獨引入日志依賴和配置日志,直接 log.info( ) 打印日志

如何在IDE編譯器 中使用lombok插件?

  • idea中可以直接在編譯器中搜索下載,就不多闡述了
  • eclipse則需要從官網(wǎng)下載lombok.jar包,然后雙擊啟動jar包,逐步操作,指向eclisp.exe,重啟eclipse即可
<!--LomBok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

9.面向切面編程AOP

支持的注解:@AspectJ、@Pointcut、通知注解(如:@Before、@After等)、@Aspect和自定義注解

  • spring-boot-starter-aop及其使用場景說明
  • SpringBoot 中的 Aop 注解使用+ 自定義注解
<!--Spring Boot Aop-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>

10.Validation校驗參數(shù)的實現(xiàn)

支持的注解:@Max,@Min等

常用注解和demo

<!--Spring Validation-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

11.Actuator 監(jiān)控

主要是服務(wù)器運維使用,開發(fā)過程不常用

springboot 監(jiān)控 Actuator 的設(shè)置

<!--Spring Boot Actuator-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

12.hutool工具包

提供了很多封裝方法供開發(fā)者使用

<!--Hutool-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.4.7</version>
        </dependency>

13.jupiter

其依賴包含了junit-jupiter-api、junit-jupiter-engine、junit-vintage-engine

<!--Junit-->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <scope>test</scope>
        </dependency>

14.打包配置

用于生成部署到服務(wù)器的包

JAVA項目在服務(wù)器部署過程

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

15.多yaml文件配置

指定其使用那個文件,不配置下面的profiles,但創(chuàng)建的文件格式形如這樣也是可用的

<profiles>
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <profilesActive>dev</profilesActive>
            </properties>
        </profile>
        <profile>
            <id>pro</id>
            <properties>
                <profilesActive>pro</profilesActive>
            </properties>
        </profile>
    </profiles>

16.使用properties標(biāo)簽統(tǒng)一編碼和JAVA版本

<!--統(tǒng)一編碼和JAVA版本-->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <java.version>1.8</java.version>
    </properties>

17.mybatis-plus

在mybatis基礎(chǔ)上的升級版工具,避免了使用mybatis時需要編寫大量的xml文件

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.2</version>
</dependency>

18.springboot熱部署

修改java代碼后,不用重啟項目就能直接最新測試,省略了不斷修改代碼不斷重啟項目的麻煩

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 實戰(zhàn)分布式醫(yī)療掛號系統(tǒng)之整合Swagger2到通用模塊

    實戰(zhàn)分布式醫(yī)療掛號系統(tǒng)之整合Swagger2到通用模塊

    這篇文章主要為大家介紹了實戰(zhàn)分布式醫(yī)療掛號系統(tǒng)之整合Swagger2到通用模塊,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • JVM中四種GC算法案例詳解

    JVM中四種GC算法案例詳解

    這篇文章主要介紹了JVM中四種GC算法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Java中MD5的使用代碼示例

    Java中MD5的使用代碼示例

    這篇文章主要給大家介紹了關(guān)于Java中MD5的使用示例,MD5加密是一種常見的加密方式,我們經(jīng)常用在保存用戶密碼和關(guān)鍵信息上,需要的朋友可以參考下
    2023-08-08
  • java和c/c++ 數(shù)據(jù)類型長度的比較

    java和c/c++ 數(shù)據(jù)類型長度的比較

    本篇文章主要是對java和c/c++ 數(shù)據(jù)類型長度的進(jìn)行了詳細(xì)的比較。需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • java 實現(xiàn)定時的方法及實例代碼

    java 實現(xiàn)定時的方法及實例代碼

    這篇文章主要介紹了java 定時任務(wù)詳細(xì)介紹及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Spring Cloud如何使用Feign構(gòu)造多參數(shù)的請求

    Spring Cloud如何使用Feign構(gòu)造多參數(shù)的請求

    這篇文章主要介紹了Spring Cloud如何使用Feign構(gòu)造多參數(shù)的請求,以GET以及POST方法的請求為例進(jìn)行講解,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 詳解Springboot應(yīng)用啟動以及關(guān)閉時完成某些操作

    詳解Springboot應(yīng)用啟動以及關(guān)閉時完成某些操作

    這篇文章主要介紹了詳解Springboot應(yīng)用啟動以及關(guān)閉時完成某些操作,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • Java設(shè)計模式探究之觀察者模式詳解

    Java設(shè)計模式探究之觀察者模式詳解

    這篇文章主要為大家詳細(xì)介紹了JAVA的觀察者模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-08-08
  • 淺析Java中線程的創(chuàng)建和啟動

    淺析Java中線程的創(chuàng)建和啟動

    這篇文章運用實例代碼介紹了Java中線程的創(chuàng)建和啟動,非常詳細(xì),有需要的朋友們可以參考借鑒,下面一起來看看。
    2016-08-08
  • 淺談java指令重排序的問題

    淺談java指令重排序的問題

    下面小編就為大家?guī)硪黄獪\談java指令重排序的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09

最新評論

开封市| 饶河县| 花垣县| 莲花县| 伊通| 齐河县| 桂东县| 孝昌县| 罗平县| 册亨县| 民县| 罗田县| 五大连池市| 涿鹿县| 富蕴县| 托里县| 忻城县| 常熟市| 五家渠市| 独山县| 浦城县| 阳曲县| 砚山县| 天门市| 喀喇沁旗| 遂昌县| 阜康市| 阳朔县| 固安县| 遂平县| 佛学| 贺州市| 肃北| 丹寨县| 中西区| 禄丰县| 灵宝市| 榕江县| 沽源县| 大余县| 辰溪县|