2024年3月24日发(作者:)

Spring 实例入门

本文结合实例理解解容器,DI,IOC,耦合,解耦等Spring所涉及的概念,同时了解Spring

的最基本也是最核心的使用方法。

1. Spring容器

Spring容器负责对象的实例化,对象生命周期的管理,被Spring管理的对象称之为Bean。

例如有Soldier类需要交由Spring容器管理,我们先编写类

package ;

public class Soldier {

}

private String name;

public String getName() {

}

public void setName(String name) {

}

= name;

return name;

在Spring配置文件中添加如下配置

初始化Spring容器

public class Test {

public static void main(String[] args) {

ApplicationContext context = new

ClassPathXmlApplicationContext("");

}

}

从Spring容器中取得对象实例

Soldier s1 = (Soldier) n("s1");

Spring默认使用单例的方式创建对象。可以通过修改的配置改变成其它创建方式。这

个属性为Scope,称之为作用域或生命周期,它的值为singleton(单例,默认值),prototype

(每次产生一个新的实例)等。

scope="prototype"

>

2. 注入方式有setter注入,构造注入方式,接口注入(不需掌握)。建议多使用Setter注入

方式。

Setter注入:

Soldier类中有一个属性name,如何在创建Soldier的时候使name的值变为”RANBO”?

配置如下:

这样创建的Soldier对象的name属性就有值了,测试代码:

public static void main(String[] args) {

ApplicationContext context = new

ClassPathXmlApplicationContext("");

Soldier s1 = (Soldier) n("s1");

n(e());

}

构造注入:

我们先修改下Soldier类,给它添加一个构造方法:

package ;

public class Soldier {

private String name;

public Soldier(String name) {

= name;

}

public String getName() {

}

return name;

}

配置如下:

测试结果同上。

3. 依赖

当A对象使用了B对象的方法,A对B产生依赖,称之为A依赖B。下面的例子中Soldier

类依赖HandGun类。

package ;

/**

* 士兵类

*/

public class Soldier {

}

/**

* 打仗

*/

public void fight(){

HandGun handGun = new HandGun();

emy();

}