隨筆-124  評(píng)論-194  文章-0  trackbacks-0

           

          JPA標(biāo)準(zhǔn)+HIBERNATE實(shí)現(xiàn)+SPINRG揉和

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

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

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

          還有一個(gè)暈的地方:

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

          <?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代碼很簡(jiǎn)單,從JpaDaoSupport派生類來(lái)處理,看不見(jiàn)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)服務(wù)器:設(shè)置一個(gè)目錄在WEB服務(wù)上可以訪問(wèn)

          /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選項(xiàng)表示可以列出目錄。

          另外,把httpd的運(yùn)行用戶加入這個(gè)目錄的owner所在的一個(gè)組,并且組的讀屬性是開(kāi)的。

          設(shè)置服務(wù)器地址:

          C:"WINDOWS"system32"drivers"etc"hosts文件加入ebnms指向內(nèi)網(wǎng)服務(wù)器,然后將第一項(xià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可以被外部機(jī)器連接

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

          bind-address            = 0.0.0.0

          本機(jī)通過(guò)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錯(cuò)誤

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

          posted on 2008-01-28 23:08 我愛(ài)佳娃 閱讀(6426) 評(píng)論(1)  編輯  收藏 所屬分類: 服務(wù)配置Springmaven

          評(píng)論:
          # re: 最近在用JPA+SPRING+HIBERNATE及MAVEN2中遇到的問(wèn)題和解決方法做個(gè)筆記 2008-06-24 10:32 | yujiaao@msn.com
          我想用JPA動(dòng)態(tài)切換數(shù)據(jù)庫(kù),樓主能幫個(gè)忙么?  回復(fù)  更多評(píng)論
            
          <2008年1月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(19)

          隨筆分類(134)

          隨筆檔案(123)

          我的博客

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 553656
          • 排名 - 89

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 巢湖市| 拜城县| 岳阳县| 十堰市| 马鞍山市| 北京市| 云霄县| 紫阳县| 内黄县| 铜川市| 西城区| 和顺县| 驻马店市| 稻城县| 鲁甸县| 股票| 兰州市| 安西县| 镇雄县| 秭归县| 南京市| 岗巴县| 兴宁市| 鄂尔多斯市| 山丹县| 阜南县| 金湖县| 正安县| 呼和浩特市| 报价| 古田县| 汕尾市| 都兰县| 莱芜市| 宁强县| 寻甸| 图片| 沙洋县| 平远县| 潞西市| 德格县|