일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 알고리즘
- 백준
- 최소 신장 트리
- Junit5
- 리플렉션
- test
- Python
- proxy
- Spring
- CS
- OS
- 파이썬
- 모던자바
- BOJ
- 약수
- 운영체제
- java
- 프록시
- MST
- 객체지향
- 자바
- Deadlock
- redis
- 다이나믹 프록시
- spring security
- 문자열
- 모던 자바 인 액션
- 스프링 시큐리티
- Reflection
- 스프링
- Today
- Total
목록Java&Spring (35)
Dev 달팽이 @_''
Java - 클래스의 프록시 서브 클래스를 만들 수 있는 라이브러리를 사용하여 프록시를 생성 가능 CGlib을 이용하는 방법과 ByteBuddy를 이용하는 방법이 있음 CGlib https://github.com/cglib/cglib/wiki 스프링, 하이버네이트가 사용하는 라이브러리 버전 호환성이 좋지 않아서 서로 다른 라이브러리 내부에 내장된 형태로 제공되기도 함 아래의 의존 추가 cglib cglib 3.3.0 BookServiceTest.java @Test public void diWithCglib(){ MethodInterceptor handler = new MethodInterceptor() { BookService bookService = new BookService(); @Override ..

Java - 다이나믹 프록시 다이나믹 프록시 런타임에 특정 인터페이스들을 구현하는 클래스 또는 인스턴스를 만드는 기술 Object Proxy.newProxyInstance(ClassLoader, Interfaces, InvocationHandler) Book.java public class Book { public String title; public Book() { } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } } BookService.java public interface BookService { void rent(Book book); void returnBook..

Java - 프록시 패턴 Sequence Diagram 프록시 패턴(Proxy Pattern) 프록시와 리얼 서브젝트가 공유하는 인터페이스가 있고, 클라이언트는 해당 인터페이스 타입으로 프록시를 사용 클라이언트는 프록시를 거쳐서 리얼 서브젝트를 사용하기 때문에 프록시는 리얼 서브젝트에 대한 접근을 관리하거나 부가기능을 제공하거나, 리턴값을 변경할 수도 있음 리얼 서브젝트는 자신이 해야 할 일만 하면서(SRP : Single Responsibility Principle,단일 책임 원칙) 프록시를 사용해서 부가적인 기능(접근 제한, 로깅, 트랜잭션 등)을 제공할 때 이런 패턴을 주로 사용 프록시 간단한 예제 Book.java public class Book { public String title; publi..

Java - 간단한 DI 프레임워크 만들기 스프링을 경험한 사람이라면 Dependency Injection를 들어봤을 것이다. 이번에는 간단하게 DI를 만들어보겠다. Injection.java import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) public @interface Injection { } Retention 어노테이션을 사용하여 어노테이션을 runtime시까지 사용하도록 설정해줍니다. ContainerService.java public static T getObject(Class classType){ return createInsta..