欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

往DAO類(lèi)中注入@PersistenceContext和@Resource的區(qū)別詳解

 更新時(shí)間:2022年02月24日 11:27:13   作者:JeeLearner  
這篇文章主要介紹了往DAO類(lèi)中注入@PersistenceContext和@Resource的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

DAO類(lèi)注入@PersistenceContext和@Resource區(qū)別

@PersistenceContext

private EntityManager em;

注入的是實(shí)體管理器,執(zhí)行持久化操作的,需要配置文件persistence.xml。

注入一堆保存實(shí)體類(lèi)狀態(tài)的數(shù)據(jù)結(jié)構(gòu),針對(duì)實(shí)體類(lèi)的不同狀態(tài)(四種,managedh或detached等)可以做出不同的反應(yīng)(merge,persist等等),其實(shí)就是把數(shù)據(jù)從數(shù)據(jù)庫(kù)里提出,然后在內(nèi)存里處理的,再返回?cái)?shù)據(jù)庫(kù)的法則。

@Resource

是注入容器提供的資源對(duì)象,比如SessionContext MessageDrivenContext?;蛘吣隳莻€(gè)name指定的JNDI對(duì)象

可以理解為資源->數(shù)據(jù)源->也就是數(shù)據(jù)連接,基本上就是告訴程序數(shù)據(jù)庫(kù)在哪里 

JPA中為什么EntityManager的注解要用@PersistenceContext

在使用SpringJPA的時(shí)候,看到如下代碼

 @PersistenceContext
 private EntityManager entityManager;

于是就有些好奇,這個(gè)@PersistenceContext是幾個(gè)意思,如果是實(shí)體注入的話,統(tǒng)一采用

@Autowired可以嗎?于是上網(wǎng)查了下,幾乎所有的EntityManager都是采用這個(gè)注解的,就去找了找原因。

根據(jù)上面的描述,總結(jié)如下

  • @PersistenceContext是jpa專(zhuān)有的注解,而@Autowired是spring自帶的注釋
  • EntityManager不是線程安全的,當(dāng)多個(gè)請(qǐng)求進(jìn)來(lái)的時(shí)候,spring會(huì)創(chuàng)建多個(gè)線程,@PersistenceContext就是用來(lái)為每個(gè)線程創(chuàng)建一個(gè)EntityManager的,而@Autowired只創(chuàng)建了一個(gè),為所有線程共用,有可能報(bào)錯(cuò)
  • 在使用EntityManager的時(shí),請(qǐng)采用@PersistenceContext進(jìn)行注解,而不要使用@Autowired

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java通過(guò)Freemarker模板實(shí)現(xiàn)生成Word文件

    Java通過(guò)Freemarker模板實(shí)現(xiàn)生成Word文件

    FreeMarker是一款模板引擎: 即一種基于模板和要改變的數(shù)據(jù), 并用來(lái)生成輸出文本的通用工具。本文將根據(jù)Freemarker模板實(shí)現(xiàn)生成Word文件,需要的可以參考一下
    2022-09-09
  • 淺談Java如何實(shí)現(xiàn)一個(gè)基于LRU時(shí)間復(fù)雜度為O(1)的緩存

    淺談Java如何實(shí)現(xiàn)一個(gè)基于LRU時(shí)間復(fù)雜度為O(1)的緩存

    這篇文章主要介紹了淺談Java如何實(shí)現(xiàn)一個(gè)基于LRU時(shí)間復(fù)雜度為O(1)的緩存,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • springboot @Valid注解對(duì)嵌套類(lèi)型的校驗(yàn)功能

    springboot @Valid注解對(duì)嵌套類(lèi)型的校驗(yàn)功能

    這篇文章主要介紹了springboot~@Valid注解對(duì)嵌套類(lèi)型的校驗(yàn),主要介紹 @Valid在項(xiàng)目中的使用,需要的朋友可以參考下
    2018-05-05
  • 使用Java實(shí)現(xiàn)DNS域名解析的簡(jiǎn)單示例

    使用Java實(shí)現(xiàn)DNS域名解析的簡(jiǎn)單示例

    這篇文章主要介紹了使用Java實(shí)現(xiàn)DNS域名解析的簡(jiǎn)單示例,包括對(duì)一個(gè)動(dòng)態(tài)IP主機(jī)的域名解析例子,需要的朋友可以參考下
    2015-10-10
  • Java多線程并發(fā)FutureTask使用詳解

    Java多線程并發(fā)FutureTask使用詳解

    Java?的多線程機(jī)制本質(zhì)上能夠完成兩件事情,異步計(jì)算和并發(fā),F(xiàn)utureTask?是基于?Runnable?實(shí)現(xiàn)的一個(gè)可取消的異步調(diào)用?API,本文給大家介紹Java?多線程并發(fā)FutureTask及基本使用,需要的朋友可以參考下
    2022-06-06
  • Spring boot 集成 Druid 數(shù)據(jù)源過(guò)程詳解

    Spring boot 集成 Druid 數(shù)據(jù)源過(guò)程詳解

    這篇文章主要介紹了Spring boot 集成 Druid 數(shù)據(jù)源過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • JAVA匿名內(nèi)部類(lèi)語(yǔ)法分析及實(shí)例詳解

    JAVA匿名內(nèi)部類(lèi)語(yǔ)法分析及實(shí)例詳解

    這篇文章主要介紹了JAVA匿名內(nèi)部類(lèi)語(yǔ)法分析及實(shí)例詳解,匿名內(nèi)部類(lèi)可以使你的代碼更加簡(jiǎn)潔,它與局部類(lèi)很相似,不同的是它沒(méi)有類(lèi)名,如果某個(gè)局部類(lèi)你只需要用一次,那么你就可以使用匿名內(nèi)部類(lèi)。對(duì)此感興趣的可以了解一下
    2020-07-07
  • springboot加載復(fù)雜的yml文件獲取不到值的解決方案

    springboot加載復(fù)雜的yml文件獲取不到值的解決方案

    這篇文章主要介紹了springboot加載復(fù)雜的yml文件獲取不到值的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Spring Boot整合MyBatis操作過(guò)程

    Spring Boot整合MyBatis操作過(guò)程

    這篇文章主要介紹了Spring Boot整合MyBatis操作過(guò)程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-04-04
  • Spring.Net在MVC中實(shí)現(xiàn)注入的原理解析

    Spring.Net在MVC中實(shí)現(xiàn)注入的原理解析

    這篇文章主要介紹了Spring.Net在MVC中實(shí)現(xiàn)注入的原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09

最新評(píng)論