개발을 하기위해서 알아야하는 용어중 하나 Context
context란? 경계선or공간이라고 생각하면 된다. 파른곳에서 접근하지못하도록
->보관하기만 하는 목적으로 하면 컨테이너라고한다 혹은 팩토리
-> 콘텍스트라는 이름이 되면 관리의 개념이 더 들어간다.
클래스파일을 jvm의 클래스로더라는 아이가 jvm에서 사용할 수 있게 해준다.
모든 객체가 java.lang.Object를 상속받는 이유 ->3가지의 기능이 있기 때문
1.운영체제랑 통신하는 메서드가 있어서 객체를 만들어준다 (라이프사이클과 관련된 메서드가 있다)
2. Equals와 Hashcode가 있다. (컬렉션에서 검색에 가장기본이 되는게 Equals나 HashCode를 기반으로 검색하기때문에 제네릭에 기본형이 못들어가는것)
3.
스프링에서 BeanFactory은 객체를 생성하는기능이있는데 lifecycle관리 기능이 붙으면 applicationContext라고 한다. (이친구가 의존성 주입을 해준다.)
서버가 뜰때 스프링은 설정정보를 먼저 읽는다 (첫번쨰로 @Configuration, 두번째로 XML)
자바 리플렉션이란? -> 반대방식으로 코딩이 가능하다. (런타임에서 객체를 만들 수 있는 방법) ->스프링에서는 자바리플렉션을 적극적으로 한다.