快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

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


第一??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 编程入门十大问题解答
    微笑服务 优质保证 索取样品