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

歡迎訪問 生活随笔!

生活随笔

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

javascript

SpringBoot初步入门

發布時間:2025/3/20 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot初步入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1. SpringBoot概述
    • 1.1什么是SpringBoot
    • 1.2 SpringBoot的特點
  • 2. 快速入門
    • 2.1 創建工程并引入依賴
    • 2.2 編寫controller
    • 2.3 啟動測試
    • 2.4 優化入門程序
      • 2.4.1 添加引導類
      • 2.4.2 @SpringBootApplication
      • 2.4.3 @SpringBootConfiguration
  • 3. 默認配置原理
    • 3.1 以前的配置
    • 3.2 嘗試java配置
      • 3.2.1 引入依賴
      • 3.2.2 添加jdbc.properties
      • 3.2.3 配置數據源
      • 3.2.4 測試
    • 3.3 SpringBoot的屬性注入
      • 3.3.1 @Autowired注入
      • 3.3.2 構造函數注入
      • 3.3.3 @Bean方法的參數注入
      • 3.3.4 快速注入
  • 4. 總結

1. SpringBoot概述

1.1什么是SpringBoot

SpringBoot是Spring項目中的一個子工程,與我們所熟知的Spring-framework 同屬于spring的產品:

人們把Spring Boot稱為搭建程序的腳手架。其最主要作用就是幫我們快速的構建龐大的spring項目,并且盡可能的減少一切xml配置,做到開箱即用,迅速上手,讓我們關注于業務而非配置。

我們可以使用SpringBoot創建java應用,并使用java –jar 啟動它,就能得到一個生產級別的web工程。

1.2 SpringBoot的特點

Spring Boot 主要特征是:

  • 創建獨立的spring應用程序
  • 直接內嵌tomcat、jetty和undertow(不需要打包成war包部署)
  • 提供了固定化的“starter”配置,以簡化構建配置
  • 盡可能的自動配置spring和第三方庫
  • 提供產品級的功能,如:安全指標、運行狀況監測和外部化配置等
  • 絕對不會生成代碼,并且不需要XML配置

總之,Spring Boot為所有 Spring 的開發者提供一個開箱即用的、非??焖俚?、廣泛接受的入門體驗

2. 快速入門

2.1 創建工程并引入依賴

創建一個maven項目,引入依賴

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.zh</groupId><artifactId>springboot</artifactId><version>1.0-SNAPSHOT</version><!-- 所有的springboot的工程都以spring父工程為父工程 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.6.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies> </project>

為了讓SpringBoot幫我們完成各種自動配置,我們必須引入SpringBoot提供的自動配置依賴,我們稱為啟動器。spring-boot-starter-parent工程將依賴關系聲明為一個或者多個啟動器,我們可以根據項目需求引入相應的啟動器,因為我們是web項目,這里我們引入web啟動器。
需要注意的是,我們并沒有在這里指定版本信息。因為SpringBoot的父工程已經對版本進行了管理了。

這個時候,我們會發現項目中多出了大量的依賴:

這些都是SpringBoot根據spring-boot-starter-web這個依賴自動引入的,而且所有的版本都已經管理好,不會出現沖突。

2.2 編寫controller

@RestController @RequestMapping("hello") @EnableAutoConfiguration //啟動自動配置 public class Hello {@GetMapping("test1")public String test1(){return "Hello SpringBoot 1";}public static void main(String[] args) {SpringApplication.run(Hello.class,args);} }

@EnableAutoConfiguration

開啟spring應用程序的自動配置,SpringBoot基于你所添加的依賴和你自己定義的bean,試圖去猜測并配置你想要的配置。比如我們引入了spring-boot-starter-web,而這個啟動器中幫我們添加了tomcat、SpringMVC的依賴。此時自動配置就知道你是要開發一個web應用,所以就幫你完成了web及SpringMVC的默認配置了!

SpringBoot內部對大量的第三方庫或Spring內部庫進行了默認配置,這些配置是否生效,取決于我們是否引入了對應庫所需的依賴,如果有那么默認配置就會生效。

所以,我們使用SpringBoot構建一個項目,只需要引入所需依賴,配置就可以交給SpringBoot處理了。

2.3 啟動測試


2.4 優化入門程序

2.4.1 添加引導類

