본문 바로가기

학원/복기

(172)
[Spring] AOP 어노테이션 AopAnnotationBean //AopAnnotationBean 클래스를 스프링빈으로 등록 @Component public class AopAnnotationBean { public void display1() { System.out.println("*** AopAnnotationBean 클래스의 display1() 메소드 실행 ***"); } public void display2() { System.out.println("*** AopAnnotationBean 클래스의 display2() 메소드 실행 ***"); } public void display3() { System.out.println("*** AopAnnotationBean 클래스의 displa3() 메소드 실행 ***"); } } Aop..
[Spring] AOP 사용 예제 (JavaMail 기능 구현 / StopWatch 객체) 예제1) EmailSendBean 클래스를 이용해 메일 서버의 STMP 서비스를 사용하여 메일을 전송시킬 수 있도록 만들어 볼것이다. 메일 서버(Mail Server)란 메일을 송수신하는 서비스를 제공하는 컴퓨터를 의미한다. SMTP(Simple Messgae Transfer Protocol) 서비스로 메일을 보내고 POP3(Post Office Protocol 3) 서비스나 IMAP(Internet Message Access Protocol) 서비스로 메일을 받아 사용자에게 전달할 수 있다. JavaMail 기능을 구현하기 위해서는 spring-context-support 라이브러리와 javax.mail 라이브러리가 프로젝트에 빌드되도록 처리해주어야 한다. 메이븐을 이용해 pom.xml을 수정해주자 ...
[Spring] AOP(Aspect Oriented Programming) AOP (Aspect Oriented Programming) AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 모듈에서 공통으로 처리되는 사항, 즉 횡단 관심사항을 별도로 모듈화해서 재사용성을 극대화하기 위한 프로그래밍 방법이다. AOP 주요 개념 및 구성요소 - 핵심 관심 : 시스템의 핵심 가치와 목적이 드러난 관심 영역, 적용하고자 하는 핵짐 비지니스 로직 비즈니스 클래스 = XXXServiceImpl 클래스 비즈니스 클래스에는 비즈니스 메서드가 구현되어 있으며, 비즈니스 메서드가 가진 코드를 핵심 관심 코드라고 한다. - 횡단 관심 : 쉽게 분리된 모듈로 작성하기 힘든 요구 사항, 공통 모듈 횡단 관심 클래스 = XXXAdvice 클래스 횡단 관..
[Spring] Lombok 라이브러리 https://mvnrepository.com/ 사이트에서 복사해서 pom.xml 파일에 붙여넣는다. Lombok 라이브러리 Lombok 라이브러리는 클래스 작성에 필요한 메소드를 자동으로 생성하여 제공하는 기능의 라이브러리이다. Lombok 라이브러리가 제공해주는 어노테이션 종류에 대해 알아보자 @NoArgsConstructor @NoArgsConstructor은 매개변수가 없는 생성자를 자동 생성하여 제공하는 어노테이션이다. @AllArgsConstructor @AllArgsConstructor은 매개변수가 존재하는 생성자를 자동으로 생성하는 어노테이션이다. 모든 필드에 초기값을 저장할 수 있는 매개변수가 있는 생성자를 생성한다. @RequiredArgsConstructor @RequiredArgsC..
[Spring] Annotation 이용한 의존성 주입 (수정..) @Component @Component은 클래스를 스프링 컨테이너가 관리할 수 있는 Spring Bean으로 등록하기 위한 어노테이션이다. 스프링 프레임워크에서 컴포넌트 스캔(Component Scan)을 통해 빈(Bean)으로 등록한다. 여기서 컴포넌트 스캔은 스프링에서 자동으로 빈으로 등록할 클래스를 찾아주는 기능을 말한다. 클래스의 이름을 beanName으로 자동 설정할 수 있다. (클래스의 이름에서 첫문자는 소문자로 변환한다.) @Compontent 어노테이션의 value 속성을 사용하여 beanName 변경이 가능하다. @Component 어노테이션이 붙은 클래스는 자동으로 스프링의 컴포넌트 스캔에 의해 빈으로 등록되어, 이후에 해당 빈을 필요로 하는 다른 클래스에서 @Autowired 어노테이..
[Spring] Bean 컬렉션 주입 / autowire 속성 예제) CollectionBean 클래스 package xyz.itwill05.di; import java.util.List; import java.util.Set; public class CollectionBean { private Set nameSet; private List nameList; public CollectionBean() { System.out.println("### CollectionBean 클래스의 기본 생성자 호출 ###"); } public Set getNameSet() { return nameSet; } public void setNameSet(Set nameSet) { this.nameSet = nameSet; } public List getNameList() { return..
[Spring] 의존성 주입(Dependency Injection) Dependency 관리 Dependency 관리는 Spring에서 Famework가 관리하는 Bean을 다른 Bean에서 사용할 수 있도록 설정해주는 역할까지 대행하는 것을 말한다. 예제) xyz.itwill05.di 패키지 생성 학생정보를 저장하기 위한 클래스, 즉 VO 클래스(DTO 클래스, POJO 클래스 - Plane Old Java Object) [Student]를 선언 → 학생정보를 표현하기 위한 값을 필드에 저장할 것이다. * POJO란 특정 기술에 종속되지 않는 순수한 자바 객체를 말한다. package xyz.itwill05.di; //학생 정보를 저장하기 위한 VO클래스(DTO 클래스) public class Student { private int num; private String ..
[Spring] 스프링 빈(Spring Bean) 스프링 빈(Spring Bean) 스프링 빈(Spring Bean)은 Spring 프레임워크에서 IoC 컨테이너에 의해 생성, 관리되는 객체를 말한다. Spring 컨테이너에 등록된 빈은 일반적으로 XML, 어노테이션 또는 자바 설정 파일에 정의되며, 애플리케이션의 다양한 컴포넌트들을 대표한다. 먼저 스프링빈을 XML을 이용해 정의해보자 스프링빈을 사용하는 방법을 예제를 통해 알아보자 [CreateBean] 클래스 선언 package xyz.itwill04.bean; public class CreateBean { public CreateBean() { System.out.println("### CreateBean 클래스의 기본 생성자 호출 ###"); } public void display() { Sys..