笨笨熊.java

          笨笨熊的JAVA學習筆記

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            5 Posts :: 0 Stories :: 32 Comments :: 0 Trackbacks

          2007年4月8日 #


          這兩天在windows2000 professional 下進行了Apache2與Tomcat5的整合。這理總結下:
          一)安裝配置tomcat apache mod_jk j2sdk
          1)下載并安裝Sun j2sdk1.5.這是必需的基本環境。
             下載地址:http://java.sun.com
          2)下載Tomcat5.5.16 解壓使用就行啦,然后試下Tomcat能不能正常運行。
              下載地址:http://tomcat.apache.org/
          3)下載Apache2.0.55 windows安裝版本,并安裝
               下載地址:http://httpd.apache.org/
          4)下載mod_jk
             下載地址:http://archive.apache.org/dist/jakarta/tomcat-connectors/jk/
          準備完成后就可以進行配啦:
          二)配置
          1)把mod_jk-1.2.14-apache-2.0.54.so 改名為mod_jk.so放到apache2/modules/下
          2)修改httpd.conf加入:
          # load the jk_modules
          #include E:/Apache Group/Apache2/conf/mod_jk.conf
          LoadModule jk_module modules/mod_jk.so
          # Where to find workers.properties
          JkWorkersFile conf/workers.properties
          # Where to put jk logs
          JkLogFile logs/mod_jk.log  #可不要
          # Set the jk log level [debug/error/info]
          JkLogLevel info #可不要
          # Send servlet for context /examples to worker named ajp13
          #JkMount /servlet/* ajp13
          # Send JSPs for context /examples to worker named ajp13
          JkMount /*.jsp ajp13
           
           
          3加入虛擬主機:
          NameVirtualHost *:80
          <VirtualHost *:80>
          ServerAdmin yourmail@.maill.com
          DocumentRoot E:/develop/apache-tomcat-5.5.16/webapps/jsp-examples
          ServerName localhost
          ErrorLog logs/localhost-error_log
          CustomLog logs/localhost-access_log common
          </VirtualHost>
           
          2)編寫workers.properties 并放配到 apache2 的conf目錄下
          workers.properties  內容如下:
          worker.list=ajp13
          worker.ajp13.port=8009
          worker.ajp13.host=localhost  #本機,若上面Tomcat主機不為localhost,作相應修改
          worker.ajp13.type=ajp13  #類型
          worker.ajp13.lbfactor=1  #代理數,不用修改

          3)確認tomcat5的conf/server.xml中已有經下配置:
          <Connector port="8009"
                         enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
           
          好啦配置完畢,分別起動apache和tomcat.然后輸入http://localhost/ 應該會出現tomcat的detault面頁啦。

          posted @ 2007-04-08 11:22 笨笨熊 閱讀(606) | 評論 (0)編輯 收藏

          2005年9月24日 #

          IoC-(Inversion of Control)

          控制返轉,在傳統的實現中,由程序內部代碼來控制程序之間的關系。而在IoC中,將控制程序間關系的實現交給了外部的容器來完成。


          DI-(Dependency Injection)

          依賴注射,通常在程序中,我們會使用new關鍵字來實現兩組鍵間關系的組合,這種實現的方式會造成組件之間耦合(一個好的設計,不但要實現代碼重用,還要將組件間關系解耦)。依賴注射很好的解決了該問題,它將實現組件間關系從程序內部提到外部容器來管理。也就是說由容器在運行期將組件間的某種依賴關系動態的注入組件中。


          Model-View-Controller

          model:代表應用的業務邏輯,用JavaBean和EJB實現。

                    在Struts中是用Action和ActionForm實現的。

          view:代表應用的表示層。用JSP頁面實現。

          controller:提供應用的處理過程控制。一般是一個servelet。

                        在Struts中用Action Servlet和ActionMapping實現。

          DTO: Data Transfer Object

          DTO就是數據傳輸對象(Data Transfer Object)的縮寫。
          DTO模式或稱VO模式,是指將數據封裝成普通的JavaBeans,在J2EE多個層次之間傳輸。
          DTO類似信使,是同步系統中的Message。
          該JavaBeans可以是一個數據模型Model。
          常見的方式就是為實體對象建立一個Model類,該類只包含這個對象所有字段的getter和setter。例如用戶User實體有name, password字段,則建立一個UserModel類,public方法有getName,setName,getPassword,setPassword。這樣就可以把UserForm作為參數傳給其他函數。
          Data Transfer Object(DTO)模式是為了解決這樣的問題:例如我們的一個實體Bean,其對應的數據庫表的字段非常多,那么我們在其Home接口的create方法中以及Enterprise Bean類的ejbCreate方法中的參數可能就會很多,導致我們的這些方法不夠elegant。我們可以通過定義一個簡單的Java類(實現Serializable接口),其中定義一些屬性,并提供相應的get和set方法來解決上面的問題。
          Model 、 Domain Object以及DTO關系:
          1. 分析提煉Model是系統設計之起端
          2. 系統設計之初,三者基本統一
          3. 系統復雜化后,DTO可能是多個Model組合實現;

          GoF:(Gang of Four)---四人組

          Design Patterns: Elements of Reusable Object-Oriented Software(即后述《設計模式》一書),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。這幾位作者常被稱為“四人組(Gang of Four)”,而這本書也就被稱為“四人組(或 GoF)”書。

          在《設計模式》這本書的最大部分是一個目錄,該目錄列舉并描述了 23 種設計模式。另外,近來這一清單又增加了一些類別,最重要的是使涵蓋范圍擴展到更具體的問題類型。例如,Mark Grand 在 Patterns in Java: A Catalog of Reusable Design Patterns Illustrated with UML(即后述《模式 Java 版》一書)中增加了解決涉及諸如并發等問題的模式,而由 Deepak Alur、John Crupi 和 Dan Malks 合著的 Core J2EE Patterns: Best Practices and Design Strategies 一書中主要關注使用 Java 2 企業技術的多層應用程序上的模式。

          對軟件設計模式的研究造就了一本可能是面向對象設計方面最有影響的書籍:《設計模式》。

          DAO
              DAO是Data Access Object數據訪問接口,數據訪問:故名思義就是與數據庫打交道。夾在業務邏輯與數據庫資源中間。

              DAO的功能:

              1. DAO用來封裝Data Source的,就比如,Connection conn = DAOFacotry.createConnection()就可以把Driver,URL,username,passpword這一些放在DAO中。

              以后要更改數據庫的類型,比如要把MSSQL換成Oracle的話,只需要更改DAOFacory里面的getConnection()里面的Driver,URL,之類的。

              2. DAO也是把對數據庫的操作(比如最基本的CRUD操作)全部封裝在里面,比如說你要你要插入一個新的用戶,那么在DAO中我們只需要提供一個insertUser(User user)這一個方法就可以了。具體的操作是在DAO中實現的。

              那么對于要調用DAO的時候.我們只要知道insertUser(User)是用來插入一個新的用戶,而不需要知道是如何實現的。一般 DAO是與Abstract Factory模式一起來用的。

              Factory來建立數據庫和定位具體的DAO(比如說是UserDao、CustomerDao、),一般將getConnection設置為static,也可以把HibernateSessionFactory這一個公共類放在這一AbstractFactory類中去。

              public class DAOFactory
              {
              private static final
              SessionFactory sessionFacotory;
              // 定義一個TrheadLocal
              static Session currentSession()

              public UserDao getUserDAO()

              {
              return new UserDaoImpl(sesssion);
              }
              pulbic OtherDao getOtherDAO()

              {
              return new OtherDaoImpl(session);
              }
              ......
              }
              public interface UserDao
              {
              public insertUser(FormBean)

              public updateUser(FormBean);
              }
              然后就實現DAO的接口:

              (Struts的FormBean...VO來的..)

              public class UserDaoImpl
              implements UserDao
              {
              private Session session;
              public UserDaoImpl
              (Session session)

              {
              this.session = session;
              }...
              public insertUser(FormBean)

              {
              ..//..
              session.save(UserPO);
              ..//..
              return FormBean;
              }
              public FormBean
              updateUser(FormBean)

              {
              ..//..
              session.update(UserPO);
              ..//..
              return FormBean;
              }
              }
              最后定義你的PO:

              public class UserPO
              {
              String firstname,
              lastname, password..........
              }
              (T117)

          posted @ 2005-09-24 22:37 笨笨熊 閱讀(326) | 評論 (0)編輯 收藏

          2005年9月21日 #

          1.什么是Spring Framework?
              Spring Framework(簡稱Spring)是根據Rod Johnson著名的《Expert One-on-One J2EE Design and Development》而開發的J2EE應用程序框架。目前主要根據Rod Johnson和Juergen Hoeller而進行開發的,目前發布的最新版為1.1.4。    Spring是J2EE應用程序框架,不過,更嚴格地講它是針對Bean的生命周期進行管理的輕量級容器(Lightweight container),可以單獨利用Spring構筑應用程序,也可以和Struts,Webwork,Tapestry等眾多Web應用程序框架組合使用,并且可以與Swing等桌面應用程序API組合。所以Spring并不僅僅只能應用在J2EE中,也可以應用在桌面應用及小應用程序中。針對Spring開發的組件不需要任何外部庫。
          2.使用Spring有什么好處?
               (1)Spring能有效地組織你的中間層對象。
               (2)Spring能消除在許多工程中常見的對Singleton的過多使用。
               (3)Spring能消除各種各樣自定義格式的屬性文件的需要,使配置信息一元化。
               (4)Spring能夠幫助我們真正意義上實現針對接口編程。
               (5)在Spring應用中的大多數業務對象沒有依賴于Spring。
               (6)使用Spring構建的應用程序易于單元測試。
               (7)Spring支持JDBC和O/R Mapping產品(Hibernate)
               (8)MVC Web框架,提供一種清晰,無侵略性的MVC實現方式。
               (9)JNDI抽象層,便于改變實現細節,可以方便地在遠程服務和本地服務間切換。
              (10)簡化訪問數據庫時的例外處理。
              (11)Spring能使用AOP提供聲明性事務管理,可以不直接操作JTA也能夠對事務進行管理。
              (12)提供了JavaMail或其他郵件系統的支持。
          3.什么是輕量(Lightweight)級容器?
              Spring的開發者可以避免使用重量級容器開發EJB時的缺點:
              (1)帶有侵略性的API。(代碼依賴于EJB)
              (2)對容器的依賴。(代碼不能在EJB容器之外工作)
              (3)提供固定的一組機能,不具有配置能力。
              (4)不同的產品,部署過程不同,不易通用。
              (5)啟動時間長。
              針對以上問題,Spring采用了IoC使代碼對Spring的依賴減少,根據Web應用,小應用程序,桌面應用程的不同,對容器的依賴程度也不同。Spring將管理的Bean作為POJO(Plain Old Java Object)進行控制,通過AOP Interceptor能夠增加其它的功能。
              除了Spring以外的輕量級容器還有PicoContainer,(不是輕量級容器)對Bean的生命周期進行管理的還有Apache Avalon Project的Avalon等。

              總結:Spring的核心思想便是IoC和AOP,Spring本身是一個輕量級容器,和EJB容器不同,Spring的組件就是普通的Java Bean,這使得單元測試可以不再依賴容器,編寫更加容易。Spring負責管理所有的Java Bean組件,同樣支持聲明式的事務管理。我們只需要編寫好Java Bean組件,然后將它們“裝配”起來就可以了,組件的初始化和管理均由Spring完成,只需在配置文件中聲明即可。這種方式最大的優點是各組件的耦合極為松散,并且無需我們自己實現Singleton模式。 

          posted @ 2005-09-21 22:17 笨笨熊 閱讀(429) | 評論 (1)編輯 收藏

          2005年9月10日 #

          Got to have a lesson on J2EE conducted by Beijing University of Telecommunication and Post in the coming weeks. This will be a part of my post graduate study, and also the begining for me to get familiar with Java and J2EE structure.

          May be a hard task for me but I have to overcome it.

          posted @ 2005-09-10 12:47 笨笨熊 閱讀(277) | 評論 (0)編輯 收藏

          僅列出標題  
          主站蜘蛛池模板: 石楼县| 敦煌市| 罗山县| 石景山区| 贵南县| 灵山县| 汽车| 吉林省| 确山县| 简阳市| 崇礼县| 沧州市| 南皮县| 张北县| 本溪| 育儿| 贵南县| 岳阳市| 莒南县| 梅河口市| 文水县| 土默特右旗| 轮台县| 清水县| 杂多县| 襄城县| 武安市| 新兴县| 黑河市| 长阳| 乐安县| 扶风县| 安溪县| 华蓥市| 五寨县| 滨海县| 金溪县| 宝丰县| 合江县| 岳池县| 米易县|