Spring bean 相关
beanId:bean的唯一标识
beanName:
- applicationContext.getBean("userService") 参数传递的其实是beanName。
- 如果设置<bean>时没有设置beanName,会将beanId转化为beanName,没有beanId会将全类名设置为beanName,即com.xx.xx.UserServiceImpl
- bean也可以设置多个别名
bean设置作用范围:
如果引入了MVC, 还会增加 request和session这两个作用范围,但基本不使用
bean的延迟加载:
bean的初始化方法和销毁方法:
除此之外,也可以让类实现InitializingBean方法完成bean的初始化,她会在init_method之前、对象实例化之后执行
bean的实例化:
- 构造方法实例化bean
- 像以下这种配置,都是通过无参构造方法来实例化对象,然后根据property再去调用相应的set方法赋给属性值。 如果没有无参构造,则会报错
-
- 有参构造,如果想直接使用有参构造,则需要提供有参构造方法,并在配置文件中增加 constructor-arg标签(有参构造很少用)
- 工厂方法实例化对象
- 静态工厂方法实例化对象
- 动态工厂方法实例化对象
-
FactoryBean规范延迟bean的实例化
- 静态工厂方法实例化对象
Bean的依赖注入方式
list的注入:
- 列表元素为基本类型
- 列表元素为引用类型
集合的注入:
map的注入:
properties注入:
Bean的自动装配:
命名空间的种类
猪猪侠要努力呀!