文章目录
Spring的配置文件
bean标签的配置
- id属性:容器中对象的标识,具有唯一性
- class属性:对象的创建对象对应的类
- scope属性
- singleton:单例
- prototype:多例
注:两者的区别- 生命周期不一样:
- 创建:单例是配置文件读取时创建,多例是调用时创建
- 销毁:单例伴随进程结束
- 单例只有一个实例,多例可以有多个
- 生命周期不一样:
- 属性init-method、destroy-method
初始化以及销毁时的方法的指定
property标签:属性的注入
- name属性:属性名
- value属性:基础数据类型的注入
- ref属性:引用类型的注入
list标签
<!-- 配置文件 -->
<bean id="demo" class="com.demo.DemoBean">
<property name="strList">
<list value-type="java.lang.String">
<value>"list"</list>
</list>
</property>
</bean>
map标签
<!-- 配置文件 -->
<bean id="demo" class="com.demo.DemoBean">
<property name="strMap">
<map key-type="java.lang.String" value-type="java.lang.String">
<entry key="key" value="value" />
</map>
</property>
</bean>
properties标签
constructor-arg标签
构造方法的参数的注入
Bean实例化的方式
- 无参构造方法(默认)
<!-- 配置文件 -->
<bean id="demo" class="com.demo.DemoBean"></bean>
- 工厂静态方法
<!-- 配置文件 -->
<bean id="demo" class="com.demo.FactoryBean" factory-method="getDemoBean"></bean>
//工厂静态方法
public Class FactoryBean{
public static DemoBean getDemoBean(){
return new DemoBean;
}
}
- 工厂实例方法
<!-- 配置文件 -->
<bean id="factory" class="com.demo.FactoryBean"></bean>
<bean id="demo" factory-bean="factory" factory-method="getDemoBean"></bean>
//工厂实例方法
public Class FactoryBean{
public DemoBean getDemoBean(){
return new DemoBean;
}
}
- 通过容器获取
//通过容器获取demoBean
ApplicationContext app = new ClassPathXmlApplicationContext("applicationConfig.xml");
DemoBean demo = app.getBean("demo");
Bean的依赖注入(DI)
依赖注入(DI , Dependency Injection)是控制反转(IoC)的一个具体表现
- set方法
<!-- 配置文件applicationCongfig.xml -->
<bean id="demo" class="com.demo.DemoBean"></bean>
<bean id="blogic" class="com.demo.Blogic">
<propety name="demoBean" ref="demo" />
</bean>
//依赖注入:将DemoBean注入Blogic
public Class Blogic(){
private DemoBean demo;
public void setDemoBean(DemoBean demoBean){
demo = demoBean;
}
}
//通过容器获取Blogic
ApplicationContext app = new ClassPathXmlApplicationContext("applicationConfig.xml");
Blogic blogic= app.getBean("blogic");
注:P命名空间的注入方法
- 有参构造方法
<!-- 配置文件applicationCongfig.xml -->
<bean id="demo" class="com.demo.DemoBean"></bean>
<bean id="blogic" class="com.demo.Blogic">
<constructor-arg name="demoBean" ref="demo" />
</bean>
//依赖注入:将DemoBean注入Blogic
public Class Blogic(){
private DemoBean demo;
public Blogic(DemoBean demoBean){
demo = demoBean;
}
}
//通过容器获取Blogic
ApplicationContext app = new ClassPathXmlApplicationContext("applicationConfig.xml");
Blogic blogic= app.getBean("blogic");
本文含有隐藏内容,请 开通VIP 后查看