日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

springboot导包显示不存在_(一)SpringBoot搭建基本后端应用

發布時間:2023/12/20 javascript 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot导包显示不存在_(一)SpringBoot搭建基本后端应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

boot在計算機術語中是啟動的意思,SpringBoot也就是Spring的啟動器。

稍有經驗的JavaWeb程序員對于傳統SSM結構的MVC應用,大多數最不好的體驗就是搭建一個項目需要進行大量的配置。稍有不慎就可能采坑。更關鍵的是有些配置基本就不會去進行定制化修改。為了解決這個問題,SpringBoot出世了。就如同我們所想的,SpringBoot給我們進行了大量的默認配置,從而達到了我們部署一個web項目,只需要下幾個jar包然后直接運行即可。堪稱JavaWeb程序員的新世紀福音。我盡可能的將文章分為實戰篇和解析篇。實戰文章里面只會涉及到整體的結構,不會過多的闡述細節。比如下面:

要搭建一個基本的后臺應用,放在以前我們可能要考慮以下幾個方面:

1、web應用的配置

2、maven的配置

3、Spring和SpringMVC的配置

4、日志配置

5、靈活構建

而實際上:

一、web應用的配置 (不用配置)

web應用的配置就是傳統項目中web.xml文件的相關配置。我們可以在其中配置Servlet、Filter、Listener等等。在傳統的SpringMVC應用中最常見的配置就是在ContextListenter中加載Spring、SpringMVC的配置文件。

不過在SpringBoot項目中,其為我們提供了默認的配置文件。所以我們不用再顯示的編輯web.xml文件,省去了這一步驟。假如我們需要自定義Sevlet、Filter或者Listener等,只需要采用注解配置的方式進行配置即可,SpringBoot給我們提供了相關的RegisterBean。具體的配置細節我們目前可以不用了解,以后的實戰中會用到。

二、maven的配置 (需要配置)

對于Java項目來說,最常見的包管理工具就是Maven了。Maven的基礎配置主要有以下幾點:

1、依賴包的坐標

2、編譯或者打包的基本配置

3、編譯或者打包時的資源過濾,這一步很重要,否則你在編譯或者打包后啟動項目時會提示你,xxxx配置文件not found等,很可能就是因為你沒有配置好資源的過濾

具體配置后面會詳細講到

三、Spring和SpringMVC的配置(部分需要配置)

配置過傳統SpringMVC的同學一定會記得spring-application.xml和spring-mvc.xml配置文件。spring-application.xml是spring相關的配置,如解析配置文件的PropertyConfigPlaceholder、開啟包注解掃描的component-scan、數據庫連接池、代理支持、bean的注冊等。spring-mvc.xml則是spring-mvc項目的配置,基本配置項如支持注解的的驅動mvc:driver:annotation,以及如果不是前后端分離的項目還要配置視圖解析器viewResolver。如果不是使用JavaConfig的形式啟動項目,則需要在web.xml中顯式的配置這兩個文件的位置。

四、日志配置 (部分需要配置)

在傳統的SpringMVC項目中如果想啟用日志,我們需要在resources文件夾中創建一個log.properties文件進行相關的配置,然后在pom中添加我們想使用的日志類型的驅動的依賴。而在SpringBoot中,這一步也給我們省去了。默認給我們提供了Slf4j的日志驅動,甚至不用配置就可以啟用日志。不過如果你有一些特殊的要求,還是要進行簡單的配置。

五、靈活構建 (根據需要選擇配置)

我們的環境一般分為分為開發環境、測試環境、線上環境。不同環境下的相關依賴是不同的,最典型的如數據庫的配置。我們不可能所有環境都用同一個數據庫。根據啟動項或者是系統配置等等某個標志來決定系統運行時啟用哪個環境的配置進行編譯打包就叫做靈活構建。

傳統項目中我們進行靈活構建通常直接采用Maven的profile或者是使用AntCall。不過在SpringBoot中我們獲得了更好的體驗。可以以配置文件名不同的方式直接應用不同的profiles,具體配置請看下面。

一、創建一個基本項目

