freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

項目實踐精解:基于struts-spring-hibernate的java應(yīng)用開發(fā)-閱讀頁

2025-07-13 22:29本頁面
  

【正文】 右鍵,選擇open connection,建立數(shù)據(jù)庫連接,如圖328所示。 圖327 建立數(shù)據(jù)庫連接圖329(3)Eclipse/MyEclipse與Tomcat集成配置好myeclipse與tomcat的連接,在window→Preferences做如下設(shè)定,如圖330所示。 Tomcat的配置連接成功后,我們可以在Eclipse上開啟tomcat服務(wù),如圖331所示。 啟動Tomcat服務(wù)至此,我們完成了Eclipse/MyEclipse與MySQL、Tomcat的集成。Spring框架是一個分層架構(gòu),由7個定義好的模塊組成。組成Spring框架的每個模塊(或組件)都可以單獨(dú)存在,或者與其他一個或多個模塊聯(lián)合實現(xiàn)。核心容器:核心容器提供Spring框架的基本功能。BeanFactory使用控制反轉(zhuǎn)(IoC)模式將應(yīng)用程序的配置和依賴性規(guī)范與實際的應(yīng)用程序代碼分開。Spring上下文包括企業(yè)服務(wù),例如,JNDI、EJB、電子郵件、國際化、校驗和調(diào)度功能。所以,可以很容易地使Spring框架管理的任何對象支持AOP。通過使用Spring AOP,不用依賴EJB組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。異常層次結(jié)構(gòu)簡化了錯誤處理,并且極大地降低了需要編寫的異常代碼數(shù)量。Spring ORM:Spring框架插入了若干個Object/Relation Mapping框架,從而提供了ORM的對象關(guān)系映射工具,其中包括JDO、Hibernate和iBatis SQL Map。Spring Web模塊:Web上下文模塊建立在應(yīng)用程序上下文模塊之上,為基于Web的應(yīng)用程序提供了上下文。Web模塊還簡化了處理多部分請求,以及將請求參數(shù)綁定到域?qū)ο蟮墓ぷ?。通過策略接口,MVC框架變?yōu)楦叨瓤膳渲玫?,MVC容納了大量視圖技術(shù),其中包括JSP、Velocity、Tiles、iText和POI。Spring的核心要點(diǎn)是支持不綁定到特定J2EE服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)訪問對象。我們首先介紹Spring IoC這個最核心最重要的概念。 IOC原理IoC,直觀地講,就是容器控制程序之間的關(guān)系,而非傳統(tǒng)實現(xiàn)中,由程序代碼直接操控??刂茩?quán)由應(yīng)用代碼中轉(zhuǎn)到了外部容器,控制權(quán)的轉(zhuǎn)移是所謂反轉(zhuǎn)。從名字上理解,所謂依賴注入,即組件之間的依賴關(guān)系由容器在運(yùn)行期決定,形象地說,即由容器動態(tài)地將某種依賴關(guān)系注入到組件之中。比如,一個女孩希望找到合適的男朋友,如圖62所示,可以有3種方式,即青梅竹馬、親友介紹、父母包辦。第1種方式是青梅竹馬,如圖63所示。public class Girl { Boy boy = new Boy()。 }}通過代碼表示如下。 void kiss(){public class Girl { // kiss boy ()。 }}哪一種為控制反轉(zhuǎn)IoC呢?雖然在現(xiàn)實生活中我們都希望青梅竹馬,但在Spring世界里,選擇的卻是父母包辦,它就是控制反轉(zhuǎn),而這里具有控制力的父母,就是Spring所謂的容器概念。第1種是通過接口注射,這種方式要求我們的類必須實現(xiàn)容器給定的一個接口,然后容器會利用這個接口給我們這個類注射它所依賴的類。 Kissable kissable。 public void service(ServiceManager mgr) { public void kissYourKissable() {container configuration … /configuration ponent name=girl class=Girl //container第2種是通過setter方法注射,這種方式也是Spring推薦的方式。 private Kissable kissable。 public void setKissable(Kissable kissable) { public void kissYourKissable() {beans bean id=girl class=Girl ref bean=boy/ /bean/beans 第3種是通過構(gòu)造方法注射類,這種方式Spring同樣給予了實現(xiàn),它和通過setter方式一樣,都在類里無任何侵入性,但是,不是沒有侵入性,只是把侵入性轉(zhuǎn)移了,顯然第1種方式要求實現(xiàn)特定的接口,侵入性非常強(qiáng),不方便以后移植。 private Kissable kissable。 public Girl(Kissable kissable) { public void kissYourKissable() {PicoContainer container = new DefaultPicoContainer()。()。()。這個包通常不是由用戶直接使用,而是由服務(wù)器將其用作其他多數(shù)功能的底層中介。BeanFactory也可以管理對象之間的關(guān)系。單態(tài)模型:它提供了具有特定名稱的對象的共享實例,可以在查詢時對其進(jìn)行檢索。原型模型:它確保每次檢索都會創(chuàng)建單獨(dú)的對象。bean工廠的概念是Spring作為IoC容器的基礎(chǔ),IoC將處理事情的責(zé)任從應(yīng)用程序代碼轉(zhuǎn)移到框架。1.BeanFactoryBeanFactory實際上是實例化,配置和管理眾多bean的容器。BeanFactory使用的配置數(shù)據(jù)可以反映這些依賴關(guān)系(一些依賴可能不像配置數(shù)據(jù)一樣可見,而是在運(yùn)行期作為bean之間程序交互的函數(shù))。. (這里提醒一下,ApplicationContext是BeanFactory的子類,所以大多數(shù)的用戶更喜歡使用ApplicationContext的XML形式)??梢允褂孟旅娴拇a實例化BeanFactory。XmlBeanFactory factory = new XmlBeanFactory(is)。ClassPathResource res = new ClassPathResource()。實例化BeanFactory還可以采用如下代碼。 new String[] {, applicationContextpart2. xml})。很多情況下,用戶代碼不需要實例化BeanFactory,因為Spring框架代碼會做這件事。這個聲明過程在這里描述。一個最基本的BeanFactory配置由一個或多個它所管理的Bean定義組成。?xml version= encoding=UTF8?!DOCTYPE beans PUBLIC //SPRING//DTD BEAN//EN . org/dtd/ ... bean id=... class=... /bean ...2.BeanDefinition一個XmlBeanFactory中的Bean定義包括的內(nèi)容如下。但是,如果一個bean使用一個靜態(tài)工廠方法所創(chuàng)建,而不是被普通的構(gòu)造函數(shù)創(chuàng)建,那么這實際上就是工廠類的classname。構(gòu)造函數(shù)的參數(shù)和新創(chuàng)建bean需要的屬性:舉一個例子,一個管理連接池的bean使用的連接數(shù)目(即可以指定為一個屬性,也可以作為一個構(gòu)造函數(shù)參數(shù))或者池的大小限制。上面列出的概念直接轉(zhuǎn)化為組成bean定義的一組元素。表61 性說然而,絕大多數(shù)的用戶代碼不需要與BeanDefination直接接觸。在絕大多數(shù)情況下,BeanFactory直接調(diào)用bean的構(gòu)造函數(shù)來“new”一個bean(相當(dāng)于調(diào)用new的Java代碼),class屬性指定了需要創(chuàng)建的bean的類。1)通過構(gòu)造函數(shù)創(chuàng)建bean當(dāng)使用構(gòu)造函數(shù)創(chuàng)建bean時,所有普通的類都可以被Spring使用,并且和Spring兼容。僅僅指定bean的類就足夠了。另外,BeanFactory并不局限于管理真正的JavaBean,它也能管理任何你想讓它管理的類。舉例來說,如果你需要使用一個遺留下來的完全沒有遵守JavaBean規(guī)范的連接池,不要擔(dān)心,Spring同樣能夠管理它。bean id=exampleBean class=/ 至于為構(gòu)造函數(shù)提供(可選的)參數(shù),以及對象實例創(chuàng)建后設(shè)置實例屬性,將會在后面敘述。Spring調(diào)用這個方法(包含一組可選的參數(shù))并返回一個有效的對象,之后這個對象就完全和構(gòu)造方法創(chuàng)建的對象一樣。下面是一個bean定義的例子,聲明這個bean要通過factorymethod指定的方法創(chuàng)建。在這個例子中,createInstance 必須是static方法。 class=3)通過實例工廠方法創(chuàng)建bean使用一個實例工廠方法(非靜態(tài)的)創(chuàng)建bean和使用靜態(tài)工廠方法非常類似,調(diào)用一個已存在的bean(這個bean應(yīng)該是工廠類型)的工廠方法來創(chuàng)建新的bean。而工廠方法本身仍然要通過factorymethod屬性設(shè)置。! The factory bean, which contains a method called createInstance bean id=myFactoryBean .../bean! The bean to be created via the factory bean bean id=exampleBean factorymethod=createInstance/雖然我們要在后面討論設(shè)置bean的屬性,但是,這個方法意味著工廠bean本身能夠被容器通過依賴注射來管理和配置。這些id在管理bean的BeanFactory或ApplicationContext中必須是惟一的。在一個XmlBeanFactory中(包括ApplicationContext的形式),你可以用id或者name屬性來指定bean的id(s),并且在這兩個或其中一個屬性中至少指定一個id。正因如此,用id屬性指定bean的id是一個比較好的方式。通常這并不是真正限制你,但是,如果你有必要使用這些字符(在ID中的非法字符),或者你想給bean增加其他的別名,那么你可以通過name屬性指定一個或多個id(用逗號或分號分隔)。如果一個bean是singleton形態(tài)的,那么就只有一個共享的實例存在,所有和這個bean定義的id符合的bean請求都會返回這個惟一的、特定的實例。這對于每個user需要一個獨(dú)立的user對象的情況是非常理想的。要記住把部署模式變?yōu)閚onsingletion(prototype)后,每一次對這個bean的請求都會導(dǎo)致一個新創(chuàng)建的bean,而這可能并不是你真正想要的。在下面這個例子中,兩個bean一個被定義為singleton,而另一個被定義為nonsingleton(prototype)。bean id=exampleBean class= singleton=true/注意,當(dāng)部署一個bean為prototype模式,這個bean的生命周期就會有稍許改變。當(dāng)說起nonsingleton/prototype bean的時候,你可以把Spring的角色想像成“new”操作符的替代品。beans包提供了以編程的方式管理和操控bean的基本功能,而context包增加了ApplicationContext,它以一種更加面向框架的方式增強(qiáng)了BeanFactory的功能。當(dāng)然,這種情況下還可以以編程的方式創(chuàng)建一個ApplicationContext。它是由BeanFactory接口集成而來,提供BeanFactory所有的功能。因為ApplicationContext包括了BeanFactory所有的功能,所以通常建議先于BeanFactory使用,除了有限的一些場合,比如在一個Applet中,內(nèi)存的消耗是關(guān)鍵的,每千字節(jié)都很重要。(1)使用MessageSourceApplicationContext接口繼承MessageSource接口,所以提供了messaging功能(i18n或者國際化)。讓我們很快瀏覽一下這里定義的方法。如果對于指定的locale沒有找到信息,則使用默認(rèn)的信息。String getMessage (String code、Object[] args、Locale loc):本質(zhì)上和上一個方法是一樣的,除了一點(diǎn)區(qū)別:沒有默認(rèn)值可以指定;如果信息找不到,就會拋出一個NoSuchMessage Exception。當(dāng)ApplicationContext被加載的時候,它會自動查找在context中定義的MessageSource bean,這個bean必須叫做message source。如果沒有找到message source,ApplicationContext將會嘗試查它的父親是否包含這個名字的bean。如果它最終沒有找到任何信息源,一個空的StaticMessageSource將會被實例化,使它能夠接受上述方法的調(diào)用。它們都實現(xiàn)了NestingMessageSource,以便能夠嵌套地解析信息。Resource BundleMessageSource用得更多一些,我們將提供它的一個例子。 bean id=messageSource class= MessageSource list valueexceptions/value /list /bean/beans 這段配置假定你在classpath有3個resource bundle,分別叫做fformat、exceptions和windows。(2)事件傳遞ApplicationContext中的事件處理是通過ApplicationEvent類和ApplicationListener接口來提供的。實質(zhì)上,這是標(biāo)準(zhǔn)的Observer設(shè)計模式。表62 件
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1