Jeasyframe 사용 자습서 2 프로젝트 구조

프로젝트 도입 배치에 성공한 후, 프로젝트 구조를 살펴보자.
안에 두 개의 항목이 포함되어 있습니다, gmmssystem  gmms_web
시스템에는 주로 dao, 서비스, 모델과 일부util이 있다
gmms_system  
1: DAO 계층
AreadaO를 예로 들면 안은 매우 간단합니다. extendsBaseDAO는javabean류에 직접 전송하면 됩니다.BaseDAO 안에는 기능이 매우 많아서 기본적으로db 조작 방법을 포괄할 수 있다.모든 대부분의 경우 이 기류를 직접 계승하면 대부분의 기능을 완성할 수 있다.
마찬가지로 AreadaOImpl은 BaseDAOImpl을 계승하기 때문에 너무 많은 조작을 할 필요가 없다.앞으로 새로운 모듈을 추가하고 그대로 베끼면 됩니다. 비안을 바꾸면 됩니다.
2: 서비스 계층
DAO층과 유사하고 인터페이스와 실현 클래스가 모두 Base Service를 계승하는 것과 관련이 있기 때문에 Base Service를 열어 볼 수 있습니다. 그 안에 몇 가지 방법이 있는데 방법이 많지 않습니다. Base DAO 안의 많은 방법보다 훨씬 적습니다.
주로 몇 개의 자주 사용하는 삭제 수정과 페이지가 있는데 그 중에서queryPageBean은 페이지이고queryById는 int형의 id에 따라 대상을 조회한다. byString 방법이 없다는 것은 시계 id가String 유형이라면 사용자 정의 서비스 인터페이스에 TqueryById(String id)를 추가해야 한다는 것을 의미한다.이query4AutoComplete는 입력 상자를 클릭한 후 자동으로 아래 목록을 조회하는 데 사용되며 장래 인터페이스에서 볼 수 있습니다.
서비스의 실현 클래스, 예를 들어Area Service Impl은Base Service Impl을 계승하고Area Service 인터페이스를 실현한다. 만약에 당신의 업무에Base Service가 만족할 수 없는 방법이 있다면 스스로 추가할 수 있다. 예를 들어 Tquery By Id(String id).인터페이스를 실현한 후 안의 방법은 자신의 업무 수요에 따라 상응하는 실현을 하면 된다.BaseServiceImpl에 저장된 것은 각각의 DAO입니다. 새로운 기능을 추가한 후 BaseServiceImpl에 DAO를 추가하고 setget 방법을 설정하면 됩니다.
모델 레이어
이 안에서javabean의 정의가 있다. hibernate를 사용하기 때문에 모든 bean은 한 장의 표에 대응하고 자신의 hbm를 써야 한다.xml 매핑
이름은 모두 Tb로 시작하고 extends에서 Entity를 사용합니다. 목적은 페이지를 나누는 것입니다. 모두 Entity Serializable 인터페이스를 실현했습니다. 그 안에 ToAjaxObject의 방법이 있는데 그 목적은 사용할 수 있는 json 기능을 바꾸는 것입니다.
TbArea에서 int형은 모두 Integer로 정의되었다. 차이점은 int를 사용하면 값을 부여하지 않아도 기본적으로 0이 되고 Integer는 데이터베이스에서null가 된다.작가가 이렇게 설계했으니 그의 방법대로 하자.
많은 테이블에서createTime 생성 시간, 업데이트Time 업데이트 시간, deleteFlag 삭제 로고의 목적은 물리적 삭제를 하지 않기 때문에 이것은 자신의 요구에 따라 추가하면 된다.
AjaxObject 방법에서 언급해야 할 것은 바로 기초 속성은 그가 직접 값을 부여하는 것이다. 만약에 안에 대상이 있다면 대상의 몇 가지 주요 속성을 취하여 값을 부여한다. 관련된 클래스의 모든 값을 모두 취하지 않도록 한다. 예를 들어 User가 있다면 User의 패스워드는 다른 클래스에 보여주고 싶지 않다. 모든 자신이 몇 가지 주요 값을 취하면 된다.
저자의 방법은 모든 기초 유형의 속성에 값을 부여하는 것이다. 이런 방법은 상당히 번거롭다. 특히 속성이 매우 많은 시기, 예를 들어 TbUser류는 손을 두드리면 상당히 무섭다.그래서 나는 clone 방식을 채택하여 기초 속성의 부여를 완성했다.
public class TbUser extends Entity implements Entity Serializable , Cloneable 구현Cloneable
public Object clone() throws CloneNotSupportedException {  
		TbUser cloned = (TbUser) super.clone();  
		cloned.createTime = (Date) createTime.clone();  
		if (getCompany() != null) {
			TbCompany tmpCompany = new TbCompany();
			tmpCompany.setCompanyId(getCompany().getCompanyId());
			tmpCompany.setCompanyName(getCompany().getCompanyName());
			cloned.setCompany(tmpCompany);
		}
		if (getDepartment() != null) {
			TbDepartment tmpDepartment = new TbDepartment();
			tmpDepartment.setDepartmentId(getDepartment().getDepartmentId());
			tmpDepartment.setDepartmentName(getDepartment().getDepartmentName());
			cloned.setDepartment(tmpDepartment);
		}

		if (getMainRole() != null) {
			TbRole tmpRole = new TbRole();
			tmpRole.setRoleId(getMainRole().getRoleId());
			tmpRole.setRoleName(getMainRole().getRoleName());
			cloned.setMainRole(tmpRole);
		}
		if (getOpUser() != null) {
			TbUser tmpUser = new TbUser();
			tmpUser.setUserId(getOpUser().getUserId());
			tmpUser.setLoginName(getOpUser().getLoginName());
			tmpUser.setRealName(getOpUser().getRealName());
			cloned.setOpUser(tmpUser);
		}
		return cloned;  
    }

4
@Override
	public TbUser toAjaxObject() {
		try {
			return (TbUser) this.clone();
		} catch (CloneNotSupportedException e) {
			e.printStackTrace();
			return null;
		}
}
이렇게 하면 관련 클래스만 처리하면 되고 기초 속성은 바로clone 다음에 된다.clone 관련 글은 다른 글에서 클릭하여 링크 열기
한편 저자는 프로젝트에서 일대다, 다대다 관련을 금지하고 다대일 수밖에 없다고 언급했다.그래서 보이는 모든javabean에는 다른 대상의List 집합이 없습니다.목적은hibernate의 한 쌍의 멀티태스킹 문제입니다. 1을 찾으면 멀티태스킹이 나와 성능에 큰 영향을 미칩니다.물론 이런 것들은 일부 설정을 통해 피할 수 있다. 만약 어떤 업무가 1대 다수를 절실히 필요로 한다면 잘 배치해야 한다.
비안을 작성한 후 hbm를 설정합니다.xml입니다. 이것은 비교적 간단합니다. 표 이름, 클래스 이름, 열 이름을 지정하면 됩니다. not null의 속성이 있거나 중복되지 않는 속성이 있으면 not-null="true"unique="true"를 따로 설정하십시오. 이것들은hibernate의 기초 지식입니다.
gmms_web
1: 액션 레이어
이것은 할 말이 많지 않다. 기초적인 BaseAction은 된다. 업무 수요에 따라 서로 다른 방법을 실현할 수 있다. 아무렇게나 베끼기만 하면 된다. BaseAction에는 자신의 서비스 인터페이스에 가입해야 한다. 180줄 근처에 새로 만든 서비스를 추가해서 get set을 설정하면 모든 서비스를 사용할 수 있다.페이지 나누기와 관련된 것은 직접 다른 종류의 방법을 베끼면 되고 비교적 간단하다.
2:struts 구성
새 struts.xml 파일, 클래스, 패키지 이름,namespace를 지정하면 됩니다.안쪽*이런 것은 어댑터로 struts의 기초 지식에 속하고 *액션류에 대응하는 방법명이다.
만들어서 xml 파일을struts-jeasy 프레임에 추가하면 됩니다.
3: config 구성
응용 프로그램-gmms-dao 응용 프로그램-gmms-서비스에는 모두 스프링의 맵 설정이 있으니 이전의 설정에 따라 설정하면 됩니다.
  hibernate.cfg.xml에서 새로 만든 시계의 hbm입니다.xml도 추가되었습니다.그리고 OK. 다음에 프로젝트를 실행하고 새로 만든javabean과hbm.xml은 당신이 설정한 규칙에 따라 자동으로 표를 만들 것입니다.원인은 바로 jdbc입니다.properties에 설정된hibernate 정책은 업데이트입니다.
안에 작은 부분이 있는데 설정에서 볼 수 있는 서비스와dao의 주입 맵이 있지만 액션과 서비스의 주입이 없다. 이것은spring과 액션의 자동 주입이기 때문에 액션과 서비스의 주입을 쓸 필요가 없다.spring에서 액션을 주입하는 서비스는 두 가지 방법이 있습니다. 이 항목은 자동으로 주입되며 수동으로 주입하면 프로필을 적게 씁니다.

좋은 웹페이지 즐겨찾기