스프링 프레임 워크의 7 가지 주요 모듈에 대한 간단한 소개
봄의 MVC 모듈 코드에 대한 자세한 설명
ORM 모듈은 Hibernate, JDO, Toplinkibatis 등과 같은 ORM 프레임 워크를 지원합니다.
ORM 모듈은 dom4j.jar, antlr.jar 및 기타 패키지에 의존합니다
봄에는 최대 절전 모드 자원을 스프링 관리, 최대 절전 모드로 넘겨야하며 그 세션 기능 및 기타 지식 스프링은 특별한 콩이며 봄은 인스턴스화와 파괴를 담당합니다. 따라서 DAO 층은 HibernateAosupport를 상속하면되며 최대 절전 모드의 API를 처리 할 필요가 없으며 Hibernate의 세션 및 거래를 켜거나 끄질 필요가 없습니다. 스프링은 이러한 객체를 자동으로 유지합니다
공개 인터페이스 icatdao {public void createcat (cat cat); 공개 목록 <cat> listcats (); public int getCatscount (); 공개 고양이 FindCatbyName (문자열 이름); } org.springframework.orm.hibernate3.support.hibernatedaosupport; 공개 클래스 Catdaoimpl은 hibernatedaosupportimplements icatdao {public void createcat (cat cat) {this.gethibernatetemplate (). perist (cat); } public list <cat> listcats () {return this. gethibernateTemplate (). find ( "cff from cat c"); } public int getCatScount () {번호 n = (number) this.getSession (true) .createquery ( "selectCount (c) Cat C"). Iliqueresult (); return n.intvalue (); } public cat findCatbyName (문자열 이름) {list <cat> catlist = this.gethibernateTemplate (). 찾기 ( "cat에서 c.name =?", 이름); if (catlist.size ()> 0) return catlist.get (0); 널 리턴; }}<bean id = "sessionFactory"Destroy-Method = "Destroy"> <속성 이름 = "DataSource"ref = "DataSource"/> <!-이 패키지의 모든 클래스는 엔티티 클래스로로드됩니다-> <속성 이름 = "annotatedPackages"value = "classpath :/com/clf/orm"/> <value> com.clf.spring.orm.cat </value> <value> com.clf.spring.orm.dog </value> </list> <property name = "hibernateproperties"> <props> <props key = "hiberante.dialect"> org.hibernate.dialect.mysqldialect </prop> <prop key = "hibernate.show_sql"> true </prop> <prop key = "hibernate.format_sql"> true key = "hibernate.hbm2ddl.auto"> create </props> </propls> </propert> </proper> <catdao ">
XML로 구성된 엔티티 클래스를 사용하는 경우 변경하십시오.
<bean id = "sessionFactory"Destroy-Method = "Destroy"> <Property Name = "MappingResources"> <list> <value> classPath : /com/clf/orm/cat.hbm.xml </value> </list> </property>… </bean>
Spring은 기본적으로 DAO 계층의 트랜잭션을 추가하며 DAO 계층의 각 방법은 하나의 트랜잭션입니다. Spring+Hibernate 프로그래밍에서 일반적인 관행은 DAO 계층에 서비스 계층을 추가 한 다음 서비스 계층으로 트랜잭션을 구성하는 것입니다.
공개 인터페이스 icatservice {public void createcat (Cat Cat); 공개 목록 <cat> listcats (); public int getCatscount (); }계층 적 접근 방식은 프로그램이 서비스 계층을 호출하고 서비스 계층이 DAO 계층을 호출하고 DAO 계층은 Hibernate를 호출하여 데이터 액세스를 달성한다는 것입니다. 원칙적으로, 국경 간 액세스는 허용되지 않습니다. 레이어링은 비즈니스 계층 구조를 더 명확하게 만듭니다
공개 클래스 Catserviceimpl은 icatservice {private idao catdao; 공개 idao getcatdao () {return catdao; } public void setcatdao (idao dao) {this.catdao = dao; } public void createcat (cat cat) {catdao.createcat (cat); } public list <cat> listcats () {return catdao.listcats (); } public int getCatscount () {return catdao.getCatScount (); }}그런 다음 서비스 수준에서 트랜잭션 관리를 구성하십시오
<!-트랜잭션 관리자-> <bean id = "hibernatetransactionManager"> <속성 이름 = "sessionFactory"ref = "sessionFactory"/> </bean> <!-트랜잭션 관리 규칙-> <bean id = "HiberNateTransactionAttributesource"> <property name = "properties"> <propss> <! <propkeyPropkey = "*"> propgation_required </prop> </property> </bean> <!-트랜잭션 팩토리 에이전트 클래스, 서비스 구현 클래스, 트랜잭션 관리자 및 트랜잭션 관리자 및 트랜잭션 관리 규칙 조립-> <bean id = "catservice"> <property name = "transactionManager"ref = "hibernateTransactionManager"> <bean "> <bean"> ref = "catdao"/> </bean> </property> <property name = "transactionattributesource"ref = "HibernateTransactionAttributesource"/> </bean>
요약
위는 Spring의 ORM 모듈 코드에 대한 자세한 설명입니다. 도와 드릴 수 있기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!