Maven, Spring, Hibernate, Flex, PureMVC 통합 (1)

주요 참고 글:
1. 2. http://www.iteye.com/topic/392836
      최근 친구 들 과 플 렉 스 로 전단 개발 을 하려 고 기장 하 는 작은 프로젝트 를 기획 하고 있다.예전 에 Flex 측의 튜 토리 얼 을 본 적 이 있 는데 이번에 이 프로젝트 를 구축 하 는 데 많은 시간 이 걸 렸 습 니 다. 저 처럼 구축 한 글 이 거의 없 기 때 문 입 니 다.이치대로라면 위의 두 편의 참고 글 은 모두 프로젝트 를 구축 할 수 있 지만 Maven 을 사용 하 는 사람 이 많 을 것 입 니 다. '눈보라' 의 구축 은 Maven 을 사용 하지 않 았 고 '전 잔식 Flex, BlazeDS 와 Spring 통합 솔 루 션 구축' 튜 토리 얼 에 Flex 도 Maven 으로 구축 되 었 습 니 다. 좋 지 않 을 수 는 없 지만 현재 FlexBuilder 3 는 Maven 구축 프로젝트 를 지원 하지 않 기 때문에 이 IDE 를 사용 할 수 없습니다.대부분의 사람들 에 게 개발 은 IDE 에 의존 하기 때문에 저 는 각자 장점 을 취하 여 자신의 프로젝트 를 구축 합 니 다.자, 잔말 말고 시작 합 시다.     자바 엔 드 에서 Spring + hibenate 로 기본 골격 을 만 들 었 습 니 다. 저 는 형제 가 있 기 전에 Flex 프로젝트 를 만 들 었 습 니 다. 자바 엔 드 는 Spring + hibenate + Struts 2 구조 로 플 렉 스 의 HttpService 로 데 이 터 를 요청 합 니 다.그러나 저 는 항상 Struts 2 가 여기 서 많이 남아 서 Spring + BlazeDS 와 Flex 로 상호작용 을 할 수 있다 고 생각 합 니 다.
 
필요 한 개발 환경:
1. Eclipse 3.4 (J2EE 버 전)
2.Flex Builder 3
3.Maven2.0.9
(설명: 2.1.0 과 2.2.0 두 버 전 은 flex - copiler - mojo 에 bug 를 지원 합 니 다. 만약 에 을 완전히 사용 하면 2.0.9 의 Maven 버 전 을 사용 하 는 것 을 권장 합 니 다)
 
1. Maven 을 이용 하여 웹 애플 리 케 이 션 구축
Cmd 를 열 고 작업 공간 을 찾 아 다음 명령 을 실행 하 십시오.
mvn archetype:create -DgroupId=com.zhjj.zhangben -DartifactId=zhengben
그리고 eclipse 지원 을 추가 하여 mvn eclipse: eclipse 를 실행 합 니 다.
이제 eclipse 로 이 기본 애플 리 케 이 션 을 열 수 있 습 니 다.
 
2. spring, hibenate, blazeds, spring - flex 의존
<!--   spring   -->
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring</artifactId>
   <version>${spring.version}</version>
  </dependency>
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-webmvc</artifactId>
   <version>${spring.version}</version>
  </dependency>
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-test</artifactId>
   <version>${spring.version}</version>
   <scope>test</scope>
  </dependency>
  <dependency>
   <groupId>org.aspectj</groupId>
   <artifactId>aspectjrt</artifactId>
   <version>1.5.4</version>
  </dependency>
  <dependency>
   <groupId>org.aspectj</groupId>
   <artifactId>aspectjweaver</artifactId>
   <version>1.5.4</version>
  </dependency>
  <!--   hibernate   -->
  <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-annotations</artifactId>
   <version>${hibernate.annotations.version}</version>
  </dependency>
  <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-commons-annotations</artifactId>
   <version>${hibernate.annotations.version}</version>
  </dependency>
  <dependency>
   <groupId>${jdbc.groupId}</groupId>
   <artifactId>${jdbc.artifactId}</artifactId>
   <version>${jdbc.version}</version>
  </dependency>
  <!--   blazeds   -->
  <dependency> 
   <groupId>com.adobe.blazeds</groupId> 
   <artifactId>blazeds-common</artifactId> 
   <version>3.0.0.544</version> 
  </dependency> 
  <dependency> 
   <groupId>com.adobe.blazeds</groupId> 
   <artifactId>blazeds-core</artifactId> 
   <version>3.0.0.544</version> 
  </dependency> 
  <dependency> 
   <groupId>com.adobe.blazeds</groupId> 
   <artifactId>blazeds-remoting</artifactId> 
   <version>3.0.0.544</version> 
  </dependency> 
  <dependency> 
   <groupId>backport-util-concurrent</groupId> 
   <artifactId>backport-util-concurrent</artifactId> 
   <version>3.1</version> 
  </dependency>
  <!-- spring-flex -->
  <dependency> 
   <groupId>org.springframework</groupId> 
   <artifactId>spring-flex</artifactId> 
   <version>1.0.0.RELEASE</version> 
  </dependency>


  
 설명 이 필요 한 것 은 아직 까지 spring - flex 가 공공 Maven 창고 방식 으로 공개 되 지 않 았 기 때문에 http://www.springsource.org/spring-flex 다운로드 후 직접 로 컬 창고 에 추가 해 야 한 다 는 것 이다.
 
