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框架是Java开发中最常用的轻量级框架之一,它的核心特性是依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect ...对于初学者来说,理解并熟练掌握这两个核心概念是深入学习Spring的第一步。
- **第一个使用Spring实现HelloWorld的例子:** - **编写存放HelloWorld的Java文件HelloWorld.java:** 定义一个简单的类,包含输出信息的方法。 - **配置Spring的config.xml:** 定义Bean及其依赖关系。 - **...
在"Spring第一个HelloWorld"的例子中,我们将学习如何创建一个简单的Spring应用,通过DI来管理对象的生命周期和相互依赖关系。 首先,我们需要创建一个Java类,例如`HelloWorld`,这个类将包含一个方法,如`...
- **2.2.1 Spring 的依赖注入方式**:介绍Spring中常用的依赖注入方式,如构造器注入、设置方法注入等。 - **2.2.2 依赖注入的优点**:讨论依赖注入模式的优点及其对代码可测试性和可维护性的影响。 #### 2.3 ...
14.5.2.第一个例子 14.5.3.Transaction特性的设置 14.5.4.通过AutoProxyCreator使用声明式事务 14.5.5.通过TransactionProxyFactoryObject使用声明式事务 14.5.6. 通过ProxyFactoryObject使用声明式事务 14.5.7. ...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...
- **实现方式**:Spring支持多种依赖注入的方式,包括构造器注入、setter方法注入和字段注入等。 - **应用场景**:依赖注入可以用于创建服务层、DAO层和其他组件,从而使得这些组件能够更加灵活地被管理和重用。 ##...
这部分会指导学生搭建Spring开发环境,创建第一个Spring应用,包括配置Spring容器、定义Bean以及通过XML或注解方式实现依赖注入。同时,通过编写测试案例验证Spring框架的功能。 2. Spring IOC 2.1. 关于IOC IOC...
在Spring框架中,可以通过构造器注入、setter方法注入或基于注解的方式实现依赖注入。 - **面向切面编程**:AOP允许开发者将横切关注点(如日志记录、安全控制等)从业务逻辑中分离出来,并通过声明式的方式进行管理...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...
3. **依赖注入(DI)**:解释了依赖注入的基本概念及其在Spring中的实现方式。这包括构造器注入、设值注入等不同类型的注入方式,并讨论了它们各自的适用场景。 4. **面向切面编程(AOP)**:介绍了Spring AOP的基础...
#### 第1章 Spring概述 - **1.1 认识Spring** - **定义与作用**:Spring 是一个开源的轻量级 Java 开发框架,它主要的目标是解决企业级应用开发中的复杂性问题。Spring 提供了全面的基础架构支持,简化了开发过程...
EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件...
**1.2 第一个DWR程序:Hello World** ##### 1.2.1 将DWR放入你的工程 为了使用DWR,首先需要将其添加到项目中。这通常意味着下载DWR的最新版本,并将其包含在项目的lib目录下。确保所有的依赖库都已正确配置。 ##...
iBatis是一个优秀的Java持久层框架,它将SQL语句与Java代码分离,提供了一种灵活的方式来处理数据库操作。在本教程中,我们将通过“iBatis-JPetStore-5.0”项目来深入理解iBatis的核心概念和功能。 **1. iBatis概述...