`
futurehuhu
  • 浏览: 36266 次
  • 性别: Icon_minigender_1
  • 来自: shanghai
文章分类
社区版块
存档分类

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”

 
分享到:
评论

相关推荐

    spring入门上手小例子

    Spring框架是Java开发中最常用的轻量级框架之一,它的核心特性是依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect ...对于初学者来说,理解并熟练掌握这两个核心概念是深入学习Spring的第一步。

    Spring从入门到精通

    - **第一个使用Spring实现HelloWorld的例子:** - **编写存放HelloWorld的Java文件HelloWorld.java:** 定义一个简单的类,包含输出信息的方法。 - **配置Spring的config.xml:** 定义Bean及其依赖关系。 - **...

    Spring第一个HelloWorld

    在"Spring第一个HelloWorld"的例子中,我们将学习如何创建一个简单的Spring应用,通过DI来管理对象的生命周期和相互依赖关系。 首先,我们需要创建一个Java类,例如`HelloWorld`,这个类将包含一个方法,如`...

    Spring+in+action+中文版(第4版)

    - **2.2.1 Spring 的依赖注入方式**:介绍Spring中常用的依赖注入方式,如构造器注入、设置方法注入等。 - **2.2.2 依赖注入的优点**:讨论依赖注入模式的优点及其对代码可测试性和可维护性的影响。 #### 2.3 ...

    spring.net中文手册在线版

    14.5.2.第一个例子 14.5.3.Transaction特性的设置 14.5.4.通过AutoProxyCreator使用声明式事务 14.5.5.通过TransactionProxyFactoryObject使用声明式事务 14.5.6. 通过ProxyFactoryObject使用声明式事务 14.5.7. ...

    Spring.3.x企业应用开发实战(完整版).part2

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...

    Pro Spring 3

    - **实现方式**:Spring支持多种依赖注入的方式,包括构造器注入、setter方法注入和字段注入等。 - **应用场景**:依赖注入可以用于创建服务层、DAO层和其他组件,从而使得这些组件能够更加灵活地被管理和重用。 ##...

    腾科Java EE培训教材:框架技术之spring(学生版)1

    这部分会指导学生搭建Spring开发环境,创建第一个Spring应用,包括配置Spring容器、定义Bean以及通过XML或注解方式实现依赖注入。同时,通过编写测试案例验证Spring框架的功能。 2. Spring IOC 2.1. 关于IOC IOC...

    Spring in Action 3rd Editio

    在Spring框架中,可以通过构造器注入、setter方法注入或基于注解的方式实现依赖注入。 - **面向切面编程**:AOP允许开发者将横切关注点(如日志记录、安全控制等)从业务逻辑中分离出来,并通过声明式的方式进行管理...

    Spring3.x企业应用开发实战(完整版) part1

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...

    Spring in Action 3rd Edition Craig Walls

    3. **依赖注入(DI)**:解释了依赖注入的基本概念及其在Spring中的实现方式。这包括构造器注入、设值注入等不同类型的注入方式,并讨论了它们各自的适用场景。 4. **面向切面编程(AOP)**:介绍了Spring AOP的基础...

    Spring_3.x企业应用开发实战 目录

    #### 第1章 Spring概述 - **1.1 认识Spring** - **定义与作用**:Spring 是一个开源的轻量级 Java 开发框架,它主要的目标是解决企业级应用开发中的复杂性问题。Spring 提供了全面的基础架构支持,简化了开发过程...

    JAVA上百实例源码以及开源项目源代码

    EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件...

    DWR中文文档.pdf

    **1.2 第一个DWR程序:Hello World** ##### 1.2.1 将DWR放入你的工程 为了使用DWR,首先需要将其添加到项目中。这通常意味着下载DWR的最新版本,并将其包含在项目的lib目录下。确保所有的依赖库都已正确配置。 ##...

    iBatis-JPetStore-5.0

    iBatis是一个优秀的Java持久层框架,它将SQL语句与Java代码分离,提供了一种灵活的方式来处理数据库操作。在本教程中,我们将通过“iBatis-JPetStore-5.0”项目来深入理解iBatis的核心概念和功能。 **1. iBatis概述...

Global site tag (gtag.js) - Google Analytics