從零開始學SpringBoot2.x(02-第一個SpringBoot應用注意點)

在上一篇文章“第一個SpringBoot應用”中,已成功運行我們的第一SpringBoot應用。我們再來回顧一下之前第一個SpringBoot應用的工程目錄,如下:

DemoApplication類,是使用IDEA創建應用時自動幫我們生成的,在之前運行時,我們對該類並沒有關注太多,僅僅是通過其來啓動應用。現在我們進入該類,來仔細觀察一下,其內容如下:

@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

可以看到,在類的上方有一個@SpringBootApplication註解,如果沒有了解過SpringBoot的童鞋來說,該註解是陌生的。

那麼它到底是幹嘛用的呢?我們通過按住鍵盤的Ctrl+鼠標左鍵點擊進入到註解內部進行查看,其內容如下:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
  //內容省略
}

我們可以發現,@SpringBootApplication註解是由@SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan註解組合而成。

那麼這三個註解分別又是幹嘛用的呢?我們先進入@SpringBootConfiguration,如下:


@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {
}

可以看到,其實裏面就是一個@Configuration註解,使用該註解修飾的類表示一個配置類,相當於我們之前配置Spring時的一個xml文件。

@EnableAutoConfiguration註解,從字面意思翻譯過來就是“啓用自動配置”,通過進入該註解並查看其文檔描述,它的作用就是告訴SpringBoot,讓SpringBoot根據我們引入的jar包(類)等信息包來“猜測”我們所要構建一個什麼樣的項目,並使用其提供的一些默認配置。@ComponentScan相當於我們之前xml配置用的<context:component-scan>標籤。如果我們不對該註解指定任何參數,其默認掃描的包爲其修飾類所在的包及其子包。所以我們的這個項目掃描的包爲:com.example.demo包及其子包。

不信?我們可以來做個試驗,把之前編寫的HelloController移至example包下後,我們再來啓動應用。如果沒有意外,當然能啓動,可是我們訪問之前寫的hello接口,結果如下:

我們的接口當然找不到啦,如果真想繼續訪問到我們的接口,可以修改啓動類,自定義掃包路徑,如下:

@SpringBootApplication(scanBasePackages = {"com.example"})
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

重啓項目,重新訪問接口,保證成功!(不成功肯定是你的不對,這個鍋我不背,嘿嘿~)。

所以,在實際項目開發中,我們一般會在入口類所在的包下再細分其他業務模塊,這樣就能把我們定義的所有bean加載到容器當中了!

好,入口類我們暫且先關注到這裏,再來想想,我們在開發當中,還需要經常修改哪些東西?嗯……端口號?是了,沒錯,實際的開發當中,有時候1臺機器確實要運行好幾個tomcat,或者我們並不想訪問時還添加端口號,太麻煩!想要把端口號修改爲80,那麼SpringBoot怎麼修改端口號呢?

我們再來回想一下我們的工程目錄,貌似在resources目錄下有個application.properties文件,嗯?properties文件?相信稍微有點經驗的童鞋已然頓悟了,沒錯!就是在這裏修改!但是SpringBoot官方並不推薦使用properties配置文件,而是推薦使用yml配置文件,至於什麼是yml文件大家就自行查閱資料吧(主要是我瞭解的也不是很多)。

我們把application.properties文件的後綴改爲.yml,如下:

然後打開該文件,在裏面添加如下配置:

server:
  port: 80

重啓項目後訪問我們的hello接口,如下:

可以看到,我們使用默認的80端口訪問成功!

好啦,今天就跟大家分享到這裏,溜了溜了~

 

源碼鏈接:

https://github.com/devilyang123/SpringBoot-Learning/tree/master/springboot-hello

 

 

歡迎關注我的個人公衆號“笑笑是一個碼農”,第一時間獲取最新文章。

您的關注,就是支持我持續寫作的最大動力!

還可以免費領取前後端全站學習視頻資料呦~

個人微信號,如需添加微信,請備註來源,因爲媽媽從小就告訴我不要隨便跟陌生人聊天!(嘿嘿~)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章