版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Spriing+Hibbernnatee整合Spriing是是一个轻轻量级的的beaan容器器,它为为业务对对象(bbusiinesss oobjeectss)、DDAO对对象和资资源对象象(如:JDBBC数据据源或者者Hibbernnatee SeessiionFFacttoriie等)提供了了IoCC类型的的装配能能力。SSpriing通通过使用用一个xxml格格式的配配置文件件,为开开发者提提供了一一种通过过定制属属性文件件来手动动管理单单例对象象或工厂厂对象的的可选择择性。由由于Spprinng将非非侵入性性做为一一个重要要的目标标,因此此由Spprinng配置置管理的的beaan均不
2、不需要依依赖Spprinng自身身的接口口和类,就可以以通过它它们的bbeann属性完完成配置置。从而而可以被被应用到到任何环环境中,无论你你开发的的是一个个J2EEE的wweb应应用还是是一个桌桌面应用用甚至只只是一个个appplett都可以以。在使用HHibeernaate的的应用中中,Spprinng对DDAO对对象通常常的事务务管理机机制应该该特别引引起关注注。它的的目的就就是分离离数据访访问和事事务处理理,使事事务性业业务对象象不与任任何特殊殊的数据据访问或或事务策策略耦合合在一起起,从而而不影响响业务对对象的可可复用性性。这种种划分既既可以经经由事务务模板(Traansaactii
3、onTTempplatte)用用在jaava代代码中编编程的方方式实现现,也可可以经由由AOPP的事务务拦截器器(一般般用TrranssacttionnProoxyFFacttoryyBeaan)用用在配置置文件中中声明的的方式实实现。无无论是本本地的HHibeernaate / JJDBCC事务,还是JJTA事事务都支支持对象象外的事事务策略略,这对对于本地地的无状状态会话话Beaan是一一个非常常有用的的选择。 Sprringg的HiiberrnatteTeempllatee类提供供了一个个简单的的方式实实现了HHibeernaate-bassed DAOO对象,而不必必关心如如何获得得H
4、ibbernnatee的Seessiion实实例,也也不必关关心多方方参与的的事务处处理。无无需使用用tryy-caatchh块,也也无需进进行事务务检查。一个简简单的HHibeernaate访访问方法法就完全全解决了了这些麻麻烦! 无论是是在多个个DAOO接口还还是在多多方事务务的情况况下,SSpriing使使得多种种DAOO对象无无缝地协协同工作作。例如如:某些些DAOO对象可可能是基基于pllainn JDDBC的的实现,更适合合于经由由Sprringg的JddbcTTempplatte来避避免手动动的异常常处理。 你你可以单单独地使使用许多多Sprringg特性,因为SSpriing的
5、的所有对对象都是是设计成成可复用用的JaavaBBeann的集合合。使用用其他的的Sprringg特性时时,应用用配置概概念是一一个附加加的特性性,并不不是一个个必须的特特性。无无论如何何,当你你要决定定去构建建一个象象 Spprinng这样样的内在在的基础础架构的的时候并并没有什什么范围围上的限限制。1. 介介绍: 资源管管理 典型的的业务应应用系统统常常由由于重复复的资源源管理代代码而导导致混乱乱。许多多项目试试着用自自己的方方法来解解决这个个问题,有时为为此要付付出失败败的代价价,Spprinng针对对适当的的资源管管理提倡倡了一种种引人注注目的简简单方法法:即经经由模板板来倒置置控制(
6、Invverssionn off coontrrol),例如如:基础础类使用用回调接接口,或或者应用用AOPP拦截器器。其基基础核心心是适当当的资源源处理和和将特殊殊的APPI异常常转换为为一个uunchheckked的的基础异异常。 Sprringg引入了了一个DDAO异异常层用用于任何何数据访访问策略略。Spprinng框架架对于直直接的JJDBCC或JddbcTTempplatte类,都会将将Connnecctioon异常常、SQQLExxcepptioon异常常转换为为适当的的DattaAcccesssExxcepptioon异常常,包括括对特殊殊数据库库的SQQL错误误转换为为有意义
7、义的异常常。经由由不同的的事务管管理对象象,Spprinng支持持JTAA和JDDBC事事务。SSpriing 也提供供对Hiiberrnatte的支支持,它它的这种种支持由由类似于于JdbbcTeempllatee的HiiberrnatteTeempllatee类、HHibeernaateIInteerceeptoor类,还有HHibeernaate事事务管理理类组成成。 Sprringg框架最最主要的的目的是是使系统统层次分分明,即即将数据据访问和和事务处处理同应应用对象象分离开开来。所所有的业业务对象象都不再再依赖数数据访问问或者事事务策略略。不再再有硬编编码的资资源查找找代码,不再有有
8、难以替替换的单单例对象象,也不不再需要要定制服服务注册册。 所所有的单单独的数数据访问问特性均均无需依依赖于SSpriing而而单独使使用,无无需让SSpriing知知道,同同时也可可以通过过Sprringg的应用用配置来来进行装装配(提提供基于于XMLL的配置置和对普普通JaavaBBeann实例的交交叉引用用)。在在一个典典型的SSpriing应应用中,大部分分重要的的对象都都是普通通的JaavaBBeann:数据据访问模模板对象象(daata acccesss teempllatees)、数据访访问对象象(使用用数据访访问模板板对象的的对象)、事务务管理对对象及业业务对象象(使用用数据访
9、访问对象象和事务务对象的的对象),weeb表示示分解对对象、wweb控控制对象象(使用用业务对对象的对对象)等等等。2. 应应用配置置中的资资源定义义 为了避避免应用用对象将将查找资资源的代代码进行行硬编码码,Spprinng允许许在应用用配置中中将一个个如JDDBC DattaSoourcce或者者Hibbernnatee SeessiionFFacttoryy定义为为一个BBeann。应用用对象如如果需要要访问资资源只需需要通过过Beaan引用用(DAAO定义义在下一一部分说说明)接接受先前前定义的的实例的的引用。以下的的内容引引用自一一个应用用配置定定义,显显示了如如何建立立一个JJDB
10、CC DaataSSourrce和和一个HHibeernaate的的SesssioonFaactoory:jdbbc/mmydssprooducct.hhbm.xmllnnet.sf.hibbernnatee.diialeect.MySSQLDDiallectt. 注注意选择择是用JJNDII来定位位数据源源还是从从一个象象Jakkartta CCommmonss DBBCP BassicDDataaSouurcee这样的的本地定定义取得得一个数数据源,只需要要改变配配置文件件就行了了:orgg.hssqlddb.jjdbccDriiverrjdbbc:hhsqlldb:hsqql:/looc
11、allhosst:990011sa 你也可可以使用用一个JJNDII查找SSesssionnFacctorry,但但是通常常对于EEJB环环境之外外的应用用来说并并不是需需要的。3. 倒倒置控制制(Innverrsioon oof CConttroll): 模板和和回调 模板的的基本编编程方法法就如同同任何定定制的数数据访问问对象或或者业务务的对象象的方法法一样:仅仅提提供一个个Hibbernnatee的 SSesssionnFacctorry。虽虽然最好好是从SSpriing的的应用配配置中经经由一个个简单ssetSSesssionnFacctorry bbeann的属性性设置使使用Beea
12、n引引用来获获得它,但随后后你可以以从任何何地方获获得它。随后的的引用片片段包括括一段在在Sprringg应用配配置中对对DAOO定义的的配置,其中引引用了在在其前面面定义的的SesssioonFaactoory,和一段段DAOO方法的的实现的的例子。javaa代码:publlic claass ProoducctDaaoImmpl impplemmentts PProdducttDaoo privvatee SeessiionFFacttoryy seessiionFFacttoryy;publlic voiid ssetSSesssionnFacctorry(SSesssionnFacct
13、orry ssesssionnFacctorry) thiss.seessiionFFacttoryy = sesssioonFaactoory;publlic Lisst lloaddProoducctsBByCaateggoryy(fiinall Sttrinng ccateegorry) HibeernaateTTempplatte hhibeernaateTTempplatte =neww HiiberrnatteTeempllatee(thhis.sesssioonFaactoory);retuurn (Liist) hiiberrnatteTeempllatee.exxecuute
14、(neww HiiberrnatteCaallbbackk() publlic Objjectt dooInHHibeernaate(Sesssioon ssesssionn) tthroowsHHibeernaateEExceeptiion Listt reesullt = seessiion.finnd(froom ttestt.Prroduuct prooducct wwherre prodductt.caateggoryy=?,caateggoryy, HHibeernaate.STRRINGG);/ ddo ssomee fuurthher stuuff witth tthe res
15、sultt liistretuurn ressultt;);通常对对于以上上的jaava代代码,一一般都会会继承HHibeernaateDDaoSSuppportt类,而而在该类类中已经经定义了了SesssioonFaactoory,所以无无需再重重复定义义,而直直接定义义DAOO实现方方法就行行了。即即:publlic claass ProoducctDaaoImmpl exttendds HHibeernaateDDaoSSuppportt immpleemennts ProoducctDaao publlic Lisst lloaddProoducctsBByCaateggoryy(fi
16、inall Sttrinng ccateegorry) HibeernaateTTempplatte hhibeernaateTTempplatte =neww HiiberrnatteTeempllatee(thhis.sesssioonFaactoory);retuurn (Liist) hiiberrnatteTeempllatee.exxecuute(neww HiiberrnatteCaallbbackk() publlic Objjectt dooInHHibeernaate(Sesssioon ssesssionn) tthroowsHHibeernaateEExceeptiio
17、n Listt reesullt = seessiion.finnd(froom ttestt.Prroduuct prooducct wwherre prodductt.caateggoryy=?,caateggoryy, HHibeernaate.STRRINGG);/ ddo ssomee fuurthher stuuff witth tthe ressultt liistretuurn ressultt;);在任何HHibeernaate数数据访问问中都可可以进行行事务回回滚。在在任何情情况下都都由HiiberrnatteTeempllatee来管理理Sesssioon的开开闭和自自动
18、的多多方事务务。模板板实例是是线程安安全和可可重用的的,因此此它们可可以做为为其他类类的变量量。 对于简简单的单单步动作作,象ffindd、looad、savveOrrUpddatee或deelette的调调用,HHibeernaateTTempplatte提供供更为便便利的选选择以代代替象一一行的回回调的执执行。此此外,SSpriing 提供了了一个方方便的基基本类,就是HHibeernaateDDaoSSuppportt类,它它提供了了settSesssioonFaactoory方方法来接接受一个个 SeessiionFFacttoryy,同时时提供了了gettSesssioonFaact
19、oory和和gettHibbernnateeTemmplaate方方法供其其继承类类使用。将这些些结合起起来,允允许对于于典型的的需求给给出了非非常简单单的DAAO实现现:publlic claass ProoducctDaaoImmpl exttendds HHibeernaateDDaoSSuppportt immpleemennts ProoducctDaaopubllic Lisst lloaddProoducctsBByCaateggoryy(Sttrinng ccateegorry) retuurn gettHibbernnateeTemmplaate().ffindd(ffrom
20、m teest.Prooducct pprodductt whheree prodductt.caateggoryy=?,caateggoryy,Hiiberrnatte.SSTRIING); 4. 应应用一个个AOPP拦截器器代替一一个模板板 除除使用HHibeernaateTTempplatte之外外的另一一个选择择就是使使用Spprinng的AAOP HibbernnateeIntterccepttor。用直接接在一个个委托的的tryy/caatchh块中编编写Hiiberrnatte代码码,配合合在应用用配置中中针对的的拦截器器进行来来代替执执行回调调。下面面的片段段显示了了一个SSp
21、riing应应用配置置中的DDAO,intterccepttor和和prooxy的的各自的的定义,同时给给出了一一个DAAO方法法实现的的例子:prooducct.PProdducttDaoomyHHibeernaateIInteerceeptoormyPProdducttDaooTarrgettjavaa代码:publlic claass ProoducctDaaoImmpl exttendds HHibeernaateDDaoSSuppportt immpleemennts ProoducctDaao publlic Lisst lloaddProoducctsBByCaateggoryy
22、(fiinall Sttrinng ccateegorry)tthroows MyEExceeptiion Sesssionn seessiion = SSesssionnFacctorryUttilss.geetSeessiion(gettSesssioonFaactoory(),ffalsse);TryListt reesullt = seessiion.finnd(froom ttestt.Prroduuct prooducct wwherre pprodductt.caateggoryy=?,cateegorry, Hibbernnatee.STTRINNG);if (ressultt
23、 = nuull)throow nnew MyEExceeptiion(innvallid seaarchh reesullt);retuurn ressultt;catcch (HibbernnateeExccepttionn exx)throow SSesssionnFacctorryUttilss.coonveertHHibeernaateAAcceessEExceeptiion(ex); 这个个方法将将只在有有一个与与它配合合的HiiberrnatteInnterrcepptorr时才能能正常工工作,HHibeernaateIInteerceeptoor为它它负责在在方法调调用前线线程
24、绑定定Sesssioon的开开启和方方法调用用后的关关闭。ggetSSesssionn方法调调用中的的faalsee标志志是要确确认Seessiion必必须是已已经存在在的,如如果没有有发现任任何一个个Sesssioon,SSesssionnFacctorryUttilss将会为为其创建建一个。如果已已经有一一个Seessiion句句柄绑定定在本线线程上,比如是是由一个个HibbernnateeTraansaactiionMManaagerr事务绑绑定的,在任何何情况下下SesssioonFaactooryUUtills会自自动接入入这个SSesssionn。HiiberrnatteTeemp
25、llatee在底层层也使用用SesssioonFaactooryUUtills,与与以上说说的方式式基本是是一样的的。 HibbernnateeIntterccepttor的的主要益益处是它它允许在在数据访访问代码码中抛出出cheeckeed aappllicaatioon eexceeptiion,而HiiberrnatteTeempllatee由于受受限于回回调只能能在其中中抛出uunchheckked exccepttionns。注注意到这这点我们们可以推推迟各自自的检验验,同时时在回调调后抛出出应用异异常。拦拦截方式式的主要要缺点是是它需要要在配置置中进行行特殊的的配置。 Hiiber
26、rnatteTeempllatee在大多多数情况况下都是是一种简简单好用用的方法法。5. 程程序事务务划分 在这种种底层的的数据访访问服务务之上,事务处处理可以以在更高高的应用用层中形形成一些些操作。这里除除了需要要一个SSpriing的的PlaatfoormTTrannsacctioonMaanagger对对象外,对于周周围运行行的业务务对象也也没有任任何限制制。同样样的,其其后你可可以从任任何地方方获得它它们,但但是经由由Beaan引用用的方式式通过ssetTTrannsacctioonMaanagge方法法获得更更为适合合,象 prooducctDAAO要经经由一个个settProodu
27、cctDaao方法法获得一一样。下下面的引引用片段段显示了了在一个个Sprringg应用配配置中的的事务管管理对象象和业务务对象的的定义,并且还还提供了了一个业业务方法法实现的的例子:javaa代码:publlic claass ProoducctSeerviiceIImpll immpleemennts ProoducctSeerviiceprivvatee PllatfformmTraansaactiionMManaagerr trranssacttionnMannageer;privvatee PrroduuctDDao prooducctDaao;publlic voiid ssetT
28、TrannsacctioonMaanagger(PlaatfoormTTrannsacctioonMaanagger traansaactiionMManaagerr) thiss.trranssacttionnMannageer = trranssacttionnMannageer;publlic voiid ssetPProdducttDaoo(PrroduuctDDao prooducctDaao) thiss.prroduuctDDao = pprodducttDaoo;publlic voiid iincrreassePrriceeOfAAllPProdducttsInnCatteg
29、oory(finnal Strringgcattegoory) TrannsacctioonTeempllatee trranssacttionnTemmplaate =new TraansaactiionTTempplatte(tthiss.trranssacttionnMannageer);trannsacctioonTeempllatee.seetPrropaagattionnBehhaviior(TraansaactiionDDefiinittionn.PROOPAGGATIION_REQQUIRRED);trannsacctioonTeempllatee.exxecuute(neww
30、 TrranssacttionnCalllbaackWWithhouttRessultt() publlic voiid ddoInnTraansaactiionWWithhouttRessultt(TrranssacttionnStaatuss sttatuus) Listt prroduuctssToCChannge = pprodducttDAOO.looadPProdducttsByyCattegoory(cattegoory););6. 声声明性事事务划分分 我们还还可以选选择使用用Sprringg的AOOP TTrannsacctioonInnterrcepptorr通过在在应用配
31、配置中定定义拦截截器配置置来代替替事务划划分代码码的事务务处理方方式。这这允许我我们保持持业务对对象独立立于每个个业务对对象中重重复的事事务划分分代码。此外,事务行行为和隔隔离层次次的变化化可以通通过一个个配置文文件来改改变而不不需要对对业务对对象的实实现造成成影响。.prodductt.PrroduuctSServvicee.inncreeaseePriice*=PRROPAAGATTIONN_REEQUIIREDDprodductt.PrroduuctSServvicee.soomeOOtheerBuusinnesssMetthodd=PROPPAGAATIOON_MMANDDATOORY
32、prooducct.PProdducttSerrviccemyTTrannsacctioonInnterrcepptorrmyPProdducttSerrvicceTaargeetpubllic claass ProoducctSeerviiceIImpll immpleemennts ProoducctSeerviice privvatee PrroduuctDDao prooducctDaao;publlic voiid ssetPProdducttDaoo(PrroduuctDDao prooducctDaao) thiss.prroduuctDDao = pprodducttDaoo;
33、publlic voiid iincrreassePrriceeOfAAllPProdducttsInnCattegoory(finnal Strringg cattegoory) Listt prroduuctssToCChannge = tthiss.prroduuctDDAO.loaadPrroduuctssByCCateegorry(ccateegorry);. 如如同使用用HibbernnateeIntterccepttor一一样,TTrannsacctioonInnterrcepptorr允许任任何chheckked apppliccatiion exccepttionn从回调调代
34、码中中抛出,而TrranssacttionnTemmplaate受受回调限限制在其其内部抛抛出unncheeckeed eexceeptiionss,在出出现一个个uncchecckedd apppliicattionn exxcepptioon的情情况时,TraansaactiionTTempplatte将引引发一个个回滚或或者这个个事务由由应用(通过事事务状态态)标记记为回滚滚。 TTrannsacctioonInnterrcepptorr默认情情况也是是同样的的行为,但是允允许为每每一个方方法制定定回滚策策略。 建立声声明性事事务的一一个便利利的方式式是使用用Traansaactiion
35、PProxxyFaactooryBBeann,特别别是如果果没有其其他AOOP拦截截器的话话, TTrannsacctioonPrroxyyFacctorryBeean将将联合定定义为代代理的自自身与一一个特殊殊的目标标Beaan的事事务配置置。这将将减少一一个代理理Beaan对应应一个目目标Beean的的配置情情况。此此外,你你不必指指定哪个个接口或或者哪个个类必须须定义事事务方法法。.PPROPPAGAATIOON_RREQUUIREEDPPROPPAGAATIOON_MMANDDATOORY7. 事事务管理理策略 对于HHibeernaate应应用来说说,无论论是Trranssactti
36、onnTemmplaate还还是TrranssacttionnIntterccepttor都都是委托托验实际际的事务务处理给给PlaatfoormTTrannsacctioonMaanagger实实例,可可以是一一个HiiberrnatteTrranssacttionnMannageer(由由一个单单一的 Hibbernnatee的SeessiionFFacttoryy,使用用一个TThreeadLLocaal SSesssionn)或者者可以是是一个JJtaTTrannsacctioonMaanagger(代理容容器的JJTA子子系统)。甚至至你可以以使用一一个自定定义的 Plaatfoor
37、mTTrannsacctioonMaanagger实实现。 如果选选择从本本地Hiiberrnatte事务务管理转转为由JJTA来来进行事事务管理理,例如如:当你你的应用用的部署署面对分分布的事事务需求求时,也也仅仅是是改变一一下配置置的事。只要简简单地将将Hibbernnatee的事务务管理换换为JTTA事务务实现即即可。所所有的事事务划分分和数据据访问无无需做任任何变动动仍可以以继续工工作,因因为他们们使用的的都是普普通的事事务管理理APII。 对于分分布式的的事务会会跨越多多个Hiiberrnatte的ssesssionn faactooriees,仅仅仅是联联合JttaTrranssa
38、cttionnMannageer与多多个LoocallSesssioonFaactooryBBeann定义作作为事务务策略。你的每每一个DDAO将将通过它它们各自自的Beean属属性得到到一个特特殊的SSesssionnFacctorry的引引用。如如果这一一切都是是在下面面的JDDBC数数据源是是事务容容器,一一个业务务对象可可以划分分事务跨跨越很多多DAOO和很多多sesssioon ffacttoriies而而无需做做特别的的处理,对于使使用JttaTrranssacttionnMannageer做为为事务策策略也是是一样的的。jdbbc/mmydss1jdbbc/mmydss2proo
39、ducct.hhbm.xmllnnet.sf.hibbernnatee.diialeect.MySQQLDiialeectinvventtoryy.hbbm.xxmlnnet.sf.hibbernnatee.diallectt.OrraclleDiialeectPPROPPAGAATIOON_RREQUUIREEDPPROPPAGAATIOON_MMANDDATOORY 无论是是HibbernnateeTraansaactiionMManaagerr还是JJtaTTrannsacctioonMaanagger允允许适当当的对HHibeernaate的的在 JJVM层层次的缓缓存处理理-不需需要
40、容器器-提供供特殊的的事务查查找或者者JCAA连接器器(只要要不使用用EJBB发起事事务)。另外, HiiberrnatteTrranssacttionnMannageer能输输出JDDBC连连接供通通常的JJDBCC访问代代码使用用。这样样就允许许在高层层次上的的事务划划分是混混合了 Hibbernnatee与JDDBC而而不要JJTA的的,只要要只是访访问一个个数据库库就可以以!8. 使使用Spprinng管理理应用的的Beaan 一个个Sprringg应用配配置定义义可以加加载实现现多种配配置,从从FilleSyysteemXmmlApppliicattionnConntexxt和CCl
41、asssPaathXXmlAAppllicaatioonCoonteext到到XmllWebbApppliccatiionCConttextt。这就就允许在在各种环环境下重重用 SSpriing管管理的数数据访问问和业务务对象。默认情情况下,一个WWeb应应用都将将有它自自己的配配置文件件“WEBB- IINF/apppliccatiionCConttextt.xmml”。 在任任何Spprinng应用用中,一一个应用用配置定定义在一一个XMML格式式的文件件中用来来对应用用的所有有有关的的Beaan进行行装配,从Hiiberrnatte的 sesssioon ffacttoryy到自定定义的
42、数数据访问问和业务务对象(象上面面所有的的Beaan那样样)。他他们中的的大多数数不需要要Sprringg容器知知道他们们,甚至至即使是是与其他他Beaan合作作时也一一样,因因为他们们只是简简单的JJavaaBeaan之间间的协作作。下面面的Beean定定义可能能是一个个Sprringg Weeb 的的MVCC配置中中用来访访问业务务对象的的配置的的一部分分。 SSpriing的的Webb控制器器经由BBeann引用拥拥有它们们需要的的所有的的业务和和数据访访问对象象,因此此它们无无需在应应用配置置中做任任何手工工的Beean查查找。但但是当使使用 SSpriing管管理的BBeanns用于
43、于Strrutss或者是是在EJJB实现现,或者者一个aappllet中中时常常常是需要要必须手手工查找找一个BBeann的。因因此Spprinng的 Beaan可以以被用在在任何地地方。也也许只是是需要是是一应用用配置的的引用,或者经经由一个个webb容器的的Serrvleet配置置属性,或者从从一个文文件中或或者类路路径的资资源中创创建它。AppllicaatioonCoonteext conntexxt =WebbApppliccatiionCConttexttUtiils.getWWebAAppllicaatioonCoonteext(serrvleetCoonteext);Prodd
44、ucttSerrvicce pprodducttSerrvicce =(ProoducctSeerviice) coonteext.gettBeaan(myPProdducttSerrvicce); ApppliccatiionCConttextt coonteext =new FilleSyysteemXmmlApppliicattionnConntexxt(C:/myCConttextt.xmml);ProdducttSerrvicce pprodducttSerrvicce =(ProoducctSeerviice) coonteext.gettBeaan(myPProdducttSer
45、rvicce); ApppliccatiionCConttextt coonteext =new ClaassPPathhXmllApppliccatiionCConttextt(mmyCoonteext.xmll);ProdducttSerrvicce pprodducttSerrvicce =(ProoducctSeerviice) coonteext.gettBeaan(myPProdducttSerrvicce);9. 容容器资源源VS本本地资源源 Sprringg的资源源管理允允许简单单地在一一个JNNDI SesssioonFaactoory和和一个本本地SeessiionFFac
46、ttoryy间做选选择,同同样允许许在一个个JNDDI DDataaSouurcee与本地地DattaSoourcce间做做选择,而无需需改变应应用的一一行代码码。在容容器中保保存资源源定义还还是在应应用本地地保存,主要是是一个事事务策略略方面的的事。比比较一个个Sprringg定义的的本地SSesssionnFacctorry与一一个手工工注册的的JNDDI SSesssionnFacctorry没有有任何益益处。如如果经由由Hibbernnatee的JCCA连接接器注册册,才会会有加入入JTAA事务的的明显益益处,特特别是对对EJBB。 一个重重要的SSpriing事事务提供供的好处处是它不不与任何何容器绑绑定。定定义包括括JTAA在内的的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025安徽淮北源淮实业有限公司面向社会招聘管理人员专业测试总笔试历年典型考点题库附带答案详解
- 2025安徽安庆市人力资源服务有限公司招聘项目制外包员工拟录用笔试历年备考题库附带答案详解
- 2026年青山湖区人力资源和社会保障局下属事业单位招聘工作人员4人考试备考题库及答案解析
- 2024-2025学年度注册公用设备工程师考前冲刺测试卷及1套参考答案详解
- 2024-2025学年度一级建造师题库(突破训练)附答案详解
- 2025国家电投集团中国电力招聘19人笔试历年难易错考点试卷带答案解析
- 2025四川长虹电源股份有限公司招聘电气设计师岗位测试笔试历年典型考点题库附带答案详解
- 2026甘肃酒泉市高新园人力资源有限责任公司招聘笔试参考题库及答案解析
- 2025四川省盐业集团有限责任公司招聘9人笔试历年典型考点题库附带答案详解
- 2024-2025学年度化验员考试黑钻押题附参考答案详解【预热题】
- 2026杭州市市级机关事业单位编外招聘148人笔试参考题库及答案解析
- 2026年春季贵州人民版(2024)六年级下册综合实践活动《小学毕业留念》教学课件
- 湖北省襄阳市2026届高三下学期3月一模统一调研测试数学试题
- 第4课《坚持才会有收获》课件
- 2026年春季安全教育班会记录表(19周):开学安全第一课-启航安全守护新学期
- 2025年黄山职业技术学院单招职业技能测试题库附答案解析
- 大坝安全监测仪器检验测试规程
- 绿色数据中心 暨对算力行业的一点思考 行业洞察 2026
- 妇产科学精准医学:围产期多组学监测与管理
- 二十届中纪委五次全会知识测试题及答案解析
- (2025年)《爱的教育》阅读测试题答案
评论
0/150
提交评论