国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

OSGi與Spring DM:使用Spring DataSource

原創
開發 后端
OSGi 規范為 Spring 應用程序的開發引入了模塊化和動態服務。Spring DM對于 OSGi 中的面向服務應用程序開發是一個非常棒的平臺。本文介紹Spring DataSource的使用。

【51CTO精選譯文】本文是《你好,OSGi》系列的第九部分。之前已經完成了使用Spring DM構建簡單應用并導入導出服務套件的過程,下面將介紹Spring DataSource的使用。顧名思義,Spring DataSource用于完成Spring應用程序與數據庫直接的聯絡。

51CTO編輯推薦:OSGi入門與實踐全攻略

使用 Spring DataSource

Spring框架的長處之一在于它為處理常見需求提供了一組預制的bean。在***這個小節中,我們將學習Spring DM如何允許用戶訪問基于OSGi應用程序中的這些預制bean。

在這個練習中,我們將修改 ContactDAO套件,使它連接到一個RDBMS,來與聯絡表互動。對于連接管理,我們將使用Spring DataSource (org.springframework.jdbc.datasource.DriverManagerDataSource) 類。請注意 Spring 的 DataSource 是 org.springframework.bundle.spring.jdbc 服務套件的一部分。在這個練習中,我使用 Apache Derby 來測試應用程序的代碼;你也可以使用你喜歡的數據庫。

該練習的***步是在你的數據庫中創建聯絡表。可以使用代碼清單 11 中的 DDL 腳本創建這個 CONTACT 表。

代碼清單 11. CONTACT 表的 DDL

  1. CREATE TABLE CONTACT(  
  2. CONTACTID int NOT NULL,  
  3. FIRSTNAME varchar(300),  
  4. LASTNAME varchar(300)  
  5. );  

對于連接管理,我們想使用 Spring 的 DriverManagerDataSource bean。問題在于, DriverManagerDataSource 類是 spring.jdbc 套件的一部分,而后者為了完成其工作需訪問你的 JDBC 驅動程序類。要解決該依賴性,最簡單的方法是將你的 JDBC 驅動程序 JAR 導入到 spring.jdbc 套件中。

***步,右鍵點擊 org.springframework.bundle.spring.jdbc 套件,然后點擊 New --> Folder。將該文件夾命名為“JARs folder”。

接著,右鍵點擊新創建的 JARs folder,然后點擊 Import --> General --> File System。在 From Directory 下,File System 對話框應顯示包含你的 JDBC 驅動程序 JAR 目錄的問題。對于我,該位置是 C:\software\db-derby-10.2.2.0-bin\lib。 選擇該位置,將在 Select 框中顯示 JAR 列表。選擇 derbyclient.jar(如果你使用的是 Derby)然后單擊完成。Eclipse 將 derbyclient.jar 導入到你的 JARs folder 中。

導入 JDBC 驅動程序 JAR 的***一步是將其添加到你的套件路徑中。為此,在 Plug-in Manifest Editor 編輯器中打開 org.springframework.bundle.spring.jdbc 套件的 MANIFEST.MF 文件。然后切換到 Runtimes 標簽欄并選擇 jars/derbyclient.jar,如圖 3 所示。

將 derbyclient.jar 添加到套件路徑 
圖 3. 將 derbyclient.jar 添加到套件路徑

(如果你喜歡,可以收到更新 bundle-classpath 條目至:Bundle-ClassPath: spring-jdbc-2.5.jar, jars/derbyclient.jar。)

現在,我們已經準備好了,可以通過將 JDBC 代碼修改 ContactDAOImpl 類的實現,用來與 CONTACT 表互動。如果你需要,可以從本文的示例代碼導入這個 ContactDAOImpl.java;或者只需使用如代碼清單 12 中所示的內容。

