一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring Boot Starters簡介及其優劣勢

Spring Boot Starters簡介及其優劣勢

2021-05-05 11:09szpzs Java教程

在這篇文章中,我們將向你介紹Spring Boot Starters,并將討論Spring Boot Starters的優點和優勢,感興趣的朋友跟隨腳本之家小編一起學習吧

簡介

在啟動任何項目(無論是小型項目還是企業級應用程序)之前,其中關鍵的方面之一是依賴管理,手動為小型應用程序執行依賴管理并不是一項困難的工作,但對于復雜的應用程序,手動管理所有項目依賴并不理想,容易出現許多問題以及浪費時間,而這些時間可以用于項目的其他一些重要方面。

spring boot背后的基本原理之一就是解決類似的問題。spring boot starter是一套方便的依賴描述符,可以很容易地包含在任何級別的應用程序中。這些starters作為spring相關技術的引導過程,我們 不再需要擔心依賴關系,它們將由spring boot starters自動管理。

starters包含了許多你需要的依賴項,以使項目快速啟動和運行,并且具有一致的、被支持的一組管理傳遞依賴項。

1. 為什么我們需要starters?

當我們用spring boot開始開發應用時,我們想到的一個基本問題就是為什么我們需要spring boot starters? 或者這些starters在我的應用中如何幫助到我?

如前所述,這些starters用于引導應用程序,我們需要的只是在應用程序中包括正確的starters,而spring boot將確保所選starters所需的所有依賴項都在你的classpath中。

為了更清楚地理解它,我們舉一個例子,我們想構建一個簡單的spring web mvc應用程序,我們需要在開始編寫我們的web應用程序代碼之前考慮以下幾點。

  • 正確的spring mvc依賴
  • web技術所需的依賴(例如,我們想要使用thymeleaf)
  • 我們需要確保所有這些依賴是兼容的

使用spring boot starters來引導我們的spring mvc web應用程序非常簡單,我們需要在我們的pom.xml中包含spring-boot-starter-web 這個starter:

?
1
2
3
4
<dependency>
  <groupid>org.springframework.boot</groupid>
  <artifactid>spring-boot-starter-web</artifactid>
</dependency>

以上pom.xml中的條目將確保所有必需的依賴項都應位于classpath中,因此我們都準備好開始開發web應用程序了。

目前,spring boot提供的starters約有50多個,這還不包括第三方的starters。有關starters的更新列表,請參閱spring boot starter

接下來,我將介紹一些常用的starters。

2. web starter

這是最常用的spring boot starter之一,該starter將確保創建spring web應用程序(包括rest)所需的所有依賴包括在你的calsspath中,它還將添加tomcat-starter作為默認服務器來運行我們的web應用程序。 要在我們的應用程序中包含web starter,請在pom.xml中添加以下條目。

?
1
2
3
4
<dependency>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-starter-web</artifactid>
</dependency>

現在我們可以創建我們的spring mvc controller

?
1
2
3
4
5
6
7
8
@restcontroller
 public class samplecontroller{
 
  @requestmapping("/greeting")
  stringhello(){
    return "helloworld!";
  }
}

如果你運行應用程序并訪問 http://localhost:8080/greeting,你應該能夠獲得"hello word”作為響應。我們使用最少的代碼創建了一個rest控制器。

3. data jpa starter

大多數應用程序需要一些持久性機制,而jpa是持久性的標準,spring boot starters帶有jpa starters,你不再需要手動配置這些jpa依賴,而是可以通過在應用程序中添加jpa starter輕松實現。

?
1
2
3
4
5
6
7
8
<dependency>
  <groupid>org.springframework.boot</groupid>
  <artifactid>spring-boot-starter-data-jpa</artifactid>
</dependency>
<dependency>
  <groupid>com.h2database</groupid>
  <artifactid>h2</artifactid>
</dependency>

spring jpa starter提供對h2,derby和hsqldb的自動支持。讓我們看看使用jpa starter創建一個jpa樣例應用程序是多么容易。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
@entity
public class user{
  @id
  @generatedvalue(strategy = generationtype.auto)
  private long id;
  private string firstname;
  private string lastname;
  protected user(){
  }
  public user(string firstname, string lastname){
    //this.id = id;
    this.firstname = firstname;
    this.lastname = lastname;
  }
  public long getid(){
    return id;
  }
  public void setid(long id){
    this.id = id;
  }
  public string getfirstname(){
    return firstname;
  }
  public void setfirstname(string firstname){
    this.firstname = firstname;
  }
  public string getlastname(){
    return lastname;
  }
  public void setlastname(string lastname){
    this.lastname = lastname;
  }
  @override
  public string tostring(){
    return "user{" +
        "id=" + id +
        ", firstname='" + firstname + '\'' +
        ", lastname='" + lastname + '\'' +
        '}';
  }
}

如下是我們的userrepository:

?
1
2
3
public interface userrepositoryextends crudrepository<user,long>{
  list<user>finduserbylastname(string lastname);
}

接下來我們可以測試我們的代碼了,如下是junit代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
@runwith(springrunner.class)
@springboottest
public class jpademoapplicationtests{
  @autowired
  userrepository userrepository;
  @test
  public void contextloads(){
    user user = userrepository.save(new user("demo","user"));
    user searchuser= userrepository.findone(user.getid());
    assertnotnull(searchuser);
    assertequals(user.getfirstname(),searchuser.getfirstname());
  }
}