上面介紹完了我們配置一個項目需要進行哪些配置下面我們來看一個實例。首先打開我們的編譯器——IDEA,新建項目:

IDEA自帶的SpringBoot項目創建選項

我們直接選用IDEA自帶的SpringBoot項目創建選項然后一路Next就行。另外初始化的時候我們選擇這幾個導包選項,都是我們可能會用到的,最后完成創建,這樣我們的一個SpringBoot項目就已經創建完成了,而且現在就可以直接運行了,相比較于傳統的SpringMVC項目,是不是方便了100倍。

SpringBoot采用JavaConfig的形式來啟動項目。讓我們找到主包下的啟動器類——Application,右鍵Run Application即可運行。

點開@SpringBootApplication我們可以看到這其實就是一些我們常見注解的幾何體,只不過被繼承成為了一個注解:

SpringBootApplication注解

除了上面自定義注解所必須的四個元注解以外。我們依次來看下面的這幾個注解:

1、@SpringBootConfiguration只是簡單的繼承了@Configuration注解,所以這兩個注解沒有本質上的區別,他們功能相同。@Configuration標志著其注解的類是JavaConfig類,可以用來配置Spring,作用和xml配置文件相同,并且可以互相引用。

2、@ComponentScan:我們如果配置過傳統的Spring項目,對這個一定不會陌生。因為我們在使用Spring的時候經常會用到其提供的注解來幫助我們簡化代碼,提升效率。比如 @Controller、@Service、@Component等等。但是這些配置是Spring提供的,而不是Java自帶的,所以為了給其賦予意義,我們必須讓Spring去發現我們使用這些注解的地方,從而產生實際價值。@ComponentScan的作用和我們在xml問價中配置的component-scan標簽的作用的一樣的,默認掃描的包是該注解同級和同級下所有子包中的所有類。因為這也是為什么Application類的位置在主包下了。

3、@EnableAutoConfiguration則是SpirngBoot最重要的注解。我們之前說道SpringBoot只是Spring的一個快速啟動器,其給我們帶來的最大好處就是提供了默認配置,而這個注解的意思就是開啟默認配置。也是體現了SpringBoot作用的最根本配注解。

我們打開resources目錄,可以看到一個空的application.properties文件,這個就是SpringBoot項目的配置文件。不過SpringBoot還提供了yml文件的配置方式,相比較于properties文件,我更喜歡yml的配置方式,雖然他們的本質是一樣的。所以我們將這個properties文件換成同名的yml文件:

二、配置MySql數據源和啟用Mybatis支持

作為一個web項目,數據庫可以說是我們所必須的。而在RDS(關系型數據庫)中我們最常用的就是MySql了。如下圖所示,我們就配置好了我么你的數據源。

SpringBoot中數據源的配置

可以看到yml配置文件中,我們能夠清楚的看到配置之間的層級關系。舉個例子,將圖中的url轉換為properties配置則是:

spring.datasource.url =xxxxxx

只要是datasource相關的配置,我們都要寫上spring.datasource的前綴,個人覺得看起來十分混亂。

配置完數據庫之后,我們總不能直接用傳統的JPA進行操作吧,過于繁瑣。所以我們還要繼續配置Mybatis相關的配置。好消息是SpringBoot默認集成了Mybaits,所以我們只需要配置其掃描Alias別名的主包就行,這樣Mybatis就會檢測到com.zzz.base包以及其子包下的所有@Alias注解,以便于我們在mapper.xml中用到。

配置完之后我們來看下如何使用Mybatis。

要想使用Mybatis操作數據庫,按照慣例我們需要編寫mapper接口、mapper.xml文件、service接口以及其實現類。我們來寫一個簡單的例子:

假設這是一個我們的User類,我們為其設置了別名Alias(value = "User")

User相關的Mapper

我們需要為其編寫Mapper接口和xml文件,這里可能有個問題,SpringBoot項目中如何讓Mybatis識別到Mapper接口呢?答案就是我們為其加上@Mapper注解就行了

下面來看一個基本的Mapper.xml的實現,還以User為例

