<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-124  評論-194  文章-0  trackbacks-0

     

    JPA標準+HIBERNATE實現(xiàn)+SPINRG揉和

    感覺這3個東東比較好,就查例子,及SPRING文檔做了以下配置。

    類映射就用JPAannotations好,本來transaction也應該用的,但后來發(fā)現(xiàn)aop+advise這種定義方式方便,就先用它,隨時可以改過來。這些定義都挺簡單,看一下SPRING的文檔就都清楚了,而且看最新文檔還有個好處,知道最新的寫法是什么。

    transaction定義在MANAGER上,DAO就注入到它里面。

    還有一個暈的地方:

    Persistence.xml這個文件就算不用也要定義,它是用來放映射的hbm.xml或者是被annotation的類名的,但我發(fā)現(xiàn)其實寫了也沒用,它好像會自動去搜索hbm.xml以及有annotations的類,自動加到EntityManager里。我只有把不用的hbm.xml刪除掉它才會不加。這一點相當奇怪,試了八百多次,也沒啥心思研究了,刪除了事。

    <?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:aop="http://www.springframework.org/schema/aop"

           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.5.xsd

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

           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">

           <!--    Data Source Setup -->

           <bean id="dataSource"

                  class="org.springframework.jdbc.datasource.DriverManagerDataSource">

                  <property name="driverClassName">

                         <value>com.mysql.jdbc.Driver</value>

                  </property>

                  <property name="url">

                         <value>jdbc:mysql://ebnms:3306/uu</value>

                  </property>

                  <property name="username">

                         <value>root</value>

                  </property>

                  <property name="password">

                         <value>78317</value>

                  </property>

           </bean>

           <bean id="entityManagerFactory"

                  class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">

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

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

                  <!--property name="loadTimeWeaver">

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

                         </property-->

                  <property name="jpaVendorAdapter">

                         <bean

                                class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">

                                <property name="database" value="MYSQL" />

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

                         </bean>

                  </property>

           </bean>

           <bean id="txManager"

                  class="org.springframework.orm.jpa.JpaTransactionManager">

                  <property name="entityManagerFactory"

                         ref="entityManagerFactory" />

           </bean>

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

           <bean

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

           <bean id="monitorDao"

                  class="com.exchangebit.nms.model.test.MonitorJpaDao">

                  <property name="entityManagerFactory"

                         ref="entityManagerFactory" />

           </bean>

           <bean id="monitorManager"

                  class="com.exchangebit.nms.model.test.MonitorManager">

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

           </bean>

           <aop:config>

                  <aop:pointcut id="monitorDaoMethods"

                         expression="execution(* com.exchangebit.nms.model.test.MonitorManager.*(..))" />

                  <aop:advisor advice-ref="txAdvice"

                         pointcut-ref="monitorDaoMethods" />

           </aop:config>

           <tx:advice id="txAdvice" transaction-manager="txManager">

                  <tx:attributes>

                         <tx:method name="save*" propagation="REQUIRED" />

                  </tx:attributes>

           </tx:advice>

    </beans>

    Persistence.xml內(nèi)容:

    <persistence 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_1_0.xsd"

           version="1.0">

           <persistence-unit name="ebnms" transaction-type="RESOURCE_LOCAL">

                  <!--provider>org.hibernate.ejb.HibernatePersistence</provider-->

          

                  <class>

                         com.exchangebit.nms.model.test.Monitor

                  </class>

           </persistence-unit>

    </persistence>

    DAO代碼很簡單,從JpaDaoSupport派生類來處理,看不見transactions的那些代碼,全部在SPRING的定義里放到manager里去了:

    publicclass JpaGenericDAO extends JpaDaoSupport {

           protectedfinal Logger logger = LoggerFactory.getLogger(getClass());

           publicvoid create(T entity) {

                  Assert.notNull(entity);

                  logger.info("saving {} instance", className);

                  getJpaTemplate().persist(entity);

                  logger.info("save successful");

           }

    }

    搭建MAVEN2的內(nèi)網(wǎng)服務器:設置一個目錄在WEB服務上可以訪問

    /etc/apache2/conf.d下新建配置文件,內(nèi)容如下:

    Alias /maven2 /maven2

    <Directory /maven2>

            Options +FollowSymLinks Indexes

            AllowOverride None

            order allow,deny

            allow from all

    </Directory>

    這里關(guān)鍵是Indexes選項表示可以列出目錄。

    另外,把httpd的運行用戶加入這個目錄的owner所在的一個組,并且組的讀屬性是開的。

    設置服務器地址:

    C:"WINDOWS"system32"drivers"etc"hosts文件加入ebnms指向內(nèi)網(wǎng)服務器,然后將第一項repo指向它:

                  <repository>

                         <id>artifactory</id>

                         <name>artifactory at my server</name>

                         <url>http://ebnms/maven2</url>

                         <snapshots>

                                <enabled>true</enabled>

                                <updatePolicy>never</updatePolicy>

                         </snapshots>

                  </repository>

    MYSQL可以被外部機器連接

    修改CONFIG文件為綁定全網(wǎng)端口:

    bind-address            = 0.0.0.0

    本機通過ROOT連接上后,執(zhí)行命令給權(quán)限:

    GRANT ALL PRIVILEGES ON *.* TO root@192.168.1.99 IDENTIFIED BY '78317';

    試登陸:

    mysql -u root -h 192.168.1.17 –p

    修改密碼:
    SET PASSWORD FOR root@'172.19.149.52' = PASSWORD('78317');

    cannot connect to VM錯誤

    左提示右提示就是這個錯,找了半天是Kaspersky防火墻的問題,其實一早我就懷疑是它,但只是停用了試了下,錯誤依舊,后來試了一天又試回來,發(fā)現(xiàn)要把防火墻的過濾級別設置成最低就可以了通了,暈啊暈,還讓我懷疑是不是JAR沖突。

    posted on 2008-01-28 23:08 我愛佳娃 閱讀(6419) 評論(1)  編輯  收藏 所屬分類: 服務配置Springmaven

    評論:
    # re: 最近在用JPA+SPRING+HIBERNATE及MAVEN2中遇到的問題和解決方法做個筆記 2008-06-24 10:32 | yujiaao@msn.com
    我想用JPA動態(tài)切換數(shù)據(jù)庫,樓主能幫個忙么?  回復  更多評論
      
    主站蜘蛛池模板: 曰批免费视频播放在线看片二| 特级做a爰片毛片免费看| 国产亚洲色视频在线| 日韩精品无码区免费专区| 中国一级特黄高清免费的大片中国一级黄色片 | 国产成人无码免费网站| 亚洲午夜无码毛片av久久京东热 | 国产色爽免费无码视频| 猫咪免费人成在线网站| 亚洲综合在线一区二区三区| 久久亚洲国产视频| 久久久青草青青国产亚洲免观| 好吊妞998视频免费观看在线| 国产精品免费一区二区三区四区| 日本一区二区在线免费观看| 亚洲精品乱码久久久久蜜桃 | 亚洲性线免费观看视频成熟| 国产精品99久久免费观看| 丝瓜app免费下载网址进入ios| 无忧传媒视频免费观看入口| 99亚洲精品卡2卡三卡4卡2卡| 亚洲 欧洲 自拍 另类 校园| 亚洲图片校园春色| 亚洲男人电影天堂| 亚洲福利一区二区精品秒拍| 亚洲精品成人网站在线播放 | 嘿嘿嘿视频免费网站在线观看 | 亚洲国产精品专区| 亚洲人成免费网站| 亚洲国产av一区二区三区丶| 亚洲国产精品张柏芝在线观看| 666精品国产精品亚洲 | 免费下载成人电影| 国产免费看JIZZ视频| aa级一级天堂片免费观看| 国产免费看JIZZ视频| 成人免费无码大片a毛片| 女人被男人躁的女爽免费视频| 四虎成人免费影院网址| 国产麻豆剧传媒精品国产免费| 国产一区在线观看免费|