2013-03-07 3 views
0

아래의 Bean은 상태 비 저장이므로 스레드로부터 안전합니까? 더 구체적으로 내 consern 주입 된 값은 문자열 배열입니다. 이것이 콩의 상태를 방해합니까? 권리 없다?이 스프링 빈은 비 상태 유지입니까?

public class ServiceImpl implements Service { 

private static final Logger LOG = Logger.getLogger(ServiceImpl.class); 

/* Injected values properties file. */ 
private String[] values; 

@Autowired 
private DAO dao; 


@Transactional 
@Override 
public void invoke(String submissionId) { 

    dosomething.... 
} 
} 
+0

어떤 값이'values' 배열에 할당됩니까 –

답변

0

values 배열에 대한 쓰기 액세스가 없으면 상태 비 저장입니다. 그렇지 않으면 오류가 발생할 것입니다.

+0

쓰기가 없습니다. 그냥 읽고 ... – boom123

0

초기화 후에 등록 정보 (또는 bean이 참조하는 객체의 등록 정보)를 수정하지 않으면 bean은 효과적입니다. 어떤 종류의 유형을 사용하든 상관 없습니다.

그래서 배열이나 항목 중 하나를 수정하지 않으면 bean은 효과적인 상태 비 저장/유효 변경 불능입니다. 여기 물어

3

가 주요 문제는

상태가없는 객체가 무엇

입니까?

그 대답은 해당 속성이 수명 기간 동안 변경되지 않으면 개체가 stateless라는 것입니다. 귀하의 빈의 범위가 singleton이라고 가정하고, 따라서 빈의 수명 동안 values 속성이 변경되지 않는 한 상태 비 저장입니다. 그렇지 않으면.

+0

콩은 싱글 톤 예입니다. 방금이 값들을 읽었습니다. 변화 없음. – boom123

+0

그러면 위에서 말했듯이 그것은 무국적자입니다. – benzonico

관련 문제