spring的核心便是IOC(Inversion of Control),控制反转,对象由spring容器来管理。曾经我们需要一个对象,需要自己去new一个,现在则是被动的接收,我们提出一个需求,spring容器则会给我们提供。
容器源信息的配置
对spring容器的配置主要有三种方式:
- 利用xml进行配置,推荐使用的
- 利用注解进行配置
- java代码进行配置
下面是xml配置文件的基本结构
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="..." class="...">
</bean>
</beans>
在配置文件中,我们可以配置多个java bean,每一个bean可以理解为一个java对象,其中,id用来唯一标记一个对象,class则是这个对象的类名,注意这里的类名应该是全类名,要写下包路径。
实例化一个容器
ApplicationContext context = new ClassPathXmlApplicationContext("applicationcontext.xml");
从容器获得对象
利用T getBean(String name, Class requiredType)可以获取java bean对象
现在在容器配置文件中已注册如下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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean name="test" class="com.spring.Test">
</bean>
</beans>
我们要在java代码中获取这个bean
// 先初始化容器
ApplicationContext context = new ClassPathXmlApplicationContext("applicationcontext.xml");
// 获取bean
Test test = context.getBean("test", Test.class);
拿到这个对象后,我们就可以利用这个对象进行操作了。