NetBeans中配置OperaMask+Spring+JPA教程
创建项目:
打开NetBeans 6.5.1,选择文件—》新建项目,选择Java Web,然后在项目列表中选择 Web 应用程序,下一步
选择使用专用文件夹存储库,指定库文件夹的位置,通常是默认的.\lib,即项目文件夹下的lib文件夹,下一步
选择Web应用服务器。这里选择Tomcat 6.0.18 ,Java EE版本选择 Java EE 5,下一步
在框架对话框中什么都不选择,直接点击完成。
配置项目:
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>
在新创建的项目中,右键单击“库”节点,选择添加库
然后选择导入,选择Spring 2.5库,选择导入库,添加库。
再次选择添加库,然后选择创建。库名称为OperaMask,库类型为类库:
在“定制库”中选择“添加JAR/文件夹”,在弹出的对话框中选择OperaMask的基本jar包,并将导入方式指定为:复制到库文件夹。
一路选是。
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,选择如图所示的几个命名空间:
选择完成,然后在Beans节点之间添加如下内容:
<!-- 开启基于注解的配置 --> <context:annotation-config/> <!-- 使 AOM 中的 LiteBean 同样能够被 Spring 所感应到 --> <bean class="org.operamasks.faces.spring.ManagedBeanConfigurer"/> |
3. 配置JPA持久化支持
在服务选项卡中,选择MySQL数据库驱动,然后右键单击,选择连接设置,配置你要使用的数据库:
数据库配置完毕,然后回到项目选项卡,右键单击刚创建的项目,选择新建-->其它-->持久性-->持久性单元
在新建持久性单元对话框中选择持久性库为Hibernate,即选择Hibernate为JPA持久单元的实现,数据库连接选择我们刚配置好的MySQL连接。
单击完成。此时,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控制类
右键单击项目,选择新建-->其它-->持久性-->通过数据库生成实体类,选择数据库表:
点击下一步,输入合适的包名
下一步,映射选项如下图所示:
选择新建-->其它-->持久性-->基于实体类的JPA控制器类,下一步:
添加要生成控制器类的实体类,下一步:
选择合适的包,然后完成。
后面的配置无非就是将JPA的控制器类写入Spring的配置文件,然后在AOM的LiteBean中注入这些控制器类,实现数据库操作以及相应的业务逻辑。
注:解决Spring与Hibernate JPA的冲突:
如上图所示:选择工具--> 库 --> 库位置-->选择当前编辑的项目,选中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