저는 Spring을 처음 사용합니다.Stateful (?) @ Service에 @Scope를 선택해야합니까?
저는 spring-context
에 의존하는 라이브러리 프로젝트를 진행하고 있습니다.
@Scope(value = "@@?")
@Service
public class MyService {
@PostConstruct private void constructed() {
}
@PreDestroying private void destroying() {
resource.clear();
}
public void doSome() throws IOException {
// try{}finally{} is not the case
resource = getSome();
doSome(resource); // may throw an IOException
resource.clear();
}
private transient MyResource resource;
}
이 인스턴스가 삭제 될 때마다 resource
을 무료로 보내고 싶습니다.
@Scope에 따르면 내가 선택할 수있는 네 가지 옵션이 있습니다.
- 는
나는 WebApplicationContext
내 종속성 트리에서 사용할 수없는 것으로 나타났다. (나는 spring-webmvc
에 의존하지 않습니다.)
나는 ConfigurableBeanFactory.SCOPE_PROTOTYPE을 선택할 계획입니다.
내가 선택한 범위가 MyService를 안전하게 만드는 것은 사실입니까? 둘 이상의 클라이언트가 동일한 서비스 인스턴스를 주입 할 수 없다는 뜻입니까? 스프링 컨테이너가 처리할까요?