·您的位置: 首页 » 资源教程 » 编程开发 » JAVA、JSP » 第一?Spring程式 作者:林信良

第一?Spring程式 作者:林信良

类别: JAVA教程  评论数:0 总得分:0

第一??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即可,而不用修改酵件的任何一行程式。




 




-= 资 源 教 程 =-
文 章 搜 索
关键词:
类型:
范围:

纯粹空间 softpure.com
Copyright © 2006-2012 暖阳制作 版权所有
承接程序设计 网页设计
QQ: 15242663 (隐身在线 拒绝闲聊)  Email: faisun@sina.com

 纯粹空间 - 韩国酷站|酷站欣赏|教程大全|资源下载|免费博客|美女壁纸|设计素材|技术论坛  

百度搜索 谷歌搜索 Alexa搜索 | 粤ICP备19116064号-1