Java 框架 03 — Spring_01(Spring概述、搭建快速入门、重要思想_IOC、BeanFactory&ApplicationContext)

文章目录

  • 一、Spring介绍
    • 1.1 三层架构中Spring的位置
    • 1.2 spring一站式框架
  • 二、Spring搭建
    • 2.1 导包
    • 2.2 创建一个对象
    • 2.3 书写配置文件,注册对象到容器
      • 2.3.1 导入约束的步骤
    • 2.4 代码测试
  • 三、Spring的重要思想
    • 3.1 IOC(Inverse of Control)
    • 3.2 DI(Dependency Injection)
  • 四、applicationContext&BeanFactory
    • 4.1 BeanFactory接口
    • 4.2 ApplicationContext
    • 4.3 结论

一、Spring介绍

  • Spring 框架的核心特性是可以用于开发任何 Java 应用程序,但是在 Java EE 平台上构建 web 应用程序是需要扩展的。 Spring 框架的目标是使 J2EE 开发变得更容易使用,通过启用基于 POJO 编程模型来促进良好的编程实践。

1.1 三层架构中Spring的位置

  • Spring负责管理项目中的所有对象
  • 可以将Spring看做是项目中对象的管家

Java 框架 03 — Spring_01(Spring概述、搭建快速入门、重要思想_IOC、BeanFactory&ApplicationContext)_第1张图片

1.2 spring一站式框架

  • spring框架属于容器性质,容器中装什么对象就有什么功能,不仅不排斥其他框架,还能帮助其他框架管理对象。
  • aop支持
  • ioc思想
  • spring jdbc
  • junit测试支持

二、Spring搭建

2.1 导包

  • 框架模块结构

Java 框架 03 — Spring_01(Spring概述、搭建快速入门、重要思想_IOC、BeanFactory&ApplicationContext)_第2张图片

  • 要导的包(4+2)

    • 4个包(spring解压后libs)
      1. spring-beans-4.3.9.RELEASE.jar
      2. spring-context-4.3.9.RELEASE.jar
      3. spring-core-4.3.9.RELEASE.jar
      4. spring-expression-4.3.9.RELEASE.jar
    • 2个包日志包(整合包中)
      1. com.springsource.org.apache.commons.logging-1.1.1.jar
      2. com.springsource.org.apache.log4j-1.2.15.jar

2.2 创建一个对象

package a_hello;

public class User {
	private String name;
	private Integer age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	@Override
	public String toString() {
		return "User [name=" + name + ", age=" + age + "]";
	}
	
}

2.3 书写配置文件,注册对象到容器

  • 位置任意(建议放到src下)
  • 配置文件名任意(建议applicationContext.xml

2.3.1 导入约束的步骤

  1. 安装sts插件

    Java 框架 03 — Spring_01(Spring概述、搭建快速入门、重要思想_IOC、BeanFactory&ApplicationContext)_第3张图片
    Java 框架 03 — Spring_01(Spring概述、搭建快速入门、重要思想_IOC、BeanFactory&ApplicationContext)_第4张图片
    Java 框架 03 — Spring_01(Spring概述、搭建快速入门、重要思想_IOC、BeanFactory&ApplicationContext)_第5张图片

  2. Window -> Preferences -> XML Catalog -> add

Java 框架 03 — Spring_01(Spring概述、搭建快速入门、重要思想_IOC、BeanFactory&ApplicationContext)_第6张图片

  1. 配置文件

    
    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns="http://www.springframework.org/schema/beans"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans 
    			http://www.springframework.org/schema/beans/spring-beans-4.3.xsd ">
    	
    	
    	<bean name="user" class="a_hello.User">bean>
    beans>
    

2.4 代码测试

  1. 步骤
    1. 开启spring容器 - 加载配置文件。
      • ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    2. 索要对象
      • User user = (User) ac.getBean("user");
package a_hello;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test01 {
	@Test
	public void test01() {
		// 1.开启spring容器 - 加载配置文件
		ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
		
		// 2.索要对象
		User user = (User) ac.getBean("user");
		
		System.out.println(user);
	}
}

三、Spring的重要思想

3.1 IOC(Inverse of Control)

  • 反转控制:对象的创建以及依赖关系的注入交给Spring完成

3.2 DI(Dependency Injection)

  • 依赖关系注入。IOC思想的实现,需要DI做支持
    • 注入方式
      1. set方法织入
      2. 构造方法注入
      3. p命名空间 - 添加命名空间
      4. SpEL注入
    • 注入类型
      1. 值类型注入
      2. 引用类型注入

四、applicationContext&BeanFactory

4.1 BeanFactory接口

  1. spring原始接口。针对原始接口的实现类功能较为单一

  2. BeanFactory接口实现类的容器.特点是每次在获得对象时才会创建对象

Java 框架 03 — Spring_01(Spring概述、搭建快速入门、重要思想_IOC、BeanFactory&ApplicationContext)_第7张图片

4.2 ApplicationContext

  1. 每次容器启动时就会创建容器中配置的所有对象.并提供更多功能
  2. 从类路径下加载配置文件:ClassPathXmlApplicationContext
  3. 从硬盘绝对路径下加载配置文件:FileSystemXmlApplicationContext("d:/xxx/yyy/xxx")

4.3 结论

  • web开发中,使用applicationContext. 在资源匮乏的环境可以使用BeanFactory

你可能感兴趣的:(Spring)