3

もしそうなら、どうやってそれを止めるのですか?

4

2 に答える 2

9

注釈が付けられscopeているかどうかによって異なります。beanスコープ内の場合singleton、同じインスタンスがSpringのどこでも使用されますApplicationContext。スコープ内の場合はprototype、各場所で新しいインスタンスが使用されます。

<bean id="id" class="some.NewObject" scope="prototype"/>
<bean id="id2" class="some.AnotherNewObject" scope="singleton"/>

これらの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;
}

Class1Class2同じインスタンスへの参照を受け取りますsome.AnotherNewObjectClass3Class4さまざまなインスタンスへの参照を受け取りますsome.NewObject

構成に注釈とパッケージスキャンを使用している場合は、@Scope注釈を使用してスコープを指定できます。

@Component
@Scope("prototype")
class NewObject {
    ...
}

@Component
@Scope("singleton")
class AnotherNewObject {
    ...
}
于 2012-08-14T13:09:59.720 に答える
3
@Service
@Scope("prototype")
public class CustomerService 
{}
于 2012-08-14T13:17:31.777 に答える