中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Spring Initializr創建Springboot項目

發布時間:2022-02-25 10:29:02 來源:億速云 閱讀:197 作者:iii 欄目:開發技術

本篇內容介紹了“怎么用Spring Initializr創建Springboot項目”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

1.簡介

SpringbootSpring MVC 簡化了web應用中的RESTful開發,然而還有一種更簡單的,那就是Spring Data RESTSpring Data REST 建立在Data Repository之上,它可以直接把resositoryHATEOAS風格暴露成Web服務,就不需要再手寫Controller層。

  • HATEOAS,即Hypermedia as the Engine of Application State ,它是一種更成熟的REST模型,在資源的表達中包含了鏈接信息,客戶端可以根據鏈接來發現可執行的動作。

Spring Data REST支持Spring Data JPASpring Data MongoDBSpring Data Neo4jSpring Data GenFireSpring Data Cassandra,這里選擇大家比較熟悉的JPA

2 舉個例子

我們用例子來感受一下吧。

2.1 創建項目

我們通過Spring Initializr來快速創建Springboot項目。選中的依賴組件如下:

  • (1)Spring Web:提供Web服務;

  • (2)Rest Repositories:提供Spring Data REST的支持;

  • (3)Spring Data JPA:通過JPA提供Repository方式的數據訪問;

  • (4)H2 Database:H2數據庫,為了方便簡潔,使用該數據庫。

(推薦課程:Spring教程)

導入后對應的pom.xml中依賴如下:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> <dependency> <groupId>com.h3database</groupId> <artifactId>h3</artifactId> <scope>runtime</scope> </dependency>

2.2 實體類

創建一個實體類User,如下所示:

package com.pkslow.rest.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;


@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;
    private String name;
    private Integer age;
    private String email;

  
  //getter & setter
}

2.3 Repository接口定義

定義Repository接口用于操作數據庫,如下所示:

package com.pkslow.rest.repo;

import com.pkslow.rest.entity.User;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;


@RepositoryRestResource(path = "user")
public interface UserRepository extends CrudRepository<User, Integer> {
}

注解RepositoryRestResourceData REST用于暴露Repositorypath為訪問路徑,設置為user,則訪問地址為http://localhost:8080/user

2.4 啟動訪問

準備好以上代碼,直接啟動Springboot應用即可,我們把端口設置為8080

3 更多探索

3.1 分頁及排序功能

可以快速實現分頁及排序功能,只需要把Repository的父接口改為PagingAndSortingRepository即可,如下所示:

@RepositoryRestResource(path = "user") public interface UserRepository extends PagingAndSortingRepository<User, Integer> { }

其實就是多了兩個方法findAll(Sort var1)findAll(Pageable var1),如下所示:

public interface PagingAndSortingRepository<T, ID> extends CrudRepository<T, ID> { Iterable<T> findAll(Sort var1);

Page<T> findAll(Pageable var1);
}

查詢http://localhost:8080/user?page=1&size=2&sort=id,desc,表示查詢第二頁,每頁2條記錄,以ID倒序展示。如下:

{ "_embedded": { "users": [ { "name": "pkslow.com", "age": 18, "email": "pkslow@pkslow.com", "_links": { "self": { "href": "http://localhost:8080/user/33" }, "user": { "href": "http://localhost:8080/user/33" } } }, { "name": "pkslow.com", "age": 18, "email": "pkslow@pkslow.com", "_links": { "self": { "href": "http://localhost:8080/user/32" }, "user": { "href": "http://localhost:8080/user/32" } } } ] }, "_links": { "first": { "href": "http://localhost:8080/user?page=0&size=2&sort=id,desc" }, "prev": { "href": "http://localhost:8080/user?page=0&size=2&sort=id,desc" }, "self": { "href": "http://localhost:8080/user?page=1&size=2&sort=id,desc" }, "next": { "href": "http://localhost:8080/user?page=2&size=2&sort=id,desc" }, "last": { "href": "http://localhost:8080/user?page=17&size=2&sort=id,desc" }, "profile": { "href": "http://localhost:8080/profile/user" } }, "page": { "size": 2, "totalElements": 35, "totalPages": 18, "number": 1 } }

可以發現page是從0開始的,1表示第二頁;返回結果還提供了第一頁、上一頁、本頁、下一頁、最后一頁的鏈接;以及分頁信息。

(推薦微課:Spring微課)

3.2 事件監聽

REST提供了8個基于Repository的事件,如下:

  • BeforeCreateEvent

  • AfterCreateEvent

  • BeforeSaveEvent

  • AfterSaveEvent

  • BeforeLinkSaveEvent

  • AfterLinkSaveEvent

  • BeforeDeleteEvent

  • AfterDeleteEvent

添加一個自定義事件如下:

package com.pkslow.rest.event;

import com.pkslow.rest.entity.User;
import org.springframework.data.rest.core.event.AbstractRepositoryEventListener;
import org.springframework.stereotype.Component;


@Component
public class PkslowEventListener extends AbstractRepositoryEventListener<User> {


    @Override
    public void onBeforeCreate(User entity) {
        System.out.println("pkslow creating:" + entity);
    }


    @Override
    public void onBeforeSave(User entity) {
        System.out.println("pkslow saving:" + entity);
    }


    @Override
    public void onAfterDelete(User entity) {
        System.out.println("pkslow deleted:" + entity);
    }
}

分別執行了增加、修改、刪除后,日志如下:

pkslow creating:User{id=null, name='pkslow.com', age=18, email='pkslow@pkslow.com'} pkslow saving:User{id=32, name='pkslow.com', age=20, email='pkslow@pkslow.com'} pkslow deleted:User{id=14, name='pkslow.com', age=18, email='pkslow@pkslow.com'}

說明事件成功執行,結合這個功能,可以實現很多業務邏輯,如刪除后記錄操作日志,并刪除其它相關數據。

(推薦教程:Spring Boot 那些事)

3.3 路徑

默認基礎路徑是/,可以通過spring.data.rest.base-path=api進行配置,這樣就變成了localhost:8080/api/user

4 集成HAL Browser查看

HAL Browser是一個專門用于瀏覽基于JSON Hypertext Application Language的前端工具。我們前面已經提供了HATEOAS風格的RESTful服務,HAL Browser可以方便查看。

加入依賴:

<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-rest-hal-browser</artifactId> <version>3.3.2.RELEASE</version> </dependency>

啟動后訪問http://localhost:8080/browser/index.html#/

“怎么用Spring Initializr創建Springboot項目”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

奈曼旗| 庆云县| 昌都县| 长泰县| 开封县| 阳谷县| 廊坊市| 合江县| 保康县| 诸暨市| 田林县| 永清县| 礼泉县| 珲春市| 定日县| 霍邱县| 陇南市| 平遥县| 靖宇县| 通城县| 安西县| 汽车| 樟树市| 日土县| 临泽县| 宁安市| 大英县| 汉阴县| 宽甸| 梁河县| 新津县| 乐山市| 金溪县| 栾川县| 龙泉市| 澳门| 天镇县| 塔城市| 丹凤县| 漳州市| 湖南省|