第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事务所管理的
分享到:
相关推荐
php集成环境php集成环境php集成环境php集成环境
m20125的集成环境优秀的集成开发环境。强大的多工程管理,高效的智能感知,突破性的用户体验,51、ARM、AVR、MIPS、CCORE多内核支持。借助TKStudio,节省开发时间,提高编码效率。TKStudio历时十载,饱经磨砺,锋芒...
【为什么要使用PHPWAMP集成环境,而不是其他集成环境呢?】 1、因为PHPWAMP解压即可使用,你甚至不需要安装VC运行库也可直接运行,而其他的集成环境都需要你额外去安装vc运行库,下载费时间,安装也费时间。 2、...
Windows、Nginx、MySQL、PHP集成环境 解压即可使用 版本信息: nginx 1.5.8 php 5.2.16 x86 start_nginx.bat启动wnmp集成环境 stop_nginx.bat关闭wnmp集成环境
服务器php环境搭建(phpwamp服务器集成环境下载)
PHP7集成环境,可运行于Windows Server 2003/2008/2012/2016 ; XP/Vista/Win7/Win8.1/Win10 ; 32/64位; 快速的Apache+PHP+Redis+数据库集成服务开启与关闭。 支持Apache服务的单独开启、关闭与重启。 支持数据库...
IE tester集成环境
一个C/C++的集成环境```还不错`嘎嘎``里面还有一些实例!遗憾的就是要注册才能使用里面一些好的功能
Masm集成环境,在windows环境下的汇编利器,告别黑屏时代
php程序员工具箱集成环境,很多工具很实用。php程序员工具箱集成环境。
masmt汇编集成环境软件安装包 一个集成了 masm 和 link 的 批处理程序,很实用……
wamp一键集成环境win7 64位版本
xampp8.1.4 windows php 集成环境
CC.NET持久化集成环境,CruiseControl.Net安装包,包含服务端和客户端1.8.0
Visual C++集成环境编辑、调试和运行C++程序的方法。高级语言源程序处理过程
Apachet与tomcat的集成环境! 超强大!
PHP,phpStudy一键集成环境,免费版phpStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境
持续集成环境maven+nexus+jenkins+svn搭建
基于Jenkins快速搭建持续集成环境.pdf
Wamp5是Apache+PHP+Mysql 集成环境,拥有简单的图形和菜单安装和配置环境。该版本集成了PHP5.2.5 Mysql5 Apache2 phpMyAdmin 2.11.2.1 SQLiteManager 1.2.0 满了大部分PHPer的需求…