通常請求下,我們在一個springboot工程中都會在基包下創建一個引導類,一些springboot的全局注解(@EnableAutoConfiguration注解)以及springboot程序的入口main方法都放在該類中。

在springboot的程序的基包下(引導類和Controller包在同級目錄下),創建TestApplication.class:

@EnableAutoConfiguration//自動配置 @ComponentScan //自動掃描包 相當于`<context:component-scan />` public class TestApplication {public static void main(String[] args) {SpringApplication.run(TestApplication.class,args);} }

并修改HelloController,去掉main方法及@EnableAutoConfiguration:

@RestController @RequestMapping("hello") public class HelloController {@GetMapping("test1")public String test1(){return "Hello SpringBoot 1";} }

測試引導類


2.4.2 @SpringBootApplication

我們現在的引導類中使用了@EnableAutoConfiguration和@ComponentScan注解,有點麻煩。springboot提供了一種簡便的玩法:@SpringBootApplication注解

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

查看源碼

發現@SpringBootApplication其實是一個組合注解,這里重點的注解有3個:

  • @SpringBootConfiguration
  • @EnableAutoConfiguration:開啟自動配置
  • @ComponentScan:開啟注解掃描

2.4.3 @SpringBootConfiguration


通過這段我們可以看出,在這個注解上面,又有一個@Configuration注解。通過上面的注釋閱讀我們知道:這個注解的作用就是聲明當前類是一個配置類,然后Spring會自動掃描到添加了@Configuration的類,并且讀取其中的配置信息。而@SpringBootConfiguration是來聲明當前類是SpringBoot應用的配置類,項目中只能有一個。所以一般我們無需自己添加。

3. 默認配置原理

3.1 以前的配置

事實上,在Spring3.0開始,Spring官方就已經開始推薦使用java配置來代替傳統的xml配置了,我們不妨來回顧一下Spring的歷史:

  • Spring1.0時代

    在此時因為jdk1.5剛剛出來,注解開發并未盛行,因此一切Spring配置都是xml格式,想象一下所有的bean都用xml配置,細思極恐啊,心疼那個時候的程序員2秒

  • Spring2.0時代

    Spring引入了注解開發,但是因為并不完善,因此并未完全替代xml,此時的程序員往往是把xml與注解進行結合,貌似我們之前都是這種方式。

  • Spring3.0及以后

    3.0以后Spring的注解已經非常完善了,因此Spring推薦大家使用完全的java配置來代替以前的xml,不過似乎在國內并未推廣盛行。然后當SpringBoot來臨,人們才慢慢認識到java配置的優雅。

有句古話說的好:擁抱變化,擁抱未來。所以我們也應該順應時代潮流,做時尚的弄潮兒,一起來學習下java配置的玩法。

3.2 嘗試java配置

java配置主要靠java類和一些注解來達到和xml配置一樣的效果,比較常用的注解有:

  • @Configuration:聲明一個類作為配置類,代替xml文件
  • @Bean:聲明在方法上,將方法的返回值加入Bean容器,代替<bean>標簽
  • @Value:屬性注入
  • @PropertySource:指定外部屬性文件。

3.2.1 引入依賴

<dependency><groupId>com.github.drtrang</groupId><artifactId>druid-spring-boot2-starter</artifactId><version>1.1.10</version> </dependency>

3.2.2 添加jdbc.properties

jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/leyou jdbc.username=root jdbc.password=123

3.2.3 配置數據源

@Configuration @PropertySource("classpath:jdbc.properties") public class JdbcConfiguration {@Value("${jdbc.url}")String url;@Value("${jdbc.driverClassName}")String driverClassName;@Value("${jdbc.username}")String username;@Value("${jdbc.password}")String password;@Beanpublic DataSource dataSource(){DruidDataSource dataSource = new DruidDataSource();dataSource.setUrl(url);dataSource.setUsername(driverClassName);dataSource.setDriverClassName(username);dataSource.setPassword(password);return dataSource;} }

解讀:

  • @Configuration:聲明JdbcConfiguration是一個配置類。
  • @PropertySource:指定屬性文件的路徑是:classpath:jdbc.properties
  • 通過@Value為屬性注入值。
  • 通過@Bean將 dataSource()方法聲明為一個注冊Bean的方法,Spring會自動調用該方法,將方法的返回值加入Spring容器中。相當于以前的bean標簽

然后就可以在任意位置通過@Autowired注入DataSource了!

