본문 바로가기
반응형

분류 전체보기108

AOP 개인 저장용 토비의 스프링 6장 드럽게 어렵던데 잊을만 하면 다시 읽어보려고 개인저장용 Aop란 무엇인가? 비즈니스 로직을 담은 UserService에 트랜잭션을 적용해온 과정을 정리해보자. 트랜잭션 서비스 추상화 dao단위의 트랜잭션을 service단위로 변경하기 위해서 비즈니스 로직과, 트랜잭션 경계설정 코드가 함께있는 코드를 작성하니 특정 트랜잭션에 기술이 종속되는 코드가 되어 버리는 문제가 발생했다. JDBC를 사용할때는 로컬 태랜잭션 방식을 적용한 코드 JTA를 사용할때는 글로벌/분산 트랜잭션 방식을 적용한 코드 등 어떤것을 사용하느냐에 따라 트랜잭션 적용 코드를 수정해야 하는 일이 생겼다. 그렇기에 트랜잭션과 직접 관련이 없는 코드가 담긴 많은 클래스를 일일이 수정해야 했다. => 서비스 추상화 기법 적용.. 2022. 12. 28.
포인트컷 표현식 Sample Code package pointcut; /* * 스프링은 아주 간단하고 효과적인 방법으로 포인트컷의 클래스와 메소드를 선정하는 알고리즘을 작성할수 있는 방법을 제공한다. * 정규식이나 JSP,EL과 비슷한 일종의 표현식 언어를 사용해서 작성할 수 있도록 하는 방법이고 * 이것을 포인트컷 표현식 이라고 부른다. * * 포인트컷 표현식 * AspectJExpressionPointcut은 클래스와 메소드의 선정 알고리즘을 포인트컷 표현식을 이용해 한 번에 지정할 수 있게 해준다. * 포인트컷 표현식은 자바의 RegEx클래스가 지원하는 정규식처럼 간단한 문자열로 복잡한 선정조건을 쉽게 만들어낼 수 있는 강력한 표현식을 지원한다. * * 사실 스프링이 사용하는 포인트컷 표현식은 AspectJ라는 유명 프레임워크에서 제공.. 2022. 12. 25.
어드바이저 = 포인트컷 + 어드바이스 어드바이저 = 포인트컷(메소드 선정 알고리즘) + 어드바이스(부가기능) 추가 포스팅 예정.. 2022. 12. 25.
Java reflection Sample Code /* 리플렉션(투영,반사) : 객체를 통해 클래스으 ㅣ정보를 분석해 내는 프로그램 기법 * * 객체의 메모리만 알고 있고, 객체의 형에 대해서 모를때 * 리플렉션으로 형은 알고 있지만 형변환은 할 수 없는 상태에서 객체의 메서드를 호출 할 수 있다. */ @Test public void reflectTest() throws Exception{ // 클래스 정보 얻기 1 Class clazz1 = Class.forName("proxy.Car"); // 클래스 정보 얻기 2 Class clazz2 = Car.class; //getDeclaredMethods 메소드 리스트 조회 //getMethods 를 사용하면 상속된 메소드에 대한 정보를 얻을 수 있다. Method methods[] = clazz1.get.. 2022. 12. 16.
반응형