반응형

프로그래밍/Spring & Spring boot 44

14 Spring : @Pointcut 어노테이션 표현식

Pointcut 표현식 : execution 속성에 설정 execution(* com.greedy.diz..*Impl.*(..)) *: 리턴타입 / com.greedy.. : 패키지 경로 / *Impl. : 클래스명 / *(..) : 메소드명 및 매개변수 리턴 타입과 매개변수를 무시하고, com.greedy.biz.패키지로 시작하는 클래스 중 이름이 Impl로 끝나는 클래스의 모든 메소드를 뜻함. @Pointcut 어노테이션 주요 표현식 1. 리턴타입 표현식 설명 * 모든 리턴 타입 허용 void 리턴타입이 void인 메소드만 선택 !void 리턴타입이 void가 아닌 메소드 선택 2. 패키지 표현식 설명 com.greedy.test 정확하게 com.greedy.test 패키지만 선택 com.greedy..

13 Spring : AOP 개념 정리

Spring AOP : 관점 지향 프로그래밍의 약자 중복되는 공통 코드를 별도의 영역으로 분리해내고 필요한 시점에 해당 코드를 가져다 쓸 수 있게 객체화하는 기술 Spring AOP의 구조 공통되는 코드를 따로 빼내어 작성하는 class를 Advice라고 하고, 해당 시점을 Joinpoint, 그 시점에 공통 코드를 끼워 넣는 작업을 Weaving이라고 함. Spring AOP의 용어 Introduction : 정적인 방식의 AOP 기술 Weaving : 작성한 Advice를 핵심 로직 코트에 삽입 1) 컴파일 시 위빙 : 컴파일 시 AOP가 적용된 클래스 파일이 새로 생성(AspectJ) 2) 클래스 로딩시 위빙 : JVM에서 로딩한 클래스의 바이트 코드를 AOP가 변경하여 사용 3) 런타임 시 위빙 ..

12 Spring : bean 초기화, 소멸 설정하기(init-method , ditory-method)

초기화와 소멸 메소드 : IoC 컨테이너가 Bean 객체를 생성할 때 bean 초기화가 필요하면 initMethod를 설정하고, IoC 컨테이너가 Bean 객체를 소멸시킬 때 자원 반납 등의 처리가 필요하면 destroyMethod를 설정함. 1. inti 메소드와 distory메소드에 사용할 출력문 작성하기 2. inimtMethod 와 destoryMethed 설정하기 (1) 빈 등록시 설정하기 @Bean(initMethod =" ", destroyMethod = " " ) 출력할메소드이름을 값으로 설정 @Bean(initMethod = "openShop", destroyMethod = "closeShop") public Owner owner() { return new Owner(); } (2) Po..

11 Spring : MessageSource를 통한 다국어 처리하는 방법

1. properties 파일에 영문과 한글로 message 작성 2. bean 등록 @Configuration public class ContextConfiguration { ReloadableResourceBundleMessageSource타입의 빈을 생성 @Bean public ReloadableResourceBundleMessageSource messageSource() { 접속하는 세션의 로케일에 따라 자동 재로딩하는 기능을 가진 MessageSource 구현체 ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); 다국어 메세지를 읽어올 properties 파일의 기본 파일..

10 Spring : properties 사용

1. 폴더생성(소스폴더로) 후 properties 파일 작성 : key 와 value 형태 key값을 작성할때 층위를 나워서 키 값을 부여할 수 있음. 2 . properties에 저장된 value 값 꺼내오기 1) 해당 클래스에 @PropertySource 어노테이션 작성 @Configuration @PropertySource("prdouct-info.properties") public class ContextConfiguration { 2) Bean 등록과 @Valuefmf 어노테이션을 사용하여 값 꺼내오기 - 치환자(placeholder) 문법을 이용하여 key를 입려하면 value에 해당하는 값을 꺼낼 수 있음 - ': ' 뒤의 값은 값을 읽어오지 못하는 경우 사용할 대체 값 - 내부에 공백을 사..

09 Spring : @Scope("prototype")

@Scope("prototype") : 기본적인 bean scope는 singleton으로 설정되어 있음 singleton은 IoC 컨테이너 당 하나의 인스턴스만 생성함 protorype으로 설정을 변경하면 요청할 때마다 bean 인스턴스(객체)를 새롭게 생성함. @Scope("prototype") ㅇㅖ제 부모 class 생성 public abstract class Product { 생성불가타입으로 만들어주기 abstract 객체 생성하지 않을거여서~ private String name; private int price; public Product() {} public Product(String name, int price) { super(); this.name = name; this.price = pr..

08 Spring : annotation 의존성 주입 정리

@Autowired : 주입하려고 하는 객체의 타입이 일치하는 객체를 자동으로 주입 필드, 생성자, setter에 사용가능 필드와 setter에 사용할 시 반드시 기본 생성자가 있어야 함. 생성자가 한 개일때는 @Autowired 생략 가능하지만 한 개 이상일때는 꼭 붙여서 사용 @Primary : @Autowired으로 동일한 타입의 여러 빈을 찾게 되는 경우 자동으로 우선적으로 설정 됨. 단, 동일한 클래스 중 한 개만 @Primary를 사용할 수 있음 @Qualifier : @Primary 와 동일한 기능이지만, @Primary 보다 우선권을 갖짐 필드 주입을 이용하는 경우(생성자가 없어야 함) @Autowired @Qualifier("charmander") => @Qualifier("빈이름작성")..

07 Spring : Annotation 을 통해 의존성 주입하기/ @Autowired

필드에 @ Annotation DTO 생성 package com.greedy.section01.fieldinjection.javaconfig; import java.util.Date; public class BookDTO { private int sequence; private int isbm; private String title; private String author; private String publisher; private java.util.Date createdDate; public BookDTO() {} public BookDTO(int sequence, int isbm, String title, String author, String publisher, Date createdDate) {..

06 Spring : Setter 메소드 / 생성자를 통한 의존성 주입 방법

인터페이스 생성 package com.greedy.section02.xmlconfig; public interface Account { 잔액 조회 String getBalance(); 입금 String deposit(int money); 출금 String withDraw(int money); } 상속받는 class 생성 package com.greedy.section02.xmlconfig; public class PersonalAccount implements Account{ private int backCode; private String accNo; private String accPwd; private int balance; public PersonalAccoun..

05 Spring : DI(의존성 주입)

1 . DI(Dependency injection) : IoC구현의 핵심 기술 컨테이너가 bean의 설정 정보를 읽어와 자동으로 해당 객체에 연결하는 것 의존성을 주입 받게 되면 이후 해당 객체를 수정해야할 때 소스 코드의 수정을 최소화 할 수 있음 2 . DI의 장점 - 코드가 단순해짐 - 각 객체 간의 종속 관계(결합도) 해소 3 . 객체간의 종속 관계(결합도)란? : 한 클래스에서 필드 객체를 생성 할 때 발생하는 두 객체 간의 관계 각 객체간의 내용이 수정될 경우 영향을 미치는 정도 4 . DI(의존성 주입)방법 1) Setter 메소드 의존성을 주입받는 Setter 메소드를 만들고, 이를 통해 의존성을 주입 2) 생성자 필요한 의존성을 포함하는 클래스에 생성자를 만들고, 이를 통해 의존성을 주입..

반응형