|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
第一??Spring程式 首先我??要先取得Spring的相晷?n案,Spring的?n案放在SourceForge上,咀址是:http://sourceforge.net/project/showfiles.php?group_id=73357 撰??此文?r,Spring最新的版本是1.1.1,有????下蒌版本,一??是spring-framework-1.1.1-with- dependencies.zip,一??是spring-framework-1.1.1.zip,with-dependencies的包括一些 ant、jakarta-commons、struts、velocity等等其它檫源Java?0傅南嘁??n案,假如您也需要呃些相晷?n案,可以下蒌呃?? 版本,假如您已??有呃些相晷?n案,?t只需要下蒌spring-framework-1.1.1.zip呃???n案。 下蒌zip?n案?K解?嚎s之後,在dist目??下就是使用Spring所需要的相晷?n案,假如下蒌的是with-dependencies版本,?t在lib目??中的是您可能??用到的相依?n案。在dist目??下,spring-core.jar是Spring的核心,??於撰?????蔚????C程式?碚f,使用呃??核心即可,假如日後需要使用到Spring其它的子框架增援,再?⑵渌?的jar?n案加入即可,例如spring-aop.jar、spring-webmvc.jar等等。您也可以直接使用spring.jar呃???n案,它包括了所有Spring增援的功能所需要的所有???e,而不再需要加入???e的jar?n案。 就我?? 的第一??Spring程式,只要spring-core.jar呃???n案即可,它唯一相依的其它?0??n案,是commons-logging.jar,您 可以在lib目??的jakarta-commons目??中找到,?⑦@?????n案的位置加入至CLASSPATH中,我??就可以檫始撰??第一??Spring程式。 ?碜???我??的第一??酵件(component),它只是一?????蔚氖avaBean,用?硐蛐碌氖褂谜叽蛘泻簦杭BR> package onlyfun.caterpillar; public class HelloBean { private String helloWord = "Hello!World!"; public void setHelloWord(String helloWord) { this.helloWord = helloWord; } public String getHelloWord() { return helloWord; } } HelloBean有盍韵的"Hello!World!"字串,我??也可以透咿setter?碓O定新的招呼遮,不咿我??不尤自撰??程式?碜鬟@些事,而是在酵?B?n案定柳,由Spring???槲???作韵定的?幼鳎?我??撰??bean.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="helloBean" class="onlyfun.caterpillar.HelloBean"> <property name="helloWord"><value>Hello!Justin!</value></property> </bean> </beans> bean.xml中定柳了JavaBean的?e名陪?碓搭??e,?嘶`中韵定了我??希望注入至JavaBean的字串值,bean.xml必??在您的CLASSPATH可以存取到的目??中,也杂是?F行的工作目??,在Web程式中可以是在classes目??下,我??呃??使用的是???C程式的方法, 所以?⒅?置於?F行的工作目??中(CLASSPATH都??韵定 . 吧),接著我??撰??一?????蔚??y??程式: package onlyfun.caterpillar; import java.io.*; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; public class SpringTest { public static void main(String[] args) throws IOException { InputStream is = new FileInputStream("bean.xml"); BeanFactory factory = new XmlBeanFactory(is); HelloBean hello = (HelloBean) factory.getBean("helloBean"); System.out.println(hello.getHelloWord()); } } 呃是?谋容^低?哟蔚慕嵌??硎褂糜pring的IoC容器功能,藉由BeanFactory?碜x取酵?B?n案?K完成依??的晷??注入,呃??的依??是什?N?指的是 HelloBean相依於String物件,透咿setter所保留的介面,我??使用setter injection?硗瓿蛇@??依??注入,而不是?⒄泻粽Z??死在HelloBean,BeanFactory是整??Spring的重?c所在,整??Spring的核心都??览著它,在呃??使用的是XmlBeanFactory,????坐取XML酵?B?n案,??然我??也可以使用properties?n案。 BeanFactory坐取Bean的酵?B韵定?K完成晷?S居罪之後,我??可以藉由getBean()方式?K指定Bean的?e名?砣〉???例,?砜纯???肴忒行之後的效果: 2004/10/21 上午 10:28:00 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 儋??: Loading XML bean definitions from resource for InputStream 2004/10/21 上午 10:28:00 org.springframework.beans.factory.support.AbstractBeanFactory getBean 儋??: Creating shared instance of singleton bean \\\'helloBean\\\' Hello!Justin! 假如今天您要想改??招呼遮,?t只要更改bean.xml就可以了,不用修改主要的程式,?谋容^一般的角度?砜矗?就意味著假如您想要改??一些物件之殓的依??晷?S,?t只要修改酵?B?n即可,而不用修改酵件的任何一行程式。 返回类别: 教程 上一教程: 将数据库操作封装到Javabean 下一教程: JDK5.0中注释(Annotation)的用法 您可以阅读与"第一?Spring程式 作者:林信良"相关的教程: · Spring+Struts+Hibernate入门例子Wiring Step By Step · POJO应用架构:SPRING与EJB 3.0的对比 · 利用Spring MVC轻松实现页面缓存 · Spring AOP之ThrowsAdvice · SPRING 编程入门十大问题解答 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |