XDoclet 사용 공략

5435 단어
XDoclet은 일반적인 코드 생성 유틸리티이며 확장된 Javadoc Doclet 엔진입니다.JavaDoc 태그와 같은 것을 사용하여 클래스, 방법, 필드 같은 언어 특징에 메타데이터를 추가할 수 있습니다.그 다음에 이 추가 메타데이터를 이용하여 배치 설명자와 소스 코드 같은 관련 파일을 생성합니다.
XDoclet은 JavaDoc 엔진의 사상을 계승하여 맞춤형 JavaDoc 태그에 따라 코드와 다른 파일을 생성할 수 있도록 합니다.물론 XDoclet은 전체 해석 트리에 접근할 수 있습니다. 이렇게 하면 클래스, 클래스의 패키지 구조와 클래스에 접근할 수 있습니다.오픈 소스 코드의 XDoclet 코드 생성 엔진은 많은 선진적인 자바 프레임워크에서 빠질 수 없는 구성 부분으로 속성 프로그래밍과 지속적인 통합을 위한 엔진으로 많이 사용된다.XDoclet은 자바 프로그래밍 도구 상자에서 더욱 일반적인 크로스 기술 코드 생성 도구가 될 수 있습니다.
위에서 속성 프로그래밍(Attribute-Oriented Programming)을 언급했고, 앞서 절단면 프로그래밍(Aspect-Oriented Programming)을 언급했는데 양자의 줄임말은 모두 AOP이다.그러나 양자는 다르다.속성 프로그래밍에 관해서는 도랑이든 곡형이든 중국어 자료를 거의 찾을 수 없습니다. 바로 Attribute-Oriented Programming입니다!Aspect-Oriented Programming도 영문 자료 하나를 찾아서야 알게 되었다.
그리고 전체 영어의 한 권의 책에서 Attribute-Oriented Programming을 설명합니다. 제가 한 권의 책을 찾았는데 2010년의 책입니다. 우리가 알고 있는 지식이 얼마나 낙후되었는지 알 수 있습니다. 여기서 여러분에게 영어를 열심히 공부하라고 호소합니다. 영어가 너무 중요합니다!!
XDoclet에 대한 학습은 XDoclet을 사용하여 Hibernate 맵과 프로필을 생성하는 규칙을 찾았을 뿐입니다.
XDoclet은 사용하기에 어렵지 않습니다. 다음 예를 들어 요약해 보겠습니다.
<?xml version="1.0" encoding="GBK"?>
<project name="OA      " default="  Hibernate    " basedir=".">
	
<!--               -->
   	<property name="src.dir" value="${basedir}/src"/>
   	<property name="build.dir" value="${basedir}/bin"/>
	<property name="webapp.dir" value="${basedir}/src/webapp"/>
	<property name="xdoclet.home" value="D:/xdoclet-plugins-1.0.3"/>

   	<!--   xdoclet   -->
   	<path id="xdoclet.task.classpath">
      	<fileset dir="${xdoclet.home}/lib">
         	<include name="**/*.jar"/>
      	</fileset>
      	<fileset dir="${xdoclet.home}/plugins">
         	<include name="**/*.jar"/>
      	</fileset>
   	</path>
	<taskdef name="xdoclet" classname="org.xdoclet.ant.XDocletTask" classpathref="xdoclet.task.classpath"/>
	
	<target name="  Hibernate    ">
		<xdoclet>
			<!--      -->
			<fileset dir="${src.dir}/com/jianxin/oa/model">
				<include name="**/*.java"/>
			</fileset>
			<!--      ,              -->			
			<component
				classname="org.xdoclet.plugin.hibernate.HibernateConfigPlugin"
				destdir="${src.dir}"
				version="3.0"
				hbm2ddlauto="update"
				jdbcurl="jdbc:mysql://localhost:3306/oa"
				jdbcdriver="com.mysql.jdbc.Driver"
				jdbcusername="root"
				jdbcpassword="admin"
				dialect="org.hibernate.dialect.MySQLDialect"
				showsql="true"
			/>
		</xdoclet>
	</target>
	<target name="  hibernate    ">
		<xdoclet>
			<!--      -->
			<fileset dir="${src.dir}/com/jianxin/oa/model">
				<include name="**/*.java"/>
			</fileset>
			<!--       -->
			<component 
				classname="org.xdoclet.plugin.hibernate.HibernateMappingPlugin"
				version="3.0"
				destdir="${src.dir}"
			/>
		</xdoclet>
	</target>
