最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring boot + jpa + kotlin入門實例詳解

 更新時間:2017年07月23日 10:00:57   作者:xiao.chun  
這篇文章主要介紹了spring boot + jpa + kotlin入門實例詳解 ,需要的朋友可以參考下

spring boot +jpa的文章網(wǎng)絡(luò)上已經(jīng)有不少,這里主要補充一下用kotlin來做。

kotlin里面的data class來創(chuàng)建entity可以幫助我們減少不少的代碼,比如現(xiàn)在這個User的Entity,這是Java版本的:

@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String firstName;
private String lastName;
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
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;
}
}

上面的那一大段變成kotlin,就像下面的這樣的:

@Entity
data class User(@Id @GeneratedValue(strategy = GenerationType.AUTO) val id: Long = 0L, val firstName: String = "", val lastName: String = "")

連我這個用C#的人都覺得動心,如果你是Java的開發(fā)者,真的可以考慮試試看。

不過,這里還有個小提示,在kotlin里,如果你不給User給出默認的構(gòu)造函數(shù),那是會報錯的,報錯信息為

o.s.boot.web.support.ErrorPageFilter : Forwarding to error page from request / due to exception No default constructor for entity: : com._1b2m.springbootkotin.User; nested exception is org.hibernate.InstantiationException: No default constructor for entity: : com._1b2m.springbootkotin.User

提示是沒有默認的構(gòu)造函數(shù),我們可以為User類的構(gòu)造函數(shù)增加參數(shù)默認值來完成,就如同上面我寫的樣子。

題外話,在Java里,IDE可以幫助我們生成getter和setter。但是就算是這樣,也沒有像kotlin那樣能把那么長的代碼縮成一行,一個entity一行就寫完,這感覺很不要太好。

另外,在Java里,使用CrudRepository時,這樣用就行:

@Autowired
UserRepository repository;

但是在kotlin里,編譯都無法通過,會報出這樣一條錯誤:

property must be initialized or be abstract

要解決這個問題,需要增加lateinit,就像 這樣:

@Autowired
lateinit var repository: UserRepository

其他的基本跟Java一致。

本文提到的源碼放在github

在寫spring boot程序時,kotlin的確少寫了非常多的代碼,這令我對這門語言也有所期待了。

以上所述是小編給大家介紹的spring boot + jpa + kotlin入門實例詳解 ,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!

相關(guān)文章

  • java 中Comparable與Comparator詳解與比較

    java 中Comparable與Comparator詳解與比較

    這篇文章主要介紹了java 中Comparable與Comparator詳解與比較的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • @WebFilter在SpringBoot無效的原因分析和解決方案

    @WebFilter在SpringBoot無效的原因分析和解決方案

    使用Ruoyi的demo部署成功后,發(fā)現(xiàn)js、css等靜態(tài)文件都進入了過濾器,但是發(fā)現(xiàn)靜態(tài)文件沒有使用瀏覽器緩存,新建BrowserCacheFilter.java并增加@WebFilter處理,應(yīng)用自動重啟后發(fā)現(xiàn)@WebFilter無效,所以本文給大家介紹了@WebFilter在SpringBoot無效的原因分析和解決方案
    2024-03-03
  • 為什么wait和notify必須放在synchronized中使用

    為什么wait和notify必須放在synchronized中使用

    這篇文章主要介紹了為什么wait和notify必須放在synchronized中使用,文章圍繞主題的相關(guān)問題展開詳細介紹,具有一定的參考價值,需要的小伙伴可以參考以參考一下
    2022-05-05
  • 分布式框架Zookeeper?api的使用介紹

    分布式框架Zookeeper?api的使用介紹

    Zookeeper作為?個分布式框架,主要用來解決分布式?致性問題,它提供了簡單的分布式原語,并且對多種編程語?提供了API,所以接下來重點來看下Zookeeper的java客戶端API使用方式
    2022-09-09
  • JAVA驗證身份證號碼有效性的實例代碼

    JAVA驗證身份證號碼有效性的實例代碼

    很多項目業(yè)務(wù)都會設(shè)計到人員信息,那么身份證號就是必不可少的校驗項,下面這篇文章主要給大家介紹了關(guān)于JAVA驗證身份證號碼有效性的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • Spring?Batch批處理框架操作指南

    Spring?Batch批處理框架操作指南

    Spring?Batch?是?Spring?提供的一個數(shù)據(jù)處理框架。企業(yè)域中的許多應(yīng)用程序需要批量處理才能在關(guān)鍵任務(wù)環(huán)境中執(zhí)行業(yè)務(wù)操作,這篇文章主要介紹了Spring?Batch批處理框架操作指南,需要的朋友可以參考下
    2022-07-07
  • Java學(xué)習(xí)之線程同步與線程間通信詳解

    Java學(xué)習(xí)之線程同步與線程間通信詳解

    這篇文章主要為大家詳細介紹了線程同步和線程之間的通信的相關(guān)知識,文中的示例代碼講解詳細,對我們學(xué)習(xí)Java有一定的幫助,感興趣的可以了解一下
    2022-12-12
  • 淺談TreeSet中的兩種排序方式

    淺談TreeSet中的兩種排序方式

    下面小編就為大家?guī)硪黄獪\談TreeSet中的兩種排序方式。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Spring Security中防護CSRF功能詳解

    Spring Security中防護CSRF功能詳解

    這篇文章主要介紹了Spring Security中防護CSRF功能,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • spring boot里增加表單驗證hibernate-validator并在freemarker模板里顯示錯誤信息(推薦)

    spring boot里增加表單驗證hibernate-validator并在freemarker模板里顯示錯誤信息(推

    這篇文章主要介紹了spring boot里增加表單驗證hibernate-validator并在freemarker模板里顯示錯誤信息的相關(guān)資料,需要的朋友可以參考下
    2018-01-01

最新評論

南康市| 扶余县| 甘泉县| 汝城县| 新和县| 江口县| 宁南县| 江北区| 鲁甸县| 孟连| 乌拉特后旗| 古蔺县| 个旧市| 胶南市| 长顺县| 修文县| 桓台县| 花莲县| 金塔县| 易门县| 新蔡县| 辽阳市| 关岭| 白水县| 湛江市| 赣榆县| 东乌| 成武县| 西盟| 泰和县| 安阳县| 江城| 濮阳县| 通海县| 历史| 南充市| 同心县| 介休市| 兰西县| 永登县| 阳高县|