Spring入门第一个例子 用构造注入方式实现

3.3  将HelloWorld实例改为构造注入方式实现

Spring支持Set注入(setter injection)和构造注入(constructor injection),但更推荐使用Set注入。上面讲过,第2章的第一个实现HelloWorld的实例就是采用Set注入方式实现的,读者可以参看第 2章的实例。下面笔者把这个实例改为采用构造注入方式实现。改写思路是:首先修改类HelloWorld,在该类中增加一个构造方法,然后修改 Spring的配置文档config.xml,最后编写测试程序TestHelloWorld.java。

3.3.1  修改HelloWorld.java

修改com.gc.action包下的HelloWorld.java,增加一个构造方法,并把要注入的字符串msg作为参数,代码如下,在HelloWorld类中增加了一个构造方法public HelloWorld (String msg)。

//*******HelloWorld.java**************

package com.gc.action;

public class HelloWorld {

         //该变量用来存储字符串

         public String msg = null;

         //增加了一个构造方法

         public HelloWorld (String msg) {

                   this.msg = msg;

         }       

         //设定变量msg的set方法

         public void setMsg(String msg) {

                   this.msg = msg;

         }

         //获取变量msg的get方法

         public String getMsg() {

                   return this.msg;

         }

}

3.3.2  修改config.xml

在Spring中,利用Set注入和构造注入时,在XML配置文档中使用的语法是不一样的。修改配置文件config.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,通过构造函数进行注入-->

  <bean id="HelloWorld" class="com.gc.action.HelloWorld">

      <!--通过构造函数进行注入-->

      <constructor-arg index="0">

          <value>HelloWorld</value>

      </constructor-arg>

  </bean>

</beans>

代码说明:

  ●       constructor-arg,用来表示是通过构造方式来注入参数的。

  ●       index="0",表示是构造方法中的第一个参数,如果只有一个参数,则可以不用设置这个属性值。

3.3.3  编写测试程序TestHelloWorld.java

修改TestHelloWorld.java,代码如下:

//******* TestHelloWorld.java**************

package com.gc.test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.FileSystemXmlApplicationContext;

import com.gc.action.HelloWorld;

public class TestHelloWorld {

         public static void main(String[ ] args) {

              //通过ApplicationContext来获取Spring的配置文件

                   ApplicationContext actx=new FileSystemXmlApplicationContext("config.xml");

                   HelloWorld HelloWorld = (HelloWorld) actx.getBean("HelloWorld");

                   System.out.println(HelloWorld.getMsg());

    }

}

3.3.4  运行测试程序并查看输出结果

在Eclipse中运行Java程序的步骤如下:

(1)确保当前在Eclipse中编辑的是TestHelloWorld.java文件。

(2)选择Run→Run As→Java Application命令,Eclipse即可运行TestHelloWorld.java。

(3)输出结果为“HelloWorld”,如图3.1所示。

图3.1  输出结果为“HelloWorld”

上一页    首页    下一页
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值