Eclipse下Spring+openJPA做EJB3的开发

Eclipse下Spring+openJPA做EJB3的开发

Spring的版本号为2.0.6
openJPA的版本为0.9.7(其实1.0.0也是一样)
照下面如此,客户端不用装应用服务器开发了.
但如果你的客户端是Eclipse的RCP则和这个配置有一些不同


 

1.项目的Classpath的列表

    <classpathentry kind="lib" path="main/lib/commons-beanutils.jar"/>
    
<classpathentry kind="lib" path="main/lib/commons-beanutils-bean-collections.jar"/>
    
<classpathentry kind="lib" path="main/lib/commons-beanutils-core.jar"/>
    
<classpathentry kind="lib" path="main/lib/commons-collections-3.2.jar"/>
    
<classpathentry kind="lib" path="main/lib/commons-lang.jar"/>
    
<classpathentry kind="lib" path="main/lib/commons-logging.jar"/>
    
<classpathentry kind="lib" path="main/lib/javaee.jar"/>
    
<classpathentry kind="lib" path="main/lib/log4j-1.2.14.jar"/>
    
<classpathentry kind="lib" path="main/lib/openjpa-0.9.7-incubating.jar"/>
    
<classpathentry kind="lib" path="main/lib/serp-1.11.0.jar"/>
    
<classpathentry kind="lib" path="test/lib/aspectjrt.jar"/>
    
<classpathentry kind="lib" path="test/lib/aspectjweaver.jar"/>
    
<classpathentry kind="lib" path="test/lib/cglib-nodep-2.1_3.jar"/>
    
<classpathentry kind="lib" path="test/lib/dbunit-2.2.jar"/>
    
<classpathentry kind="lib" path="test/lib/ojdbc14.jar"/>
    
<classpathentry kind="lib" path="test/lib/postgresql-8.2-506.jdbc3.jar"/>
    
<classpathentry kind="lib" path="test/lib/spring.jar"/>


2.BEANS.XML的配置

 

<? xml version="1.0" encoding="UTF-8" ?>
< beans  default-lazy-init ="true"
    xmlns
="http://www.springframework.org/schema/beans"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop
="http://www.springframework.org/schema/aop"
    xmlns:jee
="http://www.springframework.org/schema/jee"
    xmlns:tx
="http://www.springframework.org/schema/tx"
    xsi:schemaLocation
="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"
>
      
    
< bean  id ="propertyConfigurer"
        class
="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
        lazy-init
="false" >
        
< property  name ="locations" >
            
< list >
                
< value > jpa.properties </ value >
            
</ list >
        
</ property >
    
</ bean >

    
<!--  Pitchfork configuration  -->
<!--     <bean -->
<!--         class="org.springframework.jee.ejb.config.JeeEjbBeanFactoryPostProcessor" /> -->

    
< bean
        
class ="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"   />

    
< bean  id ="persistenceUnitManager"
        class
="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager" >
         < property  name ="loadTimeWeaver" >
            
< bean
                
class ="org.springframework.instrument.classloading.SimpleLoadTimeWeaver"   />
        
</ property >
    
</ bean >


    
< bean  id ="entityManagerFactory"
        class
="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" >
        
< property  name ="persistenceUnitManager"
            ref
="persistenceUnitManager"   />
        
< property  name ="persistenceUnitName"  value ="${persistence.unit.name}"   />

        
< property  name ="jpaVendorAdapter" >
            
< bean
                
class ="org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter"   />
        
</ property >
    
</ bean >

    
< bean  id ="transactionManager"
        class
="org.springframework.orm.jpa.JpaTransactionManager" >
        
< property  name ="entityManagerFactory"
            ref
="entityManagerFactory"   />
    
</ bean >

    
< tx:advice  id ="methodTransactionAdvice"
        transaction-manager
="transactionManager" >
        
< tx:attributes >
            
< tx:method  name ="*"   />
        
</ tx:attributes >
    
</ tx:advice >
    
< aop:config  proxy-target-class ="true" >
        
< aop:pointcut  id ="serviceMethods"
            expression
="execution(public * com.wilesun.test..*Service.*(..))"   />
        
< aop:advisor  pointcut-ref ="serviceMethods"
            advice-ref
="methodTransactionAdvice"   />
    
</ aop:config >

    
<!--  ================================================  -->
    
< bean  id ="com.wilesun.test.IHelloService"
        class
="com.wilesun.test.HelloService"   />     
 
                             
</ beans >


3.persistence_1_0.xsd和orm_1_0.xsd

将这两个文件放到项目的classpath的根位置

4.做测试程序

public class HelloService implements IHelloServiceLocal, IHelloServiceRemote {
   @PersistenceContext
   private EntityManager em;
   
   @Resource
   private SessionContext ctx;
}
将代码实现完,就可以测试了

你可能感兴趣的:(Eclipse下Spring+openJPA做EJB3的开发)