Notice
Recent Posts
Recent Comments
Link
상똥이의 Back-End 공부방
Reflection API 본문
1. Reflection
- 컴파일 시점이 아닌 런타임 시점에 동적으로 특정 클래스의 정보를 추출해낼 수 있는 프로그래밍 기법
- 힙 영역에 로드되어 있는 클래스 타입의 객체를 통해 필드/메소드/생성자를 접근 제어자와 상관없이 사용할 수 있도록 지원하는 API
- 힙 영역에 로드되어 있는 클래스 타입의 객체를 가져오는 방법 : (1) 클래스.클래스 (2) ㅇ인스턴스.겟클래스 (3) 클래스.폴네임
- 주로 프레임워크 또는 라이브러리 개발 시 사용됨
- jvm의 클래스 로더는 클래스 파일에 대한 로딩이 끝나면 클래스 타입의 객체를 생성해 메모리 힙 영역에 저장
2. Reflection 사용하는 프레임워크/라이브러리 소개
- Spring 프레임워크(Ex. DI)
- Test 프레임워크 (Ex. JUnit)
- JSON Serialization/Deserialization 라이브러리 (Ex. Jackson)
- 등등
3. 활용
Reflections reflections = new Reflections("탐색할 범위 Ex. 카테고리");
Set<Class<?>> beans = new HashSet<>();
annotations.forEach(annotation -> beans.addAll(reflections.getTypesAnnotatedWith(annotation)));
'오류해결' 카테고리의 다른 글
[You are not allowed to create a user with GRANT] 해결방법 (0) | 2023.10.20 |
---|---|
intelliJ 와 JPA 연동이 도저히 안될 때 해결 방법 (0) | 2023.10.08 |
window 윈도우에서 equals()&hashcode() 단축키로 만드는 방법 (0) | 2023.09.24 |
Address already in use: NET_Bind 해결 (0) | 2023.09.05 |
intellij Tomcat 실행 오류 (0) | 2023.09.05 |