欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring(二)----IOC概述

程序员文章站 2022-07-12 13:02:50
...

一、什么是IOC的功能

IOC  Inverse of Control,控制反转,将对象的创建权反转给Spring

使用IOC可以解决程序耦合性高的问题

Spring(二)----IOC概述

管理资源:是指管理资源之间的依赖关系。框架帮我们注入。

二、IOC快速入门

步骤一:下载Spring框架的开发包

官网:http://spring.io/
下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring解压:(Spring目录结构)

  • docs -- API和开发规范
  • libs -- jar包和源码
  • schema -- 约束

Spring(二)----IOC概述

步骤二:创建JavaWEB项目,引入Spring的开发包

Spring(二)----IOC概述

core container是核心容器,任何功能都需要依赖这个容器,也就是这四个jar包。这四个包就组成了IOC。

导入四个核心包。日志包(Spring自己没有日志包,使用Apache的日志包),找spring-framework-3.0.2.RELEASE-dependencies。

Spring(二)----IOC概述

Spring(二)----IOC概述

Spring(二)----IOC概述

log4j: 为java准备的日志

那么,还需要一个log4j的配置文件。

Spring(二)----IOC概述

Spring(二)----IOC概述

info是日志的级别,stdout是标准输出

一个日志的例子:

public class Demo1 {

	// 创建日志对象
	private Logger log = Logger.getLogger(Demo1.class);

	@Test
	public void run1() {
		System.out.println("执行了...");
		log.info("执行了...");
	}
}
Spring(二)----IOC概述

为什么要用日志,而不用System.out.println()呢?

因为,我们可以在log4j.properties中控制打印的开关。

log4j.rootLogger=off, stdout,就表示,日志不要打印出来。

还有日志的级别,不同的级别控制了,不同情况下是否会输出这日志。

步骤三

创建对应的包结构,编写Java的类,要注意:以后使用Spring框架做开发,都需要来编写接口与实现类。
* UserService -- 接口
* UserServiceImpl -- 具体的实现类

步骤四

想把UserServiceImpl实现类的创建交给Spring框架来管理,需要创建Spring框架的配置文件,完成配置。
在src目录下创建applicationContext.xml的配置文件,名称是可以任意的,但是一般都会使用默认名称。

引入spring的约束,需要先找到具体的约束头信息。
spring-framework-3.2.0.RELEASE\docs\spring-framework-reference\html\xsd-config.html
具体的约束如下:

<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.xsd">
</beans>

完成UserService的配置

<!-- Spring的快速入门 -->
<bean id="userService" class="com.ken.demo1.UserServiceImpl"/>

步骤五

编写测试程序,采用Spring框架的工厂方式来获取到UserService接口的具体实现类!!

public void demo2(){
	// 使用Spring的工厂:
	ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
	// 通过工厂获得类:
	UserService userService = (UserService) applicationContext.getBean("userService");
	userService.sayHello();
}
源码下载