Pengantar Singkat untuk Tujuh Modul Utama Kerangka Musim Semi
Penjelasan terperinci tentang kode modul MVC di musim semi
Modul ORM menyediakan dukungan untuk kerangka kerja ORM seperti Hibernate, JDO, Toplinkiathis, dll.
Modul ORM mengandalkan Dom4j.jar, Antlr.jar dan paket lainnya
Di musim semi, sumber daya hibernasi harus diserahkan kepada manajemen musim semi, hibernate dan sesi -anctory dan pengetahuan lainnya adalah kacang khusus, dan musim semi bertanggung jawab atas instantiasi dan penghancuran. Oleh karena itu, lapisan DAO hanya perlu mewarisi HibernedAoSupport, dan tidak perlu berurusan dengan API Hibernate, dan tidak perlu menghidupkan atau mematikan sesi dan transaksi Hibernate. Musim semi akan secara otomatis memelihara objek ini
antarmuka publik icatdao {public void createCat (kucing kucing); Daftar Publik <GAT> listCats (); Public int getCatScount (); Public Cat FindCatbyName (nama string); } impor org.springframework.orm.hibernate3.support.hibernedAosupport; kelas publik CatdaoImpl memperluas hibernedAoSupportImplement icatdao {public void createCat (cat cat) {this.gethibernateTemplate (). persist (cat); } Daftar Publik <GAT> listCats () {return ini. gethibernateTemplate (). find ("pilih CFrom Cat C"); } public int getCatscount () {number n = (number) this.getSession (true) .createqueery ("selectCount (c) dari Cat C"). Uniqueresult (); return n.intvalue (); } public Cat findCatbyName (nama string) {Daftar <Cat> catlist = this.getHibNeTeTemplate (). Find ("Select C From Cat Where C.Name =?", Name); if (catlist.size ()> 0) return catlist.get (0); kembali nol; }}<bean id = "sessionFactory" dash-method = "dihancurkan"> <name properti = "DataSource" ref = "DataSource"/> <!-Semua kelas di bawah paket ini akan dimuat sebagai kelas entitas-> <name properti = "annotatedpackages" value = "classpath:/com/clf/orm"/<nama properti = "anotasi" anotasi " <value> com.clf.spring.orm.cat </value> <value> com.clf.spring.orm.dog </ value> </list> <name properti = "hibernateProperties"> <tops> <prop key = "hiberante.dialect"> org.hibernate.dialect.matclial "hiberante. KEY = "hibernate.show_sql"> true </prop> <prop key = "hibernate.format_sql"> true </por> <prop key = "hibernate.hbm2ddl.auto"> Buat </prop> </props> </properti> <bean id iD = "catdao"> </prop> </props> </properti> <bean id iD = "catdao"> </propore = "SESIA" "SESIA" "SESIA"> </property>
Jika Anda menggunakan kelas entitas yang dikonfigurasi dengan XML, ubah menjadi
<bean id = "sessionfactory" dash-method = "hancurkan"> <name properti = "mappingResources"> <cist> <value> classpath: /com/clf/orm/cat.hbm.xml </ value> </cist> </prop Propert> ...
Spring menambahkan transaksi di lapisan DAO secara default, dan setiap metode lapisan DAO adalah satu transaksi. Dalam pemrograman Spring+Hibernate, praktik yang biasa adalah menambahkan lapisan layanan ke lapisan DAO, dan kemudian mengkonfigurasi transaksi ke lapisan layanan.
antarmuka publik icatservice {public void createCat (kucing kucing); Daftar Publik <GAT> listCats (); Public int getCatScount (); }Pendekatan hierarkis adalah bahwa program memanggil lapisan layanan, lapisan layanan memanggil lapisan DAO, dan lapisan DAO memanggil hibernate untuk mencapai akses data. Pada prinsipnya, akses lintas batas tidak diizinkan. Layering membuat hierarki bisnis lebih jelas
Kelas Publik CatServiceImpl mengimplementasikan IcAsservice {Private Idao Catdao; publik Idao getCatdao () {return catdao; } public void setCatdao (Idao dao) {this.catdao = dao; } public void createCat (kucing kucing) {catdao.createCat (cat); } Daftar Publik <GAT> listCats () {return catdao.listcats (); } public int getCatscount () {return catdao.getCatscount (); }}Kemudian konfigurasikan manajemen transaksi di tingkat layanan
<!-Transaction Manager-> <bean id = "hibernatetransactionManager"> <name properti = "sessionFactory" ref = "sessionfactory"/> </ bean> <!-aturan manajemen transaksi-> <bean id = "hibernatetransactionTributeSource"> <nama properti = "properti"> <Props> <! <propkeypropkey = "*"> propgation_required </prop> </pruptent> </t bean> <!-kelas agen pabrik transaksi, berkumpul kelas implementasi layanan, manajer transaksi, dan aturan manajemen transaksi-> <bean id = "catservice"> <nama properti = "transactionManager" Ref = "hibernatrans nameon =" name loberan "<" transactioner "<" transaction "<" hibernatrans nameer "> <po properten> <" Target "> <e Properti =" Transactioner "> <tleAmager"> <tleAmager "> <tleAmager> <e Properti =" Target " Ref = "Catdao"/> </bean> </prop Property name = "TransactionTributSource" ref = "hibernatetransactionattributsource"/> </bean>
Meringkaskan
Di atas adalah semua penjelasan terperinci dari kode modul ORM Spring. Saya harap Anda bisa membantu. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!