亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

怎么用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

寻乌县| 云安县| 万州区| 右玉县| 饶阳县| 改则县| 淮阳县| 萝北县| 监利县| 延安市| 长垣县| 乐至县| 利川市| 蒙山县| 三河市| 政和县| 兰溪市| 固镇县| 东乌珠穆沁旗| 和平区| 莲花县| 贵溪市| 永春县| 顺昌县| 法库县| 永德县| 商河县| 沙河市| 德阳市| 成武县| 禄劝| 仪陇县| 诸暨市| 临泽县| 嘉善县| 历史| 叙永县| 沙田区| 瑞安市| 隆回县| 贵南县|