UserMap中的返回值類型type="User" 這里的User就是我們在前面實體類上使用@Alias注解表明的別名。然后我們將Mapper接口注入到Service中就行了,并且為Service加上@Service注解將其注冊成一個單例的Bean

至此,我們的Mybatis也配置完了。

三、maven相關配置

為了講明為什么要配置maven,我還以上面的(二)為例子。

User相關類的目錄結構

簡單來看下User相關類的目錄結構。能夠發現Mapper接口和Mapper.xml文件是在同一目錄下的。如果我們不顯式的進行maven相關的配置,則一定會遇到的問題就是xml文件找不到。

編譯后輸出的target文件夾

即在編譯后輸出的target文件夾中找不到我們編寫的xml文件,只能看到.java文件編譯后的.class文件。

maven中給我們提供的<build></build>標簽選項,可以讓我們自己控制文件資源的過濾。

maven配置資源過濾

如上圖所示,我們在build標簽的字標簽resources標簽下,配置了兩個resource標簽。代表了兩個應用于全局的資源過濾規則。<direction>指定為src/main/java標示該條規則作用于其本身和其所有的子包。<includes>標簽標示哪些資源是我們需要的,如果使用maven提供的占位符機制,我們還可以同時配置<filter>,不過既然是Spring項目,我們最好還是使用Spring提供的PropertyPlaceholderConfig。<include>標簽中使用了ant風格的路徑,**/*.xml表示src/main/java包,以及其所有子包中的xml文件在編譯打包時會原封不動的保留下來。同理可得下面的配置表示,resources文件夾下通常指默認保留.properties文件,通過顯式指定,我們可以在resources文件夾下添加更多的配置供我們使用。

四、配置靈活構建

前面有說道,SpringBoot中的靈活構建十分好用。那他好用在什么地方呢?我們來一探究竟。

靈活構建的配置文件

我們在配置文件中的spring級別下配置當前配置文件對應的profiles級別:

在application.yml中指定默認啟用的profiles為dev

application-dev.yml中指定分支的名字為dev

application-prd.yml中指定分支的名字為prd

上面是我配置好的靈活構建的配置,其中application.yml配置文件可以看成是共享配置,application-dev.yml是開發環境配置,application-prd.yml是生產環境配置。他們是工作模式類似于不同配置項去并集,相同配置項覆蓋。當我們在本地運行項目時,SpringBoot默認加載的是不帶后綴名的application.yml配置文件,但是解析到其中指定了啟用dev分支,則會在resources文件夾下尋找名為applicayion-dev.xml的配置文件進行解析。一定要注意的是,不僅名字后綴名要為dev,而且里面的配置profiles名也要和后綴名保持一致,這樣才能給SpringBoot尋找到,畢竟約定先行與配置,既然給我們制定了規則,我們照做就行了。

比如:我在application.yml中配置了log的日志級別為INFO,在application-dev.yml中配置了日志級別為DEBUG,在application-prd中沒有配置日志級別。

則當我們啟用dev分支時,日志級別為DEBUG(沒有配置取并集),當我們啟用prd分支時,則實際上日志級別為INFO(相同配置覆蓋)。

那么我們如何取顯式的選擇啟用某個分支呢?最常見的方式就是在啟動命令中加上命令行參數如:

java -jar xxx.jar --spring.profiles.active=prd

這樣我們就在啟動xxx.jar時指定了分支為prd,從而application-prd.yml配置文件會生效。

比如

這樣我們就以啟動了loan-spring-boot.jar包,并且應用的是prd分支。

五、日志相關

要想做好一個項目,日志管理是必不可少的。因為我們在排查錯誤時一定要用到日志。

不過SpringBoot默認給我們提供了按天切割的日志機制。每天會產生一個新文件,十分的好用。我們只需要配置日志的級別和生成的日志文件的位置就可以啦。

指定某個包極其子包下的所有日志

指定所有日志都應用debug級別的日志

現在,一個SpringBoot的web項目就已經配置完成了。我們接下來只需要寫Controller就行了。

下面是我自己做的一個不完全的后臺模板。

https://github.com/GayITHub/back-template?github.com 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的springboot导包显示不存在_(一)SpringBoot搭建基本后端应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。