Spring简介
Spring是一个容器,可以管理所有组件的框架,由以下部分组成。
Spring就是以下jar包组成的集合:
-
TestSpring:单元测试模块。
-
Core Container(IOC):核心容器模块。
-
AOP+Aspects:面向切面编程。
-
数据访问模块:访问数据库的模块。
-
web模块:用于开发web服务器的模块。
想要更多了解Spring架构,点击这里
IOC与DI简介
IOC
全名:Inversion of Control(控制反转)
首先,资源获取的方式有2种:
- 主动式:我们主动new一个对象。
- 被动式:资源不是我们自己主动创建,而是交给一个容器来创建设置的。
容器:管理所有组件(有功能的类),容器可以探查出一个组件所需要的另一个组件,并且创建相关对象。
DI
全名:Dependency Injection(依赖注入)
容器知道哪个组件运行的时候需要依赖另外的组件,通过反射的形式创建依赖,叫依赖注入。
容器初体验(hello world)
导包
将所需依赖导入项目,也就是上面的jar包。
写配置注册容器
在src目录下创建ioc.xml,在这个xml中需要配置bean,也就是需要注入的类。
<?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对象,Spring自动创建该对象-->
<!--class:注册组件的全类名-->
<!--id:该组件的唯一标识-->
<bean id="person1" class="helloWorld.Person">
<property name="name" value="张三"></property>
<property name="age" value="18"></property>
</bean>
</beans>
并且创建Person类
public class Person {
private String name;
private int age;
}
从容器中获取对象
public class Main {
public static void main(String[] args) {
//当前应用的xml配置文件在类路径下
ApplicationContext ioc=new ClassPathXmlApplicationContext("ioc.xml");
//获取当前容器中id名为person1的对象
Person p=(Person) ioc.getBean("person1");
System.out.println(p);
}
}
容器注意事项
- 容器中的对象在容器创建完成后就已经创建好了。
- 组件在ioc容器中是单实例组件。
- 容器在创建对象,给属性赋值的时候,是调用setter方法进行赋值。