iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >往DAO类中注入@PersistenceContext和@Resource的区别详解
  • 734
分享到

往DAO类中注入@PersistenceContext和@Resource的区别详解

2024-04-02 19:04:59 734人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录DAO类注入@PersistenceContext和@Resource区别@PersistenceContext@ResourceJPA中为什么EntityManager的注解要

DAO类注入@PersistenceContext和@Resource区别

@PersistenceContext

private EntityManager em;

注入的是实体管理器,执行持久化操作的,需要配置文件persistence.xml。

注入一堆保存实体类状态的数据结构,针对实体类的不同状态(四种,managedh或detached等)可以做出不同的反应(merge,persist等等),其实就是把数据从数据库里提出,然后在内存里处理的,再返回数据库的法则。

@Resource

是注入容器提供的资源对象,比如SessionContext MessageDrivenContext。或者你那个name指定的JNDI对象

可以理解为资源->数据源->也就是数据连接,基本上就是告诉程序数据库在哪里 

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

在使用springJPA的时候,看到如下代码

 @PersistenceContext
 private EntityManager entityManager;

于是就有些好奇,这个@PersistenceContext是几个意思,如果是实体注入的话,统一采用

@Autowired可以吗?于是上网查了下,几乎所有的EntityManager都是采用这个注解的,就去找了找原因。

根据上面的描述,总结如下

  • @PersistenceContext是jpa专有的注解,而@Autowired是spring自带的注释
  • EntityManager不是线程安全的,当多个请求进来的时候,spring会创建多个线程,@PersistenceContext就是用来为每个线程创建一个EntityManager的,而@Autowired只创建了一个,为所有线程共用,有可能报错
  • 在使用EntityManager的时,请采用@PersistenceContext进行注解,而不要使用@Autowired

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 往DAO类中注入@PersistenceContext和@Resource的区别详解

