중화사전망 - 서예자전 - 스프링에 대한 반성: Ruby on Rails 에 대한 생각 [2]
스프링에 대한 반성: Ruby on Rails 에 대한 생각 [2]
위의 두 코드 구성을 보면 한 줄도 없이 Ruby on Rails 를 사용하는 ActiveRecord 와는 거리가 멀고 번거롭고 일시적인 지연도 할 수 없다. Spring 구현의 트랜잭션 관리는 주로 이 두 가지 방법입니다.
Spring 을 사용하면 일반적으로 대부분의 Java 개발자가 일반적으로 사용하는 words 의 기술 프레임워크인 데이터 액세스 계층으로 hibernate/ibatis 를 통합합니다. 예를 들어, spring 과 hibernate 를 데이터 액세스 계층으로 결합하면 제네릭의 존재에 대해 논의하지 않고 간단한 예를 들어 데이터 액세스 계층 아래에 트랜잭션 관리를 배치하고 내 자신의 이상적인 spring 트랜잭션 관리에 대해 이야기할 수 있습니다.
약정이 구성보다 높다. 먼저 쿼리 목록 show get find 로 시작하는 방법에는 PROPAGATION_REQUIRED readOnly 레벨 트랜잭션 정의가 사용되고, set save update remove delete 로 시작하는 방법에는 PROPAGATION_REQUIRED 레벨 트랜잭션 정의 라이브러리가 사용됩니다 이렇게 하면 대부분의 개발 요구 사항을 충족한 다음 트랜잭션 관리 구성이 필요한 클래스 앞에 메타데이터를 추가하기만 하면 됩니다. 예를 들어 spring 이 hibernate 를 위해 개발한 @ Transactionaop (hibernate) 은 @ transactionaop (hibernate) 과 비슷합니다
예를 들어, UserDAO 는 인터페이스입니다. Metadata @ transactionaop (hibernate) 줄을 추가하면 이 UserDAHibernate 클래스가 spring 의 규칙을 따르므로 트랜잭션 관리 기능을 사용할 수 있다는 것을 알 수 있습니다 (물론, 이것은 성립되지 않습니다, spring 이건 내 개인적인 생각일 뿐이야.)
암호
패키지 appfuse Dao hibernate
Java util 목록 가져오기 Appfuse Dao UserDAO 가져오기 appfuse 모델 사용자 가져오기 : Springframework ORM hibernate 가져오기 지원 HibernateDaoSupportspan style= 색상: 파란색; >//다음 클래스 중 하나가 있다고 가정합니다. spring 프레임워크 ORM hibernate 가져오기는 콜아웃 트랜잭션 AOP 를 지원합니다
< span style= color: 파란색; > @ transaction op(hibernate) 공용 클래스 UserDAOHibernate 는 HibernateDaoSupport 를 확장하여 UserDAO {
공용 사용자 getuser (long userid) {return (user) thisget hibernate template () get (user 클래스 userid); }
Public listgetusers () {return this get hibernate template () find (사용자로부터); }
Public void remove user (long userid) {object user = this get hibernate template () load (user 클래스 userid); 이 getHibernateTemplate() delete (사용자); } public void save user (user user) {this get hibernate template () saveourupdate (user); }}
Spring 의 트랜잭션 정의는 매우 유연하고 광범위합니다. 7 가지 전파 동작과 5 가지 격리 상수를 정의하지만, 더 많이 사용됩니다. 즉, PROPAGATION_REQUIRED 와 PROPAGATION_REQUIRED readOnly, 그래서 위의 가정을 간단하게 확장할 수 있습니다.
단순함은 아름다움이다
Lishi Xinzhi/article/program/Java/ky/201311/29082