簡體   English   中英

Spring boot Design Patterns and SSR vs REST api 有幾個問題

[英]Spring boot Design Patterns and SSR vs REST api got a few questions

我想問一些關於構建 spring boot 2 應用程序的問題。所以幾個月前我決定開始使用 spring boot 和 angular 構建基本的博客應用程序,我已經創建了一些實體,用戶、角色、文章的休息控制器,類別和評論,為每個服務和服務實現,例如我的 UserServiceImpl 看起來像這樣使用 HQL,而不是存儲庫。

@Override
    public List<User> getUsers() {
        Query q = entityManager.createQuery("select u from User u");
        List<User> users = q.getResultList();

        if(users == null){
            users = new ArrayList<>();
        }

        return users;
    }

這是正確的方法嗎? 我是否必須像那樣構建它,因為我沒有使用任何存儲庫,我看到的每個 spring-boot-best-practices 項目都使用存儲庫而不是 HQL,我不確定我是否應該使用存儲庫或自定義服務高品質。 我完全迷失了。這是我的第一個問題。

第二個問題是我應該使用服務器端渲染和 api 還是我應該只使用 api 而沒有服務器端渲染,因為我看到了一些用 ssr 和 rest api 制作的項目,這讓我很困惑。

感謝提供的幫助

答案 1

有 3 個流行的存儲庫CRUDRepositoryPagingAndSortingRepositoryJpaRepository

  1. JpaRepository 是從 Spring Jpa 到 EntityManager 的抽象層
  2. 您使用的是帶有EntityManager HQL。 您可以在 EntityManager 中使用 HQL,在 JpaRepository 中使用JPQL
  3. 使用JpaRepository你的代碼就變成這樣了

    列出用戶=userRepository.findAll(); 回訪用戶;

  4. 您可以使用 JPQL 實現類似的事情,這可以通過使用@Query注釋的 EntityManagers 實現。

  5. 重要的是,這取決於您將加入的團隊以及他們正在從事的工作。 大多數在企業界,團隊使用技術主要有以下原因

    • 他們很穩定
    • 舊技術的文檔/幫助很多(舊並不意味着 JDBC 等,它意味着相對較舊的版本/技術)
    • 大多數應用程序將與它們兼容

因此,使用存儲庫不是最佳實踐- 在我看來!

答案 2

  1. 服務器端渲染的優點是,在服務器上,您可以使用更多資源來更快地渲染響應。
    • 瀏覽器/客戶端設備可能不夠快,並且它們需要相對更多的時間來轉換您的 JSON/XML。
    • 當您從服務器本身獲得渲染響應時,JS 引擎只需要顯示而不用費心將您的 JSON 轉換為 HTML/CSS 並在客戶端設備上呈現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM