您的位置:首页 > 编程语言 > Java开发

java 中 springmvc + openjpa 配置 注解

2012-10-10 08:46 381 查看
前提: openjpa 包,spring 3.0以上 java6

jpa:  在ecplise 中创建 jpa 项目 ,配置persistence.xml 如下:

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

<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="bankJpa" transaction-type="RESOURCE_LOCAL">
<!-- 定义jpa的Provider -->

        <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>

      

        <class>model.City</class>
<properties>
<!-- 
<property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://10.94.3.201:1433;databaseName=Tree"/>
<property name="javax.persistence.jdbc.user" value="sa0"/>
<property name="javax.persistence.jdbc.password" value="1Foxconn99"/>
<property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>

-->
<property name="openjpa.ClassLoadEnhancement" value="true" />  
<property name="openjpa.DynamicEnhancementAgent" value="true" />  
<property name="openjpa.RuntimeUnenhancedClasses" value="supported" />  
</properties>
</persistence-unit>

</persistence>

注意在发布后,这个jpa项目中 不要含有 persistence.xml  ,这个文件要放到 web 项目的 WEB-INF\classes\meta-info\persistence.xml 下面 ,不然会出现错误

2 springmvc 中 配置 ,

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

<beans  

    xmlns="http://www.springframework.org/schema/beans"  

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

    xmlns:tx="http://www.springframework.org/schema/tx"  

    xmlns:context="http://www.springframework.org/schema/context"    

    xmlns:mvc="http://www.springframework.org/schema/mvc"    

    xsi:schemaLocation="http://www.springframework.org/schema/beans   

    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   

    http://www.springframework.org/schema/tx   

    http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  

    http://www.springframework.org/schema/context  

    http://www.springframework.org/schema/context/spring-context-3.0.xsd  

    http://www.springframework.org/schema/mvc  

    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 
<!-- 自动扫描的包名 -->  

     

 

 <context:component-scan base-package="com.notes.face" />

    <context:component-scan base-package="com.notes.services" />

    <context:component-scan base-package="com.notes.control" ></context:component-scan> 

    

<!-- 默认的注解映射的支持 -->  

    <mvc:annotation-driven />

      <!-- 

        <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  

                <property name="mappings">  

                    <props>  

                        <prop key="helloWorld.do">helloWorldAction</prop>  

                    </props>  

                </property>  

        </bean>  

       

        -->

     <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />    

         

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">  

        <property name="viewClass">  

            <value>org.springframework.web.servlet.view.InternalResourceView</value>  

        </property>   

        </bean>  

        

     

        <!--指定控制器的实现类,

    <bean id="helloWorldControl" class="com.notes.control.HelloWorldControl">  

        <property name="helloWorld">  

            <value>Hello mys World!</value>  

        </property>  

        <property name="viewPage">  

            <value>index.jsp</value>  

        </property>  

        </bean>  

        并且配置其参数的值-->  

        

        

        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >  

        <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>  

        <property name="url" value="jdbc:sqlserver://10.94.3.200:1433;databaseName=Tree"/>  

        <property name="username" value="sa"/>  

        <property name="password" value="Foxconn99"/>  

    </bean>  

      

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

    <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"/>  

     

     

      <!--   

    <bean class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">  

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

    </bean>  

     

    <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">  

        <property name="transactionManager" ref="txManager"/>  

        <property name="transactionAttributeSource">  

            <bean class="org.springframework.transaction.annotation.AnnotationTransactionAttributeSource"/>  

        </property>  

    </bean>  

       -->

    

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

     

   

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

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

        <property name="jpaVendorAdapter">  

            <bean class="org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter">

             

                <property name="showSql" value="true"/>  

                <property name="generateDdl" value="true"/>  

               

                 <property name="databasePlatform" value="org.apache.openjpa.jdbc.sql.SQLServerDictionary"/>  

                

                <!-- property name="databasePlatform" value="org.apache.openjpa.jdbc.sql.DerbyDictionary"/ -->  

            </bean>  

        </property>  

          

        <property name="loadTimeWeaver">

        <bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/>  

        <!-- 

            <bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/>  

             -->

        </property>  

    </bean>  

    

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

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

       

    </bean>  

    

   

 

    

    

</beans> 

我原来在springmvc 中做的 dao 和Service 后来把他们放到独立的 jar包中 , 始终 不能够创建 注解的 entityManagerFactory ,后来在网上找到一个文章,就是

dao,service 打包时候要选择 add directroy enties 入口,才可以扫描到( <context:component-scan base-package="com.notes.services" />)

3 一些 dao,service 的 jar 放到 web-info\lib 下面

88e9
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java bean class sqlserver jpa dao