本文链接: https://www.lsjlt.com/news/140365.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 往DAO类中注入@PersistenceContext和@Resource的区别详解
    目录DAO类注入@PersistenceContext和@Resource区别@PersistenceContext@ResourceJPA中为什么EntityManager的注解要...
    99+
    2024-04-02
  • 往DAO类中注入@PersistenceContext和@Resource有什么区别
    本文小编为大家详细介绍“往DAO类中注入@PersistenceContext和@Resource有什么区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“往DAO类中注入@PersistenceContext和@Resource有什么区别...
    99+
    2023-06-29
  • 深入分析@Resource和@Autowired注解区别
    目录引言1、用法层面分析2、概念层面分析3、源码层面分析引言 @Resource和@Autowired都是Spring Framework中用于依赖注入的注解,但它们有几点不同: 来...
    99+
    2023-05-16
    @Resource @Autowired注解区别 @Resource @Autowired
  • Spring中@Autowired、@Resource和@Inject注解的区别是什么
    这篇文章主要介绍了Spring中@Autowired、@Resource和@Inject注解的区别是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Spring中@Autowired、@Resource和@I...
    99+
    2023-07-05
  • 深入了解Spring中的@Autowired和@Resource注解
    目录@Autowired@Resource总结应用场景@Resource和@Autowired是Spring Framework中两种常用的注入方式,它们的作用是在Spring容器中...
    99+
    2023-05-17
    Spring @Autowired和@Resource Spring @Autowired Spring @Resource
  • 详解JS中? ?和?. 和||的区别
    目录1、 与 || 的区别2、 和 . 的区别1、 与 || 的区别 1)相同点: 和 || 的用法相同,都是前后是值,中间用符号连接,根据前面的值来判断最终是返回前面的值还是后面...
    99+
    2024-04-02
  • Servlet中/和/*的区别详解
    目录本文提纲版本约定✍正文点拨“市面上”的错误答案1、/用于Servlet,demo:这个urlPatterns是合法的。只不过它属于精确匹配,也就是说别看它中间有*,仍...
    99+
    2024-04-02
  • mysql中#{}和${}的区别详解
    #{}会将传入的数据当成一个字符串,会对自动传入的数据加一个双引号 order by #{userId}   这里假如userId = 111,那么解析成sql时...
    99+
    2024-04-02
  • mybatis中#{}和${}的区别详解
    目录一、MyBatis中${}和#{}的区别1.1 ${}和#{}演示1.2 SQL注入问题1.3 ${}和#{}的区别1.4 #{}底层是如何防止SQL注入的?1.4.1 网上的答...
    99+
    2024-04-02
  • JavaScript/TypeScript中==和===的区别详解
    在JS/TS项目里,除了能看到==操作符来判断两个变量是否相等外,我们还会看到===操作符,这两者有什么区别吗? 先上结论, 对于String, number这些基础类型,==操作符...
    99+
    2024-04-02
  • Java 接口和抽象类的区别详解
    目录什么是抽象类和接口? 区别在哪里?抽象类接口抽象类和接口解决了什么问题?如何模拟抽象类和接口如何决定该用抽象还是接口?什么是抽象类和接口? 区别在哪里? 不同的编程语言对接口和...
    99+
    2024-04-02
  • 详解Java中==和equals()的区别
    目录1. ==1.1 基本数据类型1.2 引用数据类型1.3 小结2. equals3. 总结1. == == 是运算符,用来判断两个值是否相等,==可以使用在基本数据类型变量和引用...
    99+
    2024-04-02
  • Java中equals和==的区别详解
    目录1.java中的数据类型,可分为两类: 2.再稍微改动一下程序,会有更奇怪的发现: 3. 字符串缓冲池 4.再次更改程序: 总结1.java中的数据类型,可分为两类: 1.基本...
    99+
    2024-04-02
  • 详谈spring中bean注入无效和new创建对象的区别
    目录bean注入无效和new创建对象区别项目中用到如下代码检查代码发现bean交个spring和new比较区别主要是解耦bean注入无效和new创建对象区别 注意!如果直接new的话...
    99+
    2024-04-02
  • Pandas中的unique()和nunique()区别详解
    Pandas中Series和DataFrame的两种数据类型中都有nunique()和unique()方法。这两个方法作用很简单,都是求Series或Pandas中的不同值。而uni...
    99+
    2024-04-02
  • 详解Python中Pytest和Unittest的区别
    目录1.安装和使用2.编写测试用例3.自动发现测试用例4.插件和扩展5.运行速度6.报告7.社区支持昨天在群里面,有两个新手的小伙伴提问:Pytest 和 Unittest是Pyth...
    99+
    2023-03-13
    Python Pytest Unittest区别 Python Pytest Unittest
  • 详解Mybatis中javaType和ofType的区别
    目录一. 背景描述二. 情景再现1. 实体类2.BookMapper.xml映射文件3. 核心配置4. 测试代码5. 修改实体类6. 添加映射文件BookTypeMapper.xml...
    99+
    2023-05-20
    Mybatis javaType和ofType
  • 详解vue中$router和$route的区别
    我们在 vue 项目中一般都会用到路由,而 vue-router 是 vue.js 官方的路由管理器。 this.$route:当前激活的路由的信息对象。每个对象都是局部的,可以获取...
    99+
    2024-04-02
  • Java中Exception和Error的区别详解
    世界上存在永远不会出错的程序吗?也许这只会出现在程序员的梦中。随着编程语言和软件的诞生,异常情况就如影随形地纠缠着我们,只有正确的处理好意外情况,才能保证程序的可靠性。 java语...
    99+
    2024-04-02
  • 详解Django中CSRF和CORS的区别
    目录一、CSRF:保护机制二、CORS:跨域访问一、CSRF:保护机制 Django预防CSRF攻击的方法是在用户提交的表单中加入一个csrftoken的隐含值,这个值和服务器中保存...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作