3. 아래 의 몇 가지 의존 가방 이 없어 서 는 안 되 거나 없어 서 는 안 됩 니 다. 그렇지 않 으 면 알 수 없 는 실 수 를 많이 할 수 있 습 니 다. (이런 실 수 는 구 글, Baidu 가 며칠 만 에 해 결 했 습 니 다. 저 는 울 었 습 니 다...)
<dependency>
   <groupId>org.codehaus.jackson</groupId>
   <artifactId>jackson-core-asl</artifactId>
   <version>0.9.9-6</version>
  </dependency>
  <!-- 
   cglib(Code Generation Library)      ,   ,    Code    。         Java    Java  。
   cglib   asm,            class。
   cglib  AOP,jdk  proxy      ,cglib       
   -->
  <dependency>
   <groupId>cglib</groupId>
   <artifactId>cglib</artifactId>
   <version>2.2</version>
  </dependency>
  <!-- xalan   xslt   ,   XML     HTML,TEXT XML          -->
  <dependency>
   <groupId>xalan</groupId>
   <artifactId>xalan</artifactId>
   <version>2.7.1</version>
  </dependency>
  <dependency> 
   <groupId>javax.servlet</groupId> 
   <artifactId>servlet-api</artifactId> 
   <version>2.5</version> 
   <scope>provided</scope> 
  </dependency>


  
4. 플러그 인 몇 개 추가
<plugins>

<!--      -->
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
     <source>1.5</source>
     <target>1.5</target>
    </configuration>
   </plugin>

<!--    Java       -->

   <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>hibernate3-maven-plugin</artifactId>
    <version>2.1</version>
    <configuration>
     <components>
      <component>
       <name>hbm2ddl</name>
       <implementation>annotationconfiguration</implementation>
       <!-- Use 'jpaconfiguration' if you're using JPA. -->
       <!--<implementation>jpaconfiguration</implementation>-->
      </component>
     </components>
     <componentProperties>
      <drop>true</drop>
      <jdk5>true</jdk5>
      <propertyfile>target/classes/jdbc.properties</propertyfile>
      <skip>${maven.test.skip}</skip>
     </componentProperties>
    </configuration>
    <executions>
     <execution>
      <phase>process-test-resources</phase>
      <goals>
       <goal>hbm2ddl</goal>
      </goals>
     </execution>
    </executions>
    <dependencies>
     <dependency>
      <groupId>${jdbc.groupId}</groupId>
      <artifactId>${jdbc.artifactId}</artifactId>
      <version>${jdbc.version}</version>
     </dependency>
    </dependencies>
   </plugin>

   <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>dbunit-maven-plugin</artifactId>
    <version>1.0-beta-1</version>
    <configuration>
     <dataTypeFactoryName>${dbunit.dataTypeFactoryName}</dataTypeFactoryName>
     <driver>${jdbc.driverClassName}</driver>
     <username>${jdbc.username}</username>
     <password>${jdbc.password}</password>
     <url>${jdbc.url}</url>
     <src>src/test/resources/sample-data.xml</src>
     <type>${dbunit.operation.type}</type>
     <schema>${dbunit.schema}</schema>
     <skip>${maven.test.skip}</skip>
    </configuration>
    <executions>
     <execution>
      <id>test-compile</id>
      <phase>test-compile</phase>
      <goals>
       <goal>operation</goal>
      </goals>
     </execution>
     <execution>
      <!-- Runs before integration tests and jetty:run-war -->
      <id>test</id>
      <phase>test</phase>
      <goals>
       <goal>operation</goal>
      </goals>
     </execution>
    </executions>
    <dependencies>
     <dependency>
      <groupId>${jdbc.groupId}</groupId>
      <artifactId>${jdbc.artifactId}</artifactId>
      <version>${jdbc.version}</version>
     </dependency>
    </dependencies>
   </plugin>

<!-- Jetty  ,      -->
   <plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>maven-jetty-plugin</artifactId>
    <version>6.1.6</version>
    <configuration>
     <contextPath>/zhangben</contextPath>
     <scanIntervalSeconds>3</scanIntervalSeconds>
     <connectors>
      <connector
       implementation="org.mortbay.jetty.bio.SocketConnector">
       <port>8080</port>
       <maxIdleTime>60000</maxIdleTime>
      </connector>
     </connectors>
     <scanTargetPatterns>
      <scanTargetPattern>
       <directory>
        src/main/webapp/WEB-INF
       </directory>
       <excludes>
        <exclude>**/*.jsp</exclude>
       </excludes>
       <includes>
        <include>**/*.properties</include>
        <include>*.xml</include>
       </includes>
      </scanTargetPattern>
      <scanTargetPattern>
       <directory>src/main/resources</directory>
       <includes>
        <include>*.properties</include>
        <include>*.xml</include>
       </includes>
      </scanTargetPattern>
     </scanTargetPatterns>
    </configuration>
   </plugin>

<!-- eclipse   -->
   <plugin>
    <artifactId>maven-eclipse-plugin</artifactId>
    <version>2.5.1</version>
    <configuration>
     <additionalProjectnatures>
      <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
     </additionalProjectnatures>
     <additionalBuildcommands>
      <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
     </additionalBuildcommands>
     <downloadSources>true</downloadSources>
     <downloadJavadocs>true</downloadJavadocs>
     <wtpversion>1.5</wtpversion>
    </configuration>
   </plugin>
  </plugins>

 
  
 
퇴근 해 야 돼, 내일 계속해!!!

좋은 웹페이지 즐겨찾기