xml配置bean

bean管理

创建对象
注入属性

基于xml进行bean管理

创建对象



id 获取对象唯一标识
class 类的全路径
name 跟id作用几乎一样 但id不可以加特殊符号name可以

创建对象是默认执行无参构造

注入属性: DI 依赖注入 di是ioc的一种具体实现

1 set注入
2有参构造注入

在spring配置文件中 配置属性注入(set注入)

//name 对应类里的属性名 

(有参构造注入)


 //有参构造的第一个参数

p名称空间注入

xmlns:p=“…/p” xsi



注入空值,属性值包含特殊符号

 


//也可以转义
 




外部bean

Adao AdaoImpl AService(含Adao及set方法)
service调用dao方法




  


aaaa=context.getbean()得到AService对象
aaaa.asd();  asd是AService内一个调用Adao方法的方法

内部bean








级联赋值

1方法






  

2方法






  
  

xml注入集合属性

int b[];
//注入数组


 1 
 2 


List b;
//注入list


 1 
 2 


Map b;
//注入map






Set b;
//注入set


 1 
 2 


List a;









//将Aaobject提取出来作为公共部分都能用
//util命名空间 xmlns:util="...." xsi


18
19





工厂Bean

配置文件中定义的类型可以和返回值不一样
1创建类实现FactoryBean接口
2实现接口中的方法

class A implements FactoryBean{
public B getObject()throws Exception{
return new B();
}
}

bean的作用域(单例/多实例)默认单例

bean属性scope,singleton 单例加载时创建,prototype多实例调用时创建
request,session这两个不常用放到不同区中

bean生命周期

1通过构造器创建bean对象(无参)
2设置bean中属性值(set)
2.5把bean实列传递给bean后置处理器的方法postProcessBeforeInitalization(实现BeanPostProcessor)
3调用bean的初始化方法(需要自己配置)bean里属性 init-method=“对应类里方法名”
3.5把bean实列传递给bean后置处理器的方法postProcessAfterInitalization
4得到了个可以使用的bean
5当容器关闭时销毁bean(需要自己配置)bean里属性 destroy-method=“对应类里方法名” (如果要手动销毁b.close 强转ClassPathXmlApplicationContext里的方法)

后置处理器单独类,单独bean配置会对当前配置文件中所有bean进行后置处理的操作

自动注入

bean属性 autowire=“byName” 根据名称自动注入(外部bean,id和我的类属性名要一样) autowire="byType"根据属性类型自动注入(要求每个类型只能有一个)

//省略了

外部属性文件
jdbc.properties
加context名称空间

value="${prop.url}"

基于注解进行bean管理

你可能感兴趣的:(spring,spring)