3.2.4 測試

3.3 SpringBoot的屬性注入

在上面的案例中,我們實驗了java配置方式。不過屬性注入使用的是@Value注解。這種方式雖然可行,但是不夠強大,因為它只能注入基本類型值。

在SpringBoot中,提供了一種新的屬性注入方式,支持各種java基本數據類型及復雜類型的注入。
新建JdbcProperties,用來進行屬性注入:

@Component @ConfigurationProperties(prefix = "jdbc") public class JdbcProperties {private String url;private String driverClassName;private String username;private String password;public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public String getDriverClassName() {return driverClassName;}public void setDriverClassName(String driverClassName) {this.driverClassName = driverClassName;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;} }
  • 在類上通過@ConfigurationProperties注解聲明當前類為屬性讀取類

  • prefix="jdbc"讀取屬性文件中,前綴為jdbc的值。

  • 在類上定義各個屬性,名稱必須與屬性文件中jdbc.后面部分一致,并且必須具有getter和setter方法

  • 需要注意的是,這里我們并沒有指定屬性文件的地址,SpringBoot默認會讀取文件名為application.properties的資源文件。將jdbc中的內容粘貼到application中

    在JdbcConfiguration中使用這個屬性:

  • 通過@EnableConfigurationProperties(JdbcProperties.class)來聲明要使用JdbcProperties這個類的對象

  • 然后你可以通過以下方式在JdbcConfiguration類中注入JdbcProperties:

3.3.1 @Autowired注入

@Configuration @EnableConfigurationProperties(JdbcProperties.class) public class JdbcConfiguration {@Autowiredprivate JdbcProperties jdbcProperties;@Beanpublic DataSource dataSource(){DruidDataSource dataSource = new DruidDataSource();dataSource.setUrl(jdbcProperties.getUrl());dataSource.setUsername(jdbcProperties.getUsername());dataSource.setDriverClassName(jdbcProperties.getDriverClassName());dataSource.setPassword(jdbcProperties.getPassword());return dataSource;} }

3.3.2 構造函數注入

@Configuration @EnableConfigurationProperties(JdbcProperties.class) public class JdbcConfiguration {private JdbcProperties jdbcProperties;public JdbcConfiguration(JdbcProperties jdbcProperties){this.jdbcProperties = jdbcProperties;}@Beanpublic DataSource dataSource() {// 略}}

3.3.3 @Bean方法的參數注入

@Configuration @EnableConfigurationProperties(JdbcProperties.class) public class JdbcConfiguration {@Beanpublic DataSource dataSource(JdbcProperties jdbcProperties) {// ...} }

3.3.4 快速注入

事實上,如果一段屬性只有一個Bean需要使用,我們無需將其注入到一個類(JdbcProperties)中。而是直接在需要的地方聲明即可:

@Configuration public class JdbcConfiguration {@Bean// 聲明要注入的屬性前綴,SpringBoot會自動把相關屬性通過set方法注入到DataSource中@ConfigurationProperties(prefix = "jdbc")public DataSource dataSource() {DruidDataSource dataSource = new DruidDataSource();return dataSource;} }

直接把@ConfigurationProperties(prefix = "jdbc")聲明在需要使用的@Bean的方法上,然后SpringBoot就會自動調用這個Bean(此處是DataSource)的set方法,然后完成注入。使用的前提是:該類必須有對應屬性的set方法!

4. 總結

SpringBoot為我們提供了默認配置,而默認配置生效的條件一般有兩個:

  • 你引入了相關依賴
  • 你自己沒有配置

1)啟動器

之所以,我們如果不想配置,只需要引入依賴即可,而依賴版本我們也不用操心,因為只要引入了SpringBoot提供的stater(啟動器),就會自動管理依賴及版本了。

因此,玩SpringBoot的第一件事情,就是找啟動器,SpringBoot提供了大量的默認啟動器

2)全局配置

另外,SpringBoot的默認配置,都會讀取默認屬性,而這些屬性可以通過自定義application.properties文件來進行覆蓋。這樣雖然使用的還是默認配置,但是配置中的值改成了自定義的。

因此,玩SpringBoot的第二件事情,就是通過application.properties來覆蓋默認屬性值,形成自定義配置。

總結

以上是生活随笔為你收集整理的SpringBoot初步入门的全部內容,希望文章能夠幫你解決所遇到的問題。

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