国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java控件設計入門

2019-11-18 15:57:52
字體:
來源:轉載
供稿:網友
為什么需要控件(Controls)

  企業資源訪問是企業應用開發過程中的重要內容,然而企業資源的多樣性對于軟件開發者而言是個大難題。盡管J2EE標準中對于眾多資源的訪問接口進行了定義,然而對于軟件開發者而言,這些接口仍然是太多了。我們簡單的描述一下這個問題,首先看一下J2EE1.4的架構圖。

   Java控件設計入門(圖一)
   圖1  J2EE 1.4架構

  上面這張圖是J2EE 1.4標準中的J2EE架構圖,從這張圖上我們可以看到,J2EE標準中提供了豐富的組件、協議和系統服務滿足企業的需求,比如EJB、JMS、JDBC、Web Services、javaMail等等,方便企業根據不同的需求通過組合調用這些組件、協議和系統服務來建設企業的業務系統,然而企業本身業務隨著市場的變化在不停的調整,不同時期、不同市場環境下的不同需求導致企業內部業務系統建設的極度不均衡,不同的數據庫、不同的J2EE應用中間件、不同的架構設計導致企業應用開發的復雜度成倍增加。

   舉個簡單的例子,讓我們來看看假如要使用這些技術開發一個企業級系統,開發者需要完成的工作:

   在一個企業級應用系統中,業務邏輯通常會被封裝成EJB,開發者需要通過JNDI來訪問EJB中的業務邏輯;異步的消息傳遞通常會使用JMS服務器,開發者需要通過調用服務器支持的隊列或者主題來完成消息發送和接收;更多的情況下,開發者需要通過JDBC來訪問企業數據庫,完成相關數據的持久化工作,下面我們簡單的看看訪問這些資源所需要編寫的代碼片斷。

  訪問一個EJB需要完成的代碼
1. //初始化EJB訪問上下文 2. Context context = new InitialContext(); 3. //查找jndiName對應的EJB調用入口 4. Object o = ctx.lookup(“jndiName”); 5. //生成EJB訪問的home接口 6. XXXHome home = (XXXHome) javax.rmi.PortableRemoteObject 7.     .narrow(o,XXXHome.class); 8. //創建EJB對象 9. XXX xxx = home.create(); 10. //完成相關業務方法調用 11.  … 12. //EJB使用完畢,清除EJB對象 13. xxx.remove(); 
  訪問JDBC數據源要完成的代碼
1. //加載數據庫驅動 2. Class.forName(“driver_name_of_jdbc_driver”); 3. //通過DriverManager獲取數據庫連接 4. Connection conn = DriverManager 5.     .getConnection(jdbcUrl,userName,passWord); 6. //創建Statement對象 7. Statement stmt = conn.createStatement(); 8. //完成相關數據的訪問 9.  … 10. //關閉Statement對象 11. stmt.close(); 12. //關閉數據庫連接 13. conn.close(); 
  訪問JMS需要完成的部分代碼
1. //初始化EJB訪問上下文 2. Context context = new InitialContext(); 3. //通過JNDI查詢連接工廠 4. TopicConnectionFactory factory = (TopicConnectionFactory) ctx 5.     .lookup(“weblogic.jws.jms. TopicConnectionFactory”); 6. //使用連接工廠創建JMS連接 7. TopicConnection conn = factory.createTopicConnection(); 8. //創建JMS會話 9. Topicsession session = connection 10.     .createTopicSession(false,Session.AUTO_ACKNOWLEDGE); 11. //通過jndiName查找目的地(主題) 12. Topic topic = (Topic) ctx.lookup(“jndiName”); 13. //創建消息發生者 14. TopicPublisher publisher = session.createPublisher(topic); 15. //創建要發送的文本消息 16. TextMessage message = session.createTextMessage(); 17. message.setText(“Hello World!”); 18. //發送文本消息 19. publisher.publish(message); 

  這些只是J2EE標準中不到四分之一服務的客戶端調用代碼片斷,從中我們可以發現每種企業資源的訪問方式和API都不相同,而且每一種調用代碼的編寫都不是一件非常輕松的事情,而J2EE中還提供了更多的企業資源接訪問接口方式如Web Services,JavaMail等,對于開發者而言,要完全把握J2EE1.4客戶端調用代碼對每一個開發者而言都不是一件輕松的事情。

  控件(Controls)架構為解決這個難題提供了行之有效的方法。在控件(Controls)架構中,我們使用Java控件(Control)對資源訪問進行封裝,隱藏資源訪問細節。開發者只需要繼續這些Java控件(Control),而后提供自己的業務方法,使用Java控件(Control)中提供的特定注釋(Annotation)來注釋這些業務方法,就可以完成企業資源的訪問工作。這種方式不但快捷高效,而且對于資源訪問者而言,他始終采用同一接口去調用不同的資源,根本不需要去了解資源訪問的細節。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泸定县| 聊城市| 甘孜县| 肇东市| 江孜县| 荥阳市| 鹤峰县| 定襄县| 万盛区| 南部县| 宣汉县| 遂溪县| 北海市| 嘉定区| 奉化市| 奉贤区| 晴隆县| 桦南县| 聂拉木县| 富民县| 油尖旺区| 津市市| 彰化市| 柘城县| 天门市| 瑞丽市| 洛浦县| 武邑县| 静乐县| 兰溪市| 青阳县| 集贤县| 诸暨市| 岚皋县| 德兴市| 天峻县| 垦利县| 怀化市| 东源县| 梁平县| 云龙县|