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

歡迎訪問 生活随笔!

生活随笔

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

javascript

Spring Boot笔记-目前对Web后端开发的认识

發(fā)布時間:2025/3/15 javascript 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot笔记-目前对Web后端开发的认识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

?

?

基本概念

代碼與實例


?

基本概念

此篇博文記錄了本人目前對web后端開發(fā)的認識。

Web開發(fā)一般的思路:

先dao再service最后controller

而dao又分為dataobject和repository!

而這個dataobject一般是數據庫的映射,比如MySQL數據庫,如果用jpa,那么命名也是有講究的,但如果使用注解,就沒有這么多的講究了。

而這個repository,為接口,結構接口extends JpaRepository,并且可以自己寫一些方法。這里就可以通過jpa操作數據。

?

個人覺得Service層一般先搞一個接口,把需要的邏輯業(yè)務寫到這個接口里面,在用一個類,繼承這個接口,然后通過調用repository,把那些數據給記錄進去。這里可以看到一般Service中都有一個@Autowired,把Repository給注入進去了。

?

對于Controller層目前還沒有什么深的體會。

?

對于dao,感覺是搞數據的,估計這個就叫做數據持久層,這個名字可真騷氣啊。

對于service,感覺是搞邏輯業(yè)務的,但邏輯業(yè)務不夠的時候,可以新增幾個函數到接口里面,繼承的類去實例化。

?

還有個關鍵點:個人覺得除非很熟悉這套模式可以不進行go to test,這個go to test還是很有用的,至少可以保證這部分代碼是可以跑的。

還有個關鍵的地方,就是少去用0,1,表示狀態(tài),java中的枚舉,感覺比C++的爽很多,感覺就和類,對象一樣。多使用枚舉去表示狀態(tài),增加可讀性

?

?

代碼與實例

如下的結構:

其中dataobject就是放基本數據,與數據庫進行映射的。

其中enums就是增加代碼可讀性,避免大量的狀態(tài)用0,1表示。

其中repository為存儲數據的,service就是操作這個的。

其中service中有接口,和實例,這個要分開,這樣才能使得結構更加清晰,

下面給出一組的代碼(ProductInfo的dao和service層代碼)

ProductInfo.java

package selldemo.demo.dataobject;import lombok.Data;import javax.persistence.Entity; import javax.persistence.Id; import java.math.BigDecimal;@Entity @Data public class ProductInfo {@Idprivate String productId;//名字private String productName;//單價private BigDecimal productPrice;//庫存private Integer productStock;//描述private String productDescription;//小圖private String productIcon;//狀態(tài) 0 正常, 1 下架private Integer productStatus;//類目編號private Integer categoryType; }

ProductInfoRepository.java

package selldemo.demo.repository;import org.springframework.data.jpa.repository.JpaRepository; import selldemo.demo.dataobject.ProductInfo;import java.util.List;public interface ProductInfoRepository extends JpaRepository<ProductInfo, String> {//Dao層的東西主要在service中使用List<ProductInfo> findByProductStatus(Integer productStatus); }

ProdctService.java

package selldemo.demo.service;import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import selldemo.demo.dataobject.ProductInfo;import java.util.List;//service層 public interface ProductService {ProductInfo findOne(String productId);//查詢所有商品列表List<ProductInfo> findUpAll();Page<ProductInfo> findAll(Pageable pageable);ProductInfo save(ProductInfo productInfo); }

ProductServiceImpl.java

package selldemo.demo.service.impl;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import selldemo.demo.dataobject.ProductInfo; import selldemo.demo.enums.ProductStatusEnum; import selldemo.demo.repository.ProductInfoRepository; import selldemo.demo.service.ProductService;import java.util.List;@Service public class ProductServiceImpl implements ProductService {@Autowiredprivate ProductInfoRepository repository;@Overridepublic ProductInfo findOne(String productId) {return repository.findOne(productId);}@Overridepublic List<ProductInfo> findUpAll() {return repository.findByProductStatus(ProductStatusEnum.UP.getCode());}@Overridepublic Page<ProductInfo> findAll(Pageable pageable) {return repository.findAll(pageable);}@Overridepublic ProductInfo save(ProductInfo productInfo) {return repository.save(productInfo);} }

另外的那個枚舉

ProductStatusEnum.java

package selldemo.demo.enums;import lombok.Getter;@Getter public enum ProductStatusEnum {UP(0, "在架"),DOWN(1, "下架");private Integer code;private String message;ProductStatusEnum(Integer code, String message){this.code = code;this.message = message;} }

?

總結

以上是生活随笔為你收集整理的Spring Boot笔记-目前对Web后端开发的认识的全部內容,希望文章能夠幫你解決所遇到的問題。

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