</project>

설정하는 과정에서 홈페이지에서 준 문서를 볼 수 있고component에서 무엇을 설정해야 하는지 설명할 수 있습니다.그러면 XDoclet을 통해 프로파일을 생성하기 위해 엔티티 클래스를 어떻게 작성해야 하는지 살펴보겠습니다.
Hibernate의 맵 파일을 만들려면 맵 파일에 있어야 할 것들이 자바Doc를 쓸 때 모두 써야 하고 비슷합니다.
간단한 예를 통해 살펴보자.
엔티티 클래스 파일:
/**
 *   
 * @hibernate.class table="t_document"
 *
 */
public class Document {	
	/**
	 * @hibernate.id generator-class="native"
	 */
	private int id;
	/**
	 *   
	 * @hibernate.property
	 */
	private String title;	
	/**
	 *    
	 * @hibernate.many-to-one column="userId"
	 */
	private User creator;	
}

생성된 매핑 파일:
<hibernate-mapping>
  <class table="t_document" name="com.jianxin.oa.model.Document">
    <id name="id">
      <generator class="native"/>
    </id>
    <property name="title"/>    
    <many-to-one column="userId" name="creator"/>    
  </class>
</hibernate-mapping>

작성된 클래스와 생성된 프로파일을 비교하여 검색하기 어렵지 않습니다.
1、name은 지정하지 않고 사용된 변수 이름입니다
        2、@hibernate.태그 속성 = 값, 생성된 프로파일은 <태그 속성 = 값>
3. 여러 속성이 있을 때 빈칸으로 나누면 된다
이렇게 하면 더 이상 배울 것이 없다. 우리가hibernate의 맵 파일의 작성에 익숙해지면, 이 규칙을 알게 된 후, 가볍게 XDoclet의 JavaDoc의 작성에 익숙해질 수 있다.
이제 XDoclet의 장점을 살펴보겠습니다. XDoclet의 장점이 우리의 업무량을 감소시켰습니까?
나는 없다고 생각한다. 어떤 사람들은 심지어 그것이 어떤 면에서 우리의 업무량을 증가시켰다고 말할 수도 있다. 왜냐하면 어떤 곳에서는hibernate의 대응과 일치하지 않는 부분이 있기 때문에 우리는 시간을 써서 조사해야 한다.
그러나 그것이 나타나면 클래스와 프로필 사이를 전환할 필요가 없다. 클래스의 작성을 통해 클래스와 프로필의 일치성을 작성할 수 있다.
XDoclet을 사용하는 경우 리소스 매니저를 사용하여 테이블을 만드는 것과 스크립트를 사용하여 테이블을 만드는 것의 차이는 다음과 같습니다.
어떤 방식을 사용하든 표명, 열명, 유형 등은 모두 써야 하지만 스크립트를 사용할 때 마우스를 함께 움직일 필요가 없고, 물건을 찾을 필요가 없다. 왜냐하면 대나무가 가슴에 있기 때문에 효율을 높일 수 있다.만약 스크립트를 사용할 줄 모른다면 자원 관리자가 당신의 좋은 선택입니다.
매핑 파일을 수동으로 쓰고 XDoclet을 사용하는 것도 그렇지 않습니까?
탭, 속성, 값은 모두 네가 써야 하지만, 다른 것은 네가 클래스를 작성할 때 이것들을 다 썼느냐, 아니면 그 말을 가슴에 품고 있느냐 하는 것이다.그러나 맵 파일의 작성에 익숙하지 않고, 대략적인 탭만 알고 있다면, XDoclet을 사용하는 것은 여전히 힘이 없다.
XDoclet은 Hibernate의 플러그인만 있는 것이 아니라 더 많은 플러그인들이 당신을 기다리고 있습니다. 위에서 XDoclet의 학습과 사용에 어떤 결함이 있는지 발견하면 바로잡아 주십시오~

좋은 웹페이지 즐겨찾기