第13集:集成JPA环境
1。在整合struts、spring、jpa这几个框架时,为什么是先准备好jpa的环境呢?
答:因为这是按这几个框架的依赖关系来确定的,spring要调用jpa,struts要调用spring,按照被调用者(被依赖者)先创建的原则,所以要先集成jpa,只有jpa测试通过后,再集成spring来调用jpa。
2.。采用jpa的hibernate实现来做数据访问,需要准备哪些jar包呢?
答:除了要准备hibernate自身和hibernate自身依赖的包外,还要准备hibernate的jpa实现包和该实现包所依赖的包,hibernate自身和hibernate的jpa实现属于两个独立的产品,需要单独下载。
3. 采用jpa的hibernate实现来做数据访问,需要哪些步骤?
答:1)导入hibernate与其jpa实现的有关包;2)导入数据库的jdbc驱动包;3)在classpath根路径下建立META-INF/persistence.xml文件;4)参照一个例子配置persistence.xml文件
4.persistence.xml文件中的持久化单元的名称有什么用?
关于第15段的问题
第15章在写业务类时,在前面加上@Service标注,是了表明这是一个能自动从容器中获取的bean,
可在bean.xml 中以有<context:component-scan base-package="com.itcast" /> 这样的配置,那么
上面的标注是不是多余了呢.
再就是业务类中的@PersistenceContext EntityManager em; 为啥EntityManager也能被注入,
是在哪被定义的呢.
至于你的第一个问题:
首先对于你说的在一个类上加上@Service注解后,该类
(即该bean)就好比为spring容器提供了一个标记,告诉
spring容器,我须要你来管理我,这个注解做的事也仅此
而以,至于<context: component-scan base-package="com.czbk"/>
黎老师说它的主要用途是解决一个项目里存在大量的bean须要
spring来管理,这样过多的配置文件导致可维护性差,用
该标签即开启了对指定包的扫描,它将会把@component
@conntroller @service @Repository作为受管理的bean放入spring
容器. 所以如果加上了注解没开扫描是不会产生任何作用的
至于你的第二个问题:
@persistenceContext EntityManager em;
首先我们从字面上去理解@persistenceContext它即为持久化上下文
我把它理解为持久化容器,因为它是JPA的注解,即表示的是JPA的持久
化容器,我们在META-INF会有一个persistence.xml文件来配置jpa的持
久化容器,至于它是如何将entityManager对象注入给em对象的也许只有
看源码才知道它是如何做的,但至少从这里我们可以知道,它在替
我们注入EntityManager的同时,被注入的EntityManager它是被容
器所管理的,即它是存在事务的,关键地方是它似乎依赖于
javax.persistence.EntityManagerFactory这个bean,如果不存在该bean
则会报异常
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName">
<value>itcast</value>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"></property>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
这样看来entityManager的注入会用到我们在spring里配置的
EntityManagerFactory,由于该实体工厂被加入了JPA事务,即由它所创建的EntityManager也
同样是受JPA事务所管理的
分享到:
相关推荐
m20125的集成环境优秀的集成开发环境。强大的多工程管理,高效的智能感知,突破性的用户体验,51、ARM、AVR、MIPS、CCORE多内核支持。借助TKStudio,节省开发时间,提高编码效率。TKStudio历时十载,饱经磨砺,锋芒...
【为什么要使用PHPWAMP集成环境,而不是其他集成环境呢?】 1、因为PHPWAMP解压即可使用,你甚至不需要安装VC运行库也可直接运行,而其他的集成环境都需要你额外去安装vc运行库,下载费时间,安装也费时间。 2、...
**汇编语言与Masm集成环境** 汇编语言是一种低级编程语言,它与计算机硬件的指令集紧密对应,每条汇编指令通常对应一条机器码。在编程领域,汇编语言虽然不如高级语言那样易读易写,但在特定场景下,如系统编程、...
MASM汇编集成环境将汇编语言的编写、编译、链接等过程集成在一起,简化了开发流程,提高了开发效率。 **MASM集成环境的组件** 在提供的压缩包中,有以下几个关键文件: 1. **masmt安装.bat**:这是一个批处理程序...
本文将详细阐述如何使用PHPWAMP这一服务器集成环境来快速搭建PHP环境。 PHPWAMP是一款专门为Windows平台设计的PHP开发环境集成包,它包含了Apache服务器、MySQL数据库以及PHP解释器等必备组件,使得用户无需逐一...
集成环境如XAMPP、WAMP Server和AMPPS等,提供了将上述组件预配置在一起的解决方案,使得搭建过程更为简便。它们通常带有图形化的管理界面,方便用户启动、停止服务,管理数据库,甚至更新组件版本。 **6. 配置与...
标题中的“国内外最强PHP集成环境”指的是一个经过精心配置的PHP开发环境,它集成了所有必要的组件,使得开发者能够在Windows操作系统上快速、便捷地运行和开发PHP项目。这个集成环境的特点是“集成VC”,这意味着它...
"ASP调试工具,免装IIS,ASP集成环境" 提供了一种便捷的解决方案。这个工具集成了IIS的所有关键功能,使得开发者可以在本地快速搭建一个ASP网站,而无需安装完整的IIS服务。这大大简化了开发环境的设置,尤其适合...
**集成环境的配置** 配置PHP5.2.17和ASP的集成环境主要涉及以下几个步骤: 1. **安装EasyWebServer**:首先,下载并安装EasyWebServer软件,按照安装向导的提示完成安装过程。 2. **添加PHP支持**:在EasyWebServer...
NPMserv作为压缩包中的文件名,很可能是这种集成环境的一种实现。 首先,让我们来详细了解一下PHP。PHP(Hypertext Preprocessor,超文本预处理器)是一种广泛使用的开源脚本语言,特别适合于Web开发,可以嵌入到...
本文将详细介绍如何搭建PHP环境,以及推荐一款最佳的PHP集成环境——PHPWAMP。 首先,PHP环境搭建通常包括三个主要组件:PHP、Web服务器(如Apache或Nginx)和数据库管理系统(如MySQL)。这些组件的安装和配置可能...
除了基本的Web服务器、数据库和脚本语言,许多集成环境还提供了额外的功能,如FTP服务器(FileZilla)、邮件系统(Mercury Mail)、缓存机制(Memcached)、数据库管理工具(sqliteManager)等。这些扩展和服务可以显著增强...
一个C/C++的集成环境```还不错`嘎嘎``里面还有一些实例!遗憾的就是要注册才能使用里面一些好的功能
【VC2015-2019+KB976932+KB2999226集成环境】这个标题所提及的是一个针对Windows 7操作系统的软件开发环境,它集成了Visual C++从2015年到2019年的运行时库(Redistributable)以及两个重要的安全更新补丁。这个集成...
本文主要介绍了如何使用Jenkins快速搭建一个持续集成(CI)环境。持续集成是一种软件开发实践,...通过合理配置Jenkins的各种插件和服务,可以建立起高效且稳定的持续集成环境,从而优化软件开发流程,加快软件交付速度。
xampp8.1.4 windows php 集成环境
Linux下神通数据库与QT集成环境的搭建是一个涉及多个技术领域的过程,包括数据库操作、编程接口配置和图形用户界面开发。本文将详细介绍如何在Linux环境下搭建神通数据库与QT集成的开发环境,这包括了QT开发环境的...
Visual C++集成环境编辑、调试和运行C++程序的方法。高级语言源程序处理过程
PHP,phpStudy一键集成环境,免费版phpStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境