자바 스프링 강의 2강
안녕하세요! 이번에는 자바 스프링 강의 2강에 대해 소개해드릴게요. 이번 강의에서는 스프링의 핵심적인 개념 중 하나인 DI와 AOP에 대해서 자세히 다룹니다.
1. DI(Dependency Injection)
DI는 의존성 주입이라는 뜻으로, 객체 간의 의존성을 줄여 유연한 설계를 할 수 있게 해줍니다. 스프링에서는 DI를 사용하여 객체 간의 의존성을 해결합니다.
1-1. DI의 종류
스프링에서 DI를 구현하는 방법에는 다음과 같은 종류가 있습니다. Setter Injection: Setter 메소드를 통해 의존성을 주입하는 방법입니다. Constructor Injection: 생성자를 통해 의존성을 주입하는 방법입니다. Field Injection: 필드를 통해 의존성을 주입하는 방법입니다.
1-2. 예제
다음은 Setter Injection을 사용한 예제입니다.
public class SetterInjectionExample {
private Dependency dependency;
public void setDependency(Dependency dependency) {
this.dependency = dependency;
}
public void doSomething() {
// do something with dependency
}
}
2. AOP(Aspect Oriented Programming)
AOP는 관점 지향 프로그래밍이라는 뜻으로, 핵심 로직과 관련 없는 부가적인 기능들을 분리하여 프로그래밍하는 기법입니다. 스프링에서는 AOP를 사용하여 로깅, 보안 등과 같은 부가적인 기능들을 분리하여 구현할 수 있습니다.
2-1. AOP의 용어
AOP를 사용하는 데 필요한 용어들을 알아봅시다. Aspect: 부가적인 기능들을 모듈화한 것을 Aspect라고 합니다. Join point: Aspect가 실행되는 지점으로, 메소드 실행 시점이나 예외 발생 시점 등이 될 수 있습니다. Advice: Join point에서 실행되는 코드를 Advice라고 합니다. Before, After, Around 등의 종류가 있습니다. Pointcut: Join point의 집합으로, 어떤 Join point에서 Advice를 실행할 지 결정합니다.
2-2. 예제
다음은 AOP를 사용한 로깅 예제입니다.
@Aspect
public class LoggingAspect {
@Before("execution(* com.example.service.*.*(..))")
public void logBefore(JoinPoint joinPoint) {
System.out.println("Before " + joinPoint.getSignature().getName());
}
@After("execution(* com.example.service.*.*(..))")
public void logAfter(JoinPoint joinPoint) {
System.out.println("After " + joinPoint.getSignature().getName());
}
}
결말
자바 스프링 강의 2강에서는 스프링의 핵심 개념인 DI와 AOP에 대해 다뤘습니다. 스프링의 DI와 AOP를 이용하면 유연하고 확장성 있는 프로그램을 만들 수 있습니다. 다음 강의에서는 스프링의 주요 기능 중 하나인 스프링 부트에 대해 다룰 예정입니다. 감사합니다!
'java(자바)스프링 웹공부(웹사이트개발)' 카테고리의 다른 글
| 자바 공부 1일차 조건문 및 변수선언 (0) | 2024.01.10 |
|---|---|
| 자바 스프링 (Spring) 1일차 (0) | 2023.12.12 |
| 자바 스프링 강의 1강 (0) | 2023.09.11 |