Spring是一个基于IOC和AOP的结构J2EE系统的框架
IOC 反转控制 是Spring的基础,Inversion Of Control 简单说就是创建对象由以前的程序自己new 构造方法来调用,变成了交由Spring创建对象
DI 依赖注入 Dependency Inject. 简单地说就是拿到的对象的属性,已经被注入好相关值了,直接使用即可
- 在idea中创建spring项目
- 新建项目,路径; 项目创建完毕,Spring的jars都已经准备好了
- 准备Category类,用来演示控制反转和依赖注入
package com.jd.java;
public class Category {
private int id;
private String name;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setId(int id){
this.id = id;
}
public int getId(){
return id;
}
}
在不使用框架之前我们平时调用方法分三步,运行结果成功输出“Spring”
public class testSpring{
public static void main(String[] args) {
//1. 创建一个category 的实例对象
Category category = new Category();
//2. 设置实例对象的name属性
category.setName("String");
//3. 调用getName()方法
System.out.println(category.getName())
}
}
- 接下来我们使用spring, 在/src目录下 新建Spring的配置文件spring-config.xml,spring-config.xml是Spring的核心配置文件,通过关键字category即可获取Category对象,该对象获取的时候,即被注入了字符串“Spring”到name属性中
<?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.xsd">
<bean id="category" class="com.jd.java.Category">
<property name="name" value="Spring"></property>
</bean>
</beans>
这时候我们就配置好了Category Bean的信息,我们再调用getName()方法的时候就不向之前一样了,也需要3个步骤。
-1. 创建一个Spring的IOC容器对象
-2. 从IOC容器中获取Bean实例
-3. 调用getName()方法
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main(String[] args) {
// 创建一个Spring的IOC容器,Spring可以帮助我们创建和管理对象
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
// 从容器中获取Bean实例
// Bean的英文是“豆子”,容器就是用来装“豆子”的
Category ca = (Category)context.getBean("category");
System.out.println(ca.getName());
}
}
- 运行结果如下:
网友评论