때문에 더 열심히 결합의 app-config.xml
를 통해 구성하지 않고 있기 때문에 보안의 주석 스캔 기능과와없는 AppConfig.java
,이 같은 봄 콩의 인스턴스를 만드는 데 :AppConfig.java 개인 생성자가있는 빈을 반환 하시겠습니까?
@Configuration
public class AppConfig {
@Bean
public AddressService addressService(){
return new AddressService();
}
}
모든 것이 잘 작동하지만, 내가 무엇을 좋아하는 경우 다른 사람들이 인스턴스 AddressService
을 만들지 못하도록하려면? 보통 나는 생성자를 private으로 선언 할 것이지만, 컴파일러는 AppConfig
에있는 AddressService
의 개인 생성자에 더 이상 액세스 할 수 없다는 오류를 준다! 완성도를 들어
, 이것은 AddressService
입니다 :
public final class AddressService {
private AddressService(){}
}
왜 인터페이스입니까? 왜 constructor package-private을 선언하지 않는가? –
사실, 무엇이 바뀌나요? OP는 주석 스캐닝을 사용할 수 없습니다 (선택하지 않음). 따라서 그는 여전히 "new AddressingService"를 수행 할 수 있어야합니다. 즉, 생성자가 다른 사람에게도 표시 될 수 있다는 의미입니까? – alexbt
@Alex 생성자는 동일한 패키지에서 볼 수 있으며'package-private'은'default' 또는'protected'입니다. –