2016-08-25 5 views
0

"Shape"인터페이스와 "Rectangle"클래스를 구현하는 패키지 "A"가 있습니다. 인터페이스와 클래스 모두 기본 액세스 권한을가집니다. 이제 "ShapeTester"클래스와 함께 다른 패키지 "B"가 있습니다. 이 ShapeTester 클래스에서 Rectangle 클래스를 인스턴스화하거나 Shape 유형의 변수를 선언하려고합니다. 예상 한 컴파일 오류가 발생합니다. 그러나 ShapeTester 클래스에서 Spring 컨테이너를 사용하여 Bean을 작성하면 Rectangle 클래스의 Bean을 작성한다.스프링 컨테이너가 액세스 제한을 확인하지 않고 기본 액세스 권한을 가진 클래스에 대해서도 bean을 만드는 이유는 무엇입니까?

Bean을 작성중인 Bean이 Rectangle에 대해 작성중인 클래스가 심지어 그러한 Rectangle 클래스가 존재하는지조차 알지 못하는지 확인하지 않고도 Bean을 작성하는 것은 Spring Framework에서 잘못되지 않았습니까?

답변

0

봄은 객체 인스턴스를 만듭니다. 봄 컨테이너를 시작하는 클래스 나 패키지는 중요하지 않습니다.

자바 가시성 개념은 정적 관계와 관련이 있습니다. 예를 들어 패키지 A에 클래스 A가있는 경우 모든 규칙은 이에 기초합니다. 클래스 A가 다른 패키지의 클래스 B에 의해 인스턴스화되는지는 중요하지 않습니다.