프레임워크12 Spring AOP Proxy 지난 번에는 Spring AOP에 대해 알아 보았다. 그렇다면 이번에는 Spring AOP가 동작하는 매커니즘에 대해 알아보자. 작성한 AOP가 실행되는 과정에서 Spring AOP는 JDK dynamic proxy나 CGLIB proxy를 사용해 Advice가 적용된 Proxy 객체를 호출하게 된다. 즉, 실제 기능이 구현된 Target 객체를 호출하면, Target이 호출되는것이 아니라 Advice가 적용된 Proxy 객체가 호출되는 것이다. 8.6 Proxying mechanisms (spring.io) 8.6 Proxying mechanisms Spring AOP uses either JDK dynamic proxies or CGLIB to create the proxy for a given ta.. 2023. 4. 12. Spring AOP(Aspect Oriented Programming) Spring에는 AOP(Aspect Oriented Programming)이라는 개념이 있다. 말 그대로 관점 지향 프로그래밍이라는 건데, 이건 또 어떤 것일까. 일반적으로 OOP(Object Oriented Programming)은 모듈화의 핵심 단위가 클래스인데, AOP는 모듈화의 핵심 단위가 바로 Aspect다. 즉 OOP에서는 객체를 기준으로 모듈화를 한다면 AOP에서는 관점에 따라 모듈화를 진행한다. Aspect는 여러 타입과 객체에 걸쳐서 사용되는 기능 등의 모듈화라고 생각하면 된다. A,B,C의 클래스가 있다고 가정해보자. A에서는 a 코드와 b 코드, B에서는 b코드와 c 코드, C에서는 a코드와 c코드가 작성되어 있다면 a코드는 A와 C 클래스 사이의 공통 관심사항(Cross Cuttin.. 2023. 4. 12. 의존성 주입(Dependency Injection)(의존성 주입_Annotation@) 지난 번에는 XML을 통한 의존성 주입을 공부했다. 이번에는 Annotation을 이용한 의존성 주입에 대해 공부하려 한다. Annotation을 통한 의존성 주입 방식은 XML 방식과는 다르게 Annotation 만으로 Bean을 생성하거나 설정할 수 있다. 예를 들어 Annotation을 통해 Bean을 생성하는 것은 @Component로 객체를 생성할 대상 클래스에 작성해주면 된다. 이때 생성되는 bean의 이름은 클래스의 첫 글자를 소문자로 바꾼 것으로, Desktop이 클래스 이름이면 desktop으로 생성된다. 이는 @Component (value = "bean-name")으로 이름 지정이 가능하다. 위에서 언급한 @Component를 포함하여, @Repository, @Service, @Co.. 2023. 4. 11. 의존성 주입(Dependency Injection)(의존성 주입_XML) 지난 번에는 의존 관계에 대하여 알아보았다. 그렇다면 이번에는 스프링을 통한 의존성 주입에 대해 알아보자. 객체 간의 의존성을 가지는 관계는 객체 내부에서 직접 호출(new 클래스명)하는 대신, 스프링 컨테이너를 통해 외부에서 객체르 생성해서 넣어주는 방식이 바로 스프링의 의존성 주입이다. public interface Computer{ void coding(); } public class Laptop implements Computer{ @Override public void coding(){} } public class Desktop implements Computer{ @Override public void coding(){} } public class Programmer{ private Compu.. 2023. 4. 11. 이전 1 2 3 다음