代碼清單 12. RDBMS 訪問的 ContactDAO 實現 - ContactDAOImpl.java

  1. public class ContactDAOImpl implements ContactDAO {  
  2. DataSource dataSource;  
  3. public DataSource getDataSource() {  
  4. return dataSource;  
  5. }  
  6. public void setDataSource(DataSource dataSource) {  
  7. this.dataSource = dataSource;  
  8. }  
  9. public List getContactList() {  
  10. List contactList = new ArrayList();  
  11. try {  
  12. Connection connection = dataSource.getConnection();  
  13. Statement stmt= connection.createStatement();  
  14. ResultSet rs =stmt.executeQuery("SELECT * FROM CONTACT");  
  15. while(rs.next()){  
  16. int contactId = rs.getInt("CONTACTID");  
  17. String firstName = rs.getString("FIRSTNAME");  
  18. String lastName = rs.getString("LASTNAME");  
  19. Contact contact = new Contact(contactId,firstName,lastName);  
  20. contactList.add(contact);  
  21. }  
  22. catch (SQLException e) {  
  23. e.printStackTrace();  
  24. }  
  25. return contactList;  
  26. }  
  27. //  
  28. }  
  29.  

你會注意到在代碼清單 12 中 ContactDAOImpl.java 有幾處修改:

首先,我們添加了作為 Java bean 屬性的 dataSource,包含相應的 getter 和 setter。Spring 將負責創建 DataSource 對象以及將其導入到 ContactDAOImpl。

getContactList() 方法從數據源(datasource)獲取連接,然后使用它來檢索 CONTACT 表中的所有聯絡記錄。請注意,代碼清單 12 是 ContactDAOImpl.java 的一部分代碼;完整的代碼請查看示例代碼。

ContactDAOImpl 已經準備就緒,我們要做的***一步是修改 ContactDAO 套件中的 contactdao-service.xm,代碼如代碼清單13 所示:

代碼清單 13. 更新 Spring 語境文件 - contactdao-service.xml

  1. < ?xml version="1.0" encoding="UTF-8"?> 
  2. < beans xmlns="http://www.springframework.org/schema/beans" 
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 
  5. < bean name="contactDAOService" 
  6. class="com.javaworld.sample.osgi.spring.contact.impl.ContactDAOImpl"> 
  7. < property name="dataSource" > 
  8. < ref bean="dataSource" /> 
  9. < /property> 
  10. < /bean> 
  11. < bean name="dataSource" 
  12. class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
  13. < property name="driverClassName" 
  14. value="org.apache.derby.jdbc.ClientDriver" /> 
  15. < property name="url" 
  16. value="jdbc:derby://localhost:1527/C:/derby_home/databases/ClientDB" /> 
  17. < property name="username" value="test" /> 
  18. < property name="password" value="test" /> 
  19. < /bean> 
  20. < /beans> 
  21.  

contactdao-service.xml 的修改如下:

◆我們聲明了一個 dataSource bean,指向org.springframework.jdbc.datasource.DriverManagerDataSource。這配置了 Spring,來負責應用程序的數據庫連接管理。(請確保在你的 bean 定義中使用你的數據庫專用的 JDBC 屬性。)

◆接著,我們修改 contactDAOService 的定義來添加對于 dataSource bean 的依賴性。

這樣,利用 Spring DM構建的 HelloWorld 服務應用程序已經準備好了。當在 Equinox 容器中執行該應用程序時,它將在應用程序啟動時在控制臺上輸出聯絡列表。

總結

OSGi 規范為 Spring 應用程序的開發引入了模塊化和動態服務。對于已經熟悉 Spring 編程和配置的開發者,Spring DM代表了一種更為簡易的入口,可以學習 OSGi 的動態、模塊化的開發規范,而無需學習 OSGi API。正如你在本文中所看到的,Spring DM對于 OSGi 中的面向服務應用程序開發是一個非常棒的平臺。在一個正在運行的系統中,使用 Spring DM編寫的應用程序模塊能夠動態地進行添加、移除和更新,而且你還可以同時部署指定模塊的多個版本。

【編輯推薦】

  1. 你好,OSGi!OSGi入門必讀系列
  2. 使用OSGi構建面向服務的聯絡管理應用程序
  3. OSGi與Spring:設置Spring DM開發環境
  4. OSGi和Spring入門:什么是Spring動態模型(Spring DM)?
  5. OSGi是什么:Java語言的動態模塊系統
責任編輯:yangsai 來源: 51CTO.com
相關推薦

2009-09-28 13:13:16

設置Spring DM

2009-09-28 14:49:08

Spring DMOSGi服務

2009-09-27 09:29:56

OSGi和SpringSpring動態模型Spring DM

2009-06-01 10:28:03

SpringOSGi整合

2009-06-18 15:24:08

Spring OSGi

2009-07-09 09:18:50

Spring Tool

2009-03-03 10:06:00

IBMJavaOSGi

2009-06-18 15:14:53

Spring osgi

2009-06-01 10:40:26

SpringOSGI中文手冊

2009-10-29 09:52:55

OSGi

2010-04-07 08:55:00

OSGiSpring

2009-06-25 15:33:48

OSGi方式

2023-09-04 11:52:53

SpringMVC性能

2009-06-23 17:54:41

OSGi與JSF

2010-05-28 09:22:06

dm ServerSpringEclipse

2009-09-28 13:32:39

OSGi入門

2010-05-20 13:19:35

GoogleSpringVMware

2009-06-17 15:18:38

JSF與Spring

2009-07-14 14:41:33

Webwork與Spr

2009-06-25 17:13:51

jBPM與Spring
點贊
收藏

51CTO技術棧公眾號

狠狠久久综合婷婷不卡| 日本免费在线观看| 亚洲女同在线| 国产精品91在线观看| 91精品福利观看| 欧美精品一区二区三区很污很色的 | 亚洲人永久免费| 日本美女高清在线观看免费| 亚洲麻豆国产自偷在线| aa在线观看视频| 成人精品影视| 精品视频一区二区三区免费| 亚洲成人资源网| 福利视频在线导航| 日日骚欧美日韩| 91大片在线观看| 精品成人影院| 国产精品极品美女粉嫩高清在线| 99精品国产高清一区二区麻豆| 久久精品成人一区二区三区| jvid一区二区三区| 久久午夜a级毛片| 日韩三级不卡| 2019中文字幕在线观看| 美女视频免费精品| 日韩免费视频在线观看| 国产一区二区三区站长工具| 国产精品久久二区| 911久久香蕉国产线看观看| 亚洲一区亚洲二区亚洲三区| 国产精品jizz在线观看美国| 国产亚洲精品自在久久| 性色一区二区| 婷婷久久伊人| 成人97人人超碰人人99| 天美星空大象mv在线观看视频| 国产三级三级三级精品8ⅰ区| 婷婷色播视频| 亚洲国产一区二区在线播放| 成人精品一区二区三区校园激情| 欧美精品在线一区二区三区| av福利在线导航| 日韩在线观看免费高清完整版| 凹凸成人在线| 成人av在线亚洲| 男人的天堂成人在线| 成人黄色片免费| 中文字幕五月欧美| 国产精品一区二区三区四区色| 日韩二区三区在线| 国产精品45p| 国产精品一级久久久| 国产成人精品免费| 最新黄色片网站| 精品久久久久久最新网址| 亚洲黑人在线| 国产一区二区丝袜高跟鞋图片| 美女诱惑黄网站一区| 国产欧美在线一区| 欧洲日韩一区二区三区| 一级毛片久久久| 国产www精品| 久久男女视频| 黄色av免费在线播放| 欧美中文字幕亚洲一区二区va在线| 在线观看v片| 国产成人精彩在线视频九色| 一本色道久久综合亚洲精品高清| 久草免费福利在线| 精品久久香蕉国产线看观看gif| av影院在线| 国产女精品视频网站免费| 国产一区二区三区香蕉| 在线天堂av| 理论片在线不卡免费观看| 亚洲免费成人| 色婷五月综激情亚洲综合| 日韩一区二区免费高清| 欧美人与牛zoz0性行为| 欧美一区1区三区3区公司| 欧洲精品视频在线观看| 亚洲成人不卡| 欧美日韩视频免费观看| 欧美制服第一页| 麻豆精品新av中文字幕| 久久国产情侣| 亚洲国产成人精品女人久久久 | 5566成人精品视频免费| 婷婷久久综合| 天堂а√在线中文在线| 色综合天天天天做夜夜夜夜做| 亚洲国产成人二区| 国产精品伦子伦免费视频| 国产伦理精品不卡| 999在线视频| 欧美亚洲另类制服自拍| 国产精品资源在线看| 精品推荐蜜桃传媒| 欧美综合在线第二页| 国内久久精品视频| 成人影视在线播放| 欧美亚洲国产日本| 国产激情一区二区三区| www.视频在线.com| 国产欧美在线播放| 欧美国产精品专区| 国产精品国产亚洲精品| 四虎永久免费网站| 欧美变态凌虐bdsm| 极品少妇一区二区三区| 777.av| 久久97精品久久久久久久不卡| 日本少妇一区二区| 国产在线观看91| 国产精品 日韩| 欧美日韩国产精品| 不卡一区2区| 国产美女在线免费观看| 欧美美女18p| www一区二区| 亚洲欧洲日韩精品在线| 国产在线xxxx| 国产亚洲精品va在线观看| 琪琪一区二区三区| 黄色在线视频网站| 久久99精品久久久久久久青青日本| 亚洲mv在线观看| 欧美日韩在线观看视频小说| 免费高清视频日韩| 国产精品久久久久久久久久三级 | 欧美精品一二三| 综合在线一区| 国产精品影院在线| 97久久人人超碰caoprom欧美| 亚洲成va人在线观看| 国产99久久久国产精品成人免费| gogo高清免费视频| 国产精品扒开腿做爽爽爽男男| 一区二区三区成人| 日韩国产一区二区| 成年人在线观看| 蜜桃av久久久亚洲精品| 日韩一区二区不卡| 九九精品视频在线看| 欧美性xxx| chinese少妇国语对白| 69视频在线免费观看| 午夜天堂影视香蕉久久| 黄色另类av| 男人天堂视频在线观看| 青青草精品视频在线| 97免费在线视频| 一本大道久久a久久精品综合| 噜噜噜躁狠狠躁狠狠精品视频| 蜜桃视频www网站在线观看| av女优在线播放| 日韩av电影院| 欧美日韩综合一区| 精品一区二区三区久久| 91麻豆精品| 草莓污污视频在线观看| 91亚色免费| 日韩视频中午一区| 亚洲视频在线观看视频| 亚洲精品视频二区| 最好看的2019年中文视频| 精品一区二区三区无码视频| 欧洲一区二区在线观看| www日韩av| 国产精品一级| 日本午夜精品电影| 亚洲综合图片| 国产a视频精品免费观看| 国产成人精品电影| 天海翼一区二区三区四区在线观看| 一区二区三区四区五区在线| 婷婷综合久久一区二区三区| 精品国产一区二区三区久久狼5月| 久久91亚洲精品中文字幕奶水| 性欧美大战久久久久久久免费观看| 成人亚洲综合天堂| 在线欧美视频| 欧美性xxxxxx少妇| 午夜欧美不卡精品aaaaa| 91黑丝高跟在线| 亚洲综合激情五月| 超碰在线公开97| 成人免费在线电影| 亚洲码欧美码一区二区三区| 992tv国产精品成人影院| 99久久人爽人人添人人澡| 国产成人免费视频网站视频社区| 蜜桃久久av一区| 日韩欧美一区在线观看| 致1999电视剧免费观看策驰影院| 日韩电影不卡一区| 亚洲欧美日韩人成在线播放| 欧美精品久久久久久久久久| 99中文字幕在线观看| 久久99精品久久久久久园产越南|