Spring IoC
程序员文章站
2022-07-12 13:58:58
...
HelloWorld 步骤
1、搭建Spring 环境
2、创建一个类 :给予了一个私有属性,并提供setter() 方法
3、将这个类注入到Spring 容器中
4、通知Spring ,我需要什么 : 通过property 属性来告知我们需要的内容 (property.name)
5、Spring 依赖注入给“我”相应的内容 :property.value
<!--
Spring 是面向Bean 编程的,所有需要他管控的内容,对Spring 来说都是bean
id: bean的唯一标识
name : bean的标识 name 可以重复 而id 不能重复
class: 需要我们管理的内容【全限定名】 :包名 + 类名
-->
<bean id="api" class="com.kgc.helloWorld.B">
<!--
property - 管理注入属性
name - 类里需要Spring 依赖注入的属性名称
value - 属性对应的待注入的值
-->
<property name="message" value="Hello KGC Spring2!" ></property>
</bean>
注意:1、待注入的属性必须给与一个Setter() 方法
2、在使用Spring 之前,需要对IoC 容器进行一个初始化
3、不能再自己创建对象实例,要交给Spring 来管理
HelloWorld总结
IoC 容器
1、Spring 中 IoC 容器负责容纳管理 Bean
2、IoC-》 控制反转
DI-》 依赖注入
以上两者都具备才可称为 IoC 容器
3、IoC 容器可以帮我们管理Bean 的全生命周期
IoC 容器 实例化
三种方式:
注: 1、多次创建会产生多个IoC 容器
2、在IoC 初始化时,会默认帮助创建对象实例
>Resource 方式
// Resource
// FileSystemResource 默认从工程目录下读取文件
Resource rs = new FileSystemResource("src/applicationContext.xml");
BeanFactory atc = new XmlBeanFactory(rs);
>ClassPathResource 方式
// ClassPathResource
// 根目录下开始读取
ClassPathResource resource = new ClassPathResource("applicationContext.xml");
BeanFactory atc = new XmlBeanFactory(resource);
>ApplicationContext 方式
// 根目录下开始读取
ApplicationContext atc = new ClassPathXmlApplicationContext("applicationContext.xml");
Bean 实例化
》三种方式
> 构造器实例化
<bean id="beanInstance" class="com.kgc.instance.BeanInstance"></bean>
public BeanInstance(){
System.out.println("BeanInstance构造器被调用!");
}
> 静态工厂方法实例化
1、写一个静态方法,供Spring 调用
2、添加一个 factory-method
<!--2、通过静态工厂实例化 需添加一个factory-method
factory-method : 配置成静态工厂方法 -->
<bean id="beanInstance" class="com.kgc.instance.BeanInstance" factory-method="getBeanInstance"></bean>
public static BeanInstance getBeanInstance(){
System.out.println("BeanInstance静态工厂被调用!");
return new BeanInstance();
}
> 实例(动态)工厂方法实例化
1、写一个工厂类,提供动态的工厂方法调用
2、配置factory-bean 和 factory-method
<!-- 3、通过动态工厂方法实例化
factory-bean-> 引用工厂并实例
factory-method ->引用工厂里的实例方法 -->
<bean id="beanInstance" factory-bean="dynamicBeanFactory" factory-method="createBeanInstance"></bean>
<bean name="dynamicBeanFactory" class="com.kgc.instance.factory.DynamicBeanFactory"></bean>
public class DynamicBeanFactory {
public BeanInstance createBeanInstance(){
System.out.println("执行到了动态工厂方法");
return new BeanInstance();
}
}
以上的测试方法
public static void main(String[] args) {
ApplicationContext atc = new ClassPathXmlApplicationContext("applicationContext.xml");
}
上一篇: Spring IOC 控制反转
下一篇: IoC控制反转是什么意思?