正如我們在上面的代碼中看到的那樣,你不再需要指定那些數據庫配置或額外的數據庫配置,通過添加jpa starter,我們無需配置或編碼即可獲得許多開箱即用的功能。

如果需要,你始終可以修改或自定義這些配置。

4. mail starter

從應用程序發送電子郵件是非常常見的任務,現在每個應用程序都需要從系統發送電子郵件。spring boot mail starter提供了一種隱藏所有復雜性的簡單方法來處理此功能。

我們可以通過在應用程序中添加mail starter來啟用電子郵件支持。

?
1
2
3
4
<dependency>
  <groupid>org.springframework.boot</groupid>
  <artifactid>spring-boot-starter-mail</artifactid>
</dependency>

我正在使用mailgun作為我的smtp服務器,以下是添加到我的application. properties文件中的smtp詳細信息:

?
1
2
3
4
5
6
spring.mail.host=smtp.mailgun.org
spring.mail.username=postmaster@domain.com
spring.mail.password=mypassword
spring.mail.properties.mail.transport.protocol=smtp
spring.mail.properties.mail.smtp.port=587
spring.mail.properties.mail.smtp.auth=true

我們的emailservice類負責發送郵件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@component
public class javaemailservice{
  private javamailsender mailsender;
  public javaemailservice(javamailsender mailsender){
    this.mailsender = mailsender;
  }
  public void sendemail(){
    mimemessagepreparator messagepreparator = mimemessage -> {
      mimemessagehelper helper = new mimemessagehelper(mimemessage);
      helper.setfrom("[email protected]");
      helper.setto("[email protected]");
      helper.setsubject("sample mail subject");
      helper.settext("test email");
    };
    mailsender.send(messagepreparator);
  }
}

我們使用spring提供的javamailsender來發送電子郵件。 junit測試代碼如下:

?
1
2
3
4
5
6
7
8
9
10
@runwith(springrunner.class)
@springboottest
public class emailtest{
  @autowired
  javaemailservice javaemailservice;
  @test
  public void sendemail(){
    javaemailservice.sendemail();
  }
}

同樣,只需簡單的代碼和配置即可發送一封簡單的電子郵件,spring boot mail starter確保所有必需的工具已經到位,以快速開始解決實際問題。

請注意,我們在javaemailservice bean中使用javamailsender - 該bean是由spring boot自動創建的。

5. test starter

我們通常使用junit、mockito或spring test來測試我們的應用程序。我們可以通過添加spring boot test starter輕松地將所有這些庫包含在我們的應用程序中。

?
1
2
3
4
<dependency>
  <groupid>org.springframework.boot</groupid>
  <artifactid>spring-boot-starter-test</artifactid>
</dependency>

spring boot會自動找到我們正確的版本用于我們的應用程序測試。 這是一個junit示例測試:

?
1
2
3
4
5
6
7
8
9
10
@runwith(springrunner.class)
@springboottest
public class emailtest{
  @autowired
  javaemailservice javaemailservice;
  @test
  public void sendemail(){
    javaemailservice.sendemail();
  }
}

除了這些starter之外,下面還有其他常用的spring boot starter

?
1
2
3
4
5
spring-boot-starter-security
spring-boot-starter-web-services
spring-boot-starter-integration
spring-boot-starter-validation
spring-boot-starter-actuator

如前所述,請參閱 spring boot starter 獲取spring boot提供的starter的最新列表。

總結

本文提供了一個spring boot starters簡介,我們討論了為什么我們需要這些starter以及他們如何幫助我們快速引導我們的應用程序。 我們探索了一些最常用的spring boot starter。

原文鏈接:http://szpzs.oschina.io/2018/05/24/spring-boot-starters/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91夜夜人人揉人人捏人人添 | 手机av影院 | 色色色色网站 | 午夜福利自怕 | 人人澡 人人澡碰人人看软件 | 很黄的孕妇a级黄毛片 | 亚洲www在线 | 亚洲天堂男人 | 思思玖玖玖在线精品视频 | 午夜想想爱午夜剧场 | 欧亚专线欧洲m码可遇不可求 | 国产欧美日韩精品在线 | 女同xx美女放 | 亚洲精品中文字幕第一区 | 禁止的爱善良的未删减版hd | 国产真实一区二区三区 | 精品国产一区二区三区在线 | 午夜福利理论片高清在线 | 日本一区二区三区国产 | 99久久精品免费看国产一区二区 | 毛片免费视频观看 | 国产特黄a级在线视频 | 美女扒开腿让男人桶爽动态图片 | xxxx意大利xxxxhd | 超h 超重口 高h 污肉1v1 | 色老板在线视频 | 亚洲图片综合网 | 日本理论片中文在线观看2828 | 爽好舒服把腿张小说 | 日本国产一区二区三区 | 别停好爽好深好大好舒服视频 | a毛片在线免费观看 | 国产成人精品一区二区仙踪林 | 成人午夜爽爽爽免费视频 | 三级黄色图片 | 国产精品乱码高清在线观看 | 国产亚洲一级精品久久 | 天美视频在线 | 荡女淫春2未删减版 | 网红刘婷hd国产高清 | 国产精品久久久久久久久齐齐 |