步骤一: 实现Scope接口
第二步注册作用域
在上例子中
第一步要创建一个User类型的Bean放入容器中,这个Bean被@Scope(自定义作用域名称) 修饰, 标明它的作用域是自定义类型的
第二步使用ConfigurableBeanFactory#registerScope(自定义作用域名,自定义作用域对象) 将自定义作用域注册到容器中
当根据类型获取User类型的Bean的时候,IOC容器会检测到该Bean被@Scope()修饰,则会回调自定义作用域的get()方法, 第一个参数是你要获取的Bean在IOC容器中的名称 第二个参数是通过延迟注入的方式在IOC容器中获取的User对象,表现为ObjectFactory (此时ObjectFactory.getObject()得到的就是默认情况下getBean的结果,这里由于要自定义作用域,所以IOC容器把要注入的Bean变成ObjectFactory作为参数传递到get()方法中,让我们自定义操作Bean)
网友评论