創建項目:

打開NetBeans 6.5.1,選擇文件—》新建項目,選擇Java Web,然后在項目列表中選擇 Web 應用程序,下一步

clip_image002

選擇使用專用文件夾存儲庫,指定庫文件夾的位置,通常是默認的.\lib,即項目文件夾下的lib文件夾,下一步

clip_image004

選擇Web應用服務器。這里選擇Tomcat 6.0.18 ,Java EE版本選擇 Java EE 5,下一步

clip_image006

在框架對話框中什么都不選擇,直接點擊完成。

配置項目:

1. 配置OperaMask

在WEB-INF文件夾下新建一個faces-config.xml文件,內容如下:

<?xml version="1.0" encoding="UTF-8"?>

<faces-config xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd" version="1.2">

<application>

<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>

</application>

</faces-config>

在新創建的項目中,右鍵單擊“庫”節點,選擇添加庫

clip_image008

然后選擇導入,選擇Spring 2.5庫,選擇導入庫,添加庫。

clip_image010

再次選擇添加庫,然后選擇創建。庫名稱為OperaMask,庫類型為類庫:

clip_image012

在“定制庫”中選擇“添加JAR/文件夾”,在彈出的對話框中選擇OperaMask的基本jar包,并將導入方式指定為:復制到庫文件夾。

clip_image014

一路選是。

2. 配置Spring以及與OperaMask的整合

然后再創建一個OperaMask_SpringCompatibility庫,將OperaMask中的spring文件夾下的operamasks-spring.jar添加進來

然后在新創建的項目中展開WEB-INF文件夾,打開web.xml:按照OperaMask包中的blank樣例程序的配置進行配置。

之后,在web.xml中配置如下內容:

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext*.xml</param-value>

</context-param>

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

然后,在源包節點下創建Spring配置文件applicationContext.xml,選擇如圖所示的幾個命名空間:

clip_image016

clip_image018

選擇完成,然后在Beans節點之間添加如下內容:

<!-- 開啟基于注解的配置 -->

<context:annotation-config/>

<!-- 使 AOM 中的 LiteBean 同樣能夠被 Spring 所感應到 -->

<bean class="org.operamasks.faces.spring.ManagedBeanConfigurer"/>

3. 配置JPA持久化支持

在服務選項卡中,選擇MySQL數據庫驅動,然后右鍵單擊,選擇連接設置,配置你要使用的數據庫:

clip_image020

數據庫配置完畢,然后回到項目選項卡,右鍵單擊剛創建的項目,選擇新建-->其它-->持久性-->持久性單元

clip_image022

在新建持久性單元對話框中選擇持久性庫為Hibernate,即選擇Hibernate為JPA持久單元的實現,數據庫連接選擇我們剛配置好的MySQL連接。

clip_image024

單擊完成。此時,Hibernate的JPA庫已經被添加到項目的lib目錄下了。包含了基本的Hibernate jar包和Hibernate JPA支持jar包。

注:使用JPA的一個好處就是我們不需要在一個統一的配置文件里羅列所有的實體類,而是可以讓實體管理器自動掃描所有被@Entity注解了的實體類。要實現這種功能,如果項目的JPA實現遷移到TopLink Essential,需要加入下面的配置:

找到項目中的“配置文件”節點,打開persistence.xml文件,調整到XML視圖中,在<provider> </provider>節點后添加:

<exclude-unlisted-classes>false</exclude-unlisted-classes> 一行。如果希望使用Hibernate實現,請一定不要加入這一行,否則,您必須將您創建的所有實體類逐一添加到persistence.xml中。

如果要使用Spring提供的JpaTemplate(即實現JpaDaoSupport方式),則回到spring的applicationContext.xml文件,在<beans>節點里面添加:

<!-- 利用Spring的實體管理器工廠來創建JPA實體管理器,傳入的參數為persistence.xml中指定的持久化單元名稱 -->

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">

<property name="persistenceUnitName" value="DMCSv1PU"/>

</bean>

<!-- 聲明一個Spring提供的JPA事務管理器,傳入的參數正是Spring中的實體管理器工廠 -->

<bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">

<property name="entityManagerFactory" ref="entityManagerFactory"/>

</bean>

<!-- 開啟Spring提供的基于注解的聲明式事務管理 -->

<tx:annotation-driven transaction-manager="txManager"/>

至此,持久化支持配置完畢。

創建實體類和相應的JPA控制類

右鍵單擊項目,選擇新建-->其它-->持久性-->通過數據庫生成實體類,選擇數據庫表:

clip_image026

點擊下一步,輸入合適的包名

clip_image028

下一步,映射選項如下圖所示:

clip_image030

選擇新建-->其它-->持久性-->基于實體類的JPA控制器類,下一步:

clip_image032

添加要生成控制器類的實體類,下一步:

clip_image034

選擇合適的包,然后完成。

clip_image036

后面的配置無非就是將JPA的控制器類寫入Spring的配置文件,然后在AOM的LiteBean中注入這些控制器類,實現數據庫操作以及相應的業務邏輯。

注:解決Spring與Hibernate JPA的沖突:

clip_image038

如上圖所示:選擇工具--> 庫 --> 庫位置-->選擇當前編輯的項目,選中Spring Framework 2.5,然后去掉cglib2.2那個jar包。這個包與Hibernate JPA中的cglib 2.1.3.jar有沖突

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


文章來源:http://x-spirit.spaces.live.com/Blog/cns!CC0B04AE126337C0!776.entry