这取决于scope的bean被注释.如果它是范围的singleton,那么它将在Spring中的任何地方使用相同的实例ApplicationContext.如果它是范围prototype,则将在每个位置使用新实例.
<bean id="id" class="some.NewObject" scope="prototype"/>
<bean id="id2" class="some.AnotherNewObject" scope="singleton"/>
Run Code Online (Sandbox Code Playgroud)
这些bean定义与以下代码相结合将有助于说明.
class Class1 {
@Autowired
some.AnotherNewObject obj;
}
class Class2 {
@Autowired
some.AnotherNewObject obj;
}
class Class3 {
@Autowired
some.NewObject obj;
}
class Class4 {
@Autowired
some.NewObject obj;
}
Run Code Online (Sandbox Code Playgroud)
Class1并且Class2将接收到的相同的实例的引用some.AnotherNewObject. Class3并且Class4将接收到的不同实例的引用some.NewObject.
如果使用注释和包扫描进行配置,则可以使用@Scope注释指定范围:
@Component
@Scope("prototype")
class NewObject {
...
}
@Component
@Scope("singleton")
class AnotherNewObject {
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2508 次 |
| 最近记录: |