Spring IOC创建对象

1、简介

Spring 是一个非常活跃的开源框架,它是一个基于core来架构多层Java EE系统的框架,它的主要目地是简化企业开发
Spring以一种非侵入式的方式来管理你的代码,Spring提倡”最少侵入”,这也就意味着你可以适当的时候安装或卸载Spring

Spring的控制反转(IOC):把对象的创建、初始化/销毁等工作交给spring容器来做,由spring容器控制对象的生命周期。
意义:对象的创建交给Spring容器来做,对于程序员来说,不用操心该对象是怎么样创建出来的。

2、创建对象

2.1、一般方式创建对象

1、创建一个HelloWorld类
2、把java类编译成class文件
3、把class文件加载到jvm中
4、运行,调用方法

通过new的方式创建对象并调用对象的方法

2.2、spring方式创建对象

1、创建一个HelloWorld类
2、以配置文件的形式吧HelloWorld类放入spring容器中
3、启动spring容器
4、从spring容器中把对象提取出来
5、对象调用方法

首先pom.xml文件中引入以下依赖:

1
2
3
4
5
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.11.RELEASE</version>
</dependency>

创建HelloWorld类,里面定义一个hello()方法,打印出hello

编写applicationContext.xml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!--
把一个类放入到spring容器中,该类为一个bean
beans说明可以配置多个类
-->
<!--
bean代表helloWorld
id 标示符 书写规范:类的第一个字母变成小写
class 表示类的全名
-->
<bean id="helloWorld" class="com.yc.spring.ioc.HelloWorld"></bean>

<!-- 别名alias与id一样唯一标识一个bean -->
<alias name="helloWorld" alias="helloworldAliasName"/>
</beans>

测试类编写,并成功输出结果

1
2
3
4
5
6
7
8
9
10
@SuppressWarnings("resource")
@Test
public void testHelloWorld(){

// 启动了spring容器,创建对象
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
// 获取helloWorld bean 实例
HelloWorld instance = (HelloWorld) applicationContext.getBean("helloWorld");
instance.hello();
}

ApplicationContext主要结构:
ApplicationContext:容器顶级接口
ConfigurableApplicationContext:可配置spring容器
ClassPathXmlApplicationContext:从claspath环境中加载配置文件
FileSystemXmlApplicationContext:从文件系统中加载配置文件
WebApplicationContext:web spring容器