스프링(6)
-
Spring - execution 사용법
AOP 적용시 다양한 상황에 대응할 수 있도록 명시자를 제공하고 있다. - Pointcut을 저정할 때 사용하는 문법 - execution(접근제한자 리턴타입 클래스이름 메서드이름(매개변수)) - 접근 제한자 : public만 지원된다. - 리턴타입 : 메서드의 매개변수 타입 - 클래스 이름 : 패키지를 포함한 클래스 이름 - 메서드 이름 : 메서드의 이름 - 매개변수 : 매개변수의 형태 - * : 하나의 모든 것을 의미한다. - .. : 개수 상관없이 모든 것을 의미한다. 위 xml 태그에서 aop는 method1 메서드가 실행시 AdvisorClass의 beforeMethod를 실행시킨다. 이때 메소드의 매개변수, 자료형, 패키지에 따라서 원하는 메서드를 지정 가능하다. 1. 매개변수 public c..
2020.08.30 -
Spring - AOP
AOP - Aspect Oriented Programming : 관점 지향 프로그래밍 - 하나의 프로그램을 관점(혹은 관심사)라는 논리적인 단위로 분리하여 관리하는 개념 - 로깅, 감사, 선언적 트랜젝션, 보안, 캐싱 등 다양한 곳에서 사용되고 있다. - 메서드 호출을 관심사로 설정하여 AOP에 관한 실습을 진행한다. - 관심사를 통해 Spring Framework가 어떤 메서드가 호출되는지 관심있게 지켜보다가 특정 메서드가 호출되면 자동으로 메서드 전과 후에 다른 메서드가 호출 될 수 있도록 한다. Spring AOP 용어 - Joint Point : 모듈이 삽입되어 동작하게 되는 특정 위치(메서드 호출 등) - Point Cut : 다양한 Joint Point 중에 어떤 것을 사용할지 선택 - Adv..
2020.08.29 -
Spring - Component
@Component 어노테이션을 사용하면 Bean Configuration 파일에 Bean을 등록하지 않아도 자동으로 등록된다. Bean 객체로 사용할 클래스(TestBean1)에 @Component 을 붙여준다. package cookingcoding.beans; import org.springframework.stereotype.Component; @Component public class TestBean1 { } @Component를 붙여주면 해당 객체는 자동으로 Bean 객체로 등록 될 준비가 된다. 해당 빈 객체를 가져오기 위해서 BeanConfigClass 클래스에서 다음 설정을 추가해준다. @ComponentScan(basePackages = "cookingcoding.beans") publ..
2020.08.26 -
Spring - JSR-250 어노테이션
- 스프링에서 기본으로 제공되지는 않지만 자바 플랫폼 공통 어노테이션인 JSR-250을 적용할 수 있다. - 적용을 위해서는 반드시 라이브러리를 추가해야 한다. 1. 라이브러리 추가 https://mvnrepository.com/ Maven Repository: Search/Browse/Explore REST Last Release on Aug 24, 2020 mvnrepository.com 위 사이트에 접속하여 jsr 250을 검색한다. 가장 위에 있는 항목을 선택한다. javax.annotation-api를 선택한다. 버전을 선택한다. 아래 항목을 선택하여 복사한다. 복사한 항목을 pom.xml에 추가한다. 추가한 pom.xml 코드 4.0.0 cookingcoding JSR250 0.0.1-SNAP..
2020.08.25 -
Spring - Java를 이용한 init-method, destroy-method
Java 파일을 이용하여 빈을 설정 할 때 xml에서 쓰던 것과 마찬가지로 init-method, destroy-method를 설정 가능하다. 다음과 같은 TestBean1 클래스가 있다. public class TestBean1 { public TestBean1() { System.out.println("TestBean1"); } public void init() { System.out.println("init"); } public void destroy() { System.out.println("destroy"); } } 기존의 xml에서 init,destroy를 설정하기 위해서는 아래와 같이 작성했다. 해당 빈 객체가 생성되면서 init 메소드가 호출되고, 해당 빈 객체가 사라질 때 destroy ..
2020.08.19 -
Spring - IoC 컨테이너로 빈 관리하기
spring에서는 bean을 관리하기 위해서 IoC 컨테이너를 사용하고 있다. 프레임워크(Framework) 기반의 개발에서는 프레임워크 자신이 흐름을 제어하는 주체가 되어, 필요 할 때마다 애플리케이션 코드를 호출하여 사용하는데 프레임워크에서 이 제어권을 가지는 것이 바로컨테이너(Container)이다. 객체에 대한 제어권이 개발자로부터 컨테이너에게 넘어가면서 객체의 생성부터 생명주기 관리까지의 모든 것을 컨테이너가 맡아서 하게된다. 이를 일반적인 제어권의 흐름이 바뀌었다고 하여 IoC(Inversion of Control : 제어의 역전)라고 한다. 즉, IoC는 코드작성의 흐름이 프로그래머가 아닌 프레임워크에 있는 것이다. 사용 방법을 알아보도록 하겠다. 1. 이전 시간에 생성했던 Maven프로젝트..
2020.08.15