본문 바로가기

JAVASPRING4

빈 스코프(Bean Scope), 프록시(Proxy) 빈 스코프란 무엇일까? 스프링 빈은 기본적으로 스프링 컨테이너가 생성될때 같이 생성되면서 컨테이너가 종료될때까지 유지되는 구조이다. 하지만 이는 스프링 빈의 기본이 싱글톤(Singleton)스코프로 생성되기 때문이다. 이때 스코프란 말 그대로 빈이 존재할 수 있는 범위를 뜻한다. 스프링은 다양한 스코프를 지원한다. 싱글톤, 프로토타입, 웹관련스코프(request, session, application.,websocket) 정도의 스코프가 있다. 그 중 싱글톤은 스프링을 접하면서 가장 많이 써보고 스프링입문자라면 어떤 방식인지 알 수 있다. // 모른다면 https://donghs1541.tistory.com/9 or https://ko.wikipedia.org/wiki/%EC%8B%B1%EA%B8%80%.. 2021. 8. 11.
스프링의 다양한 의존관계 주입방법 먼저 의존관계 주입이 무엇인가에 대해 알고자 한다면 https://donghs1541.tistory.com/14 를 참고해주길 바란다. 의존관계 주입은 크게 4가지 방법이 있다. 생성자를 생성할때 하는 주입 setter를 이용한 주입 필드 주입 일반 메서드를 이용한 주입이 있다. 순서대로 알아보자 생성자 주입 이 방법은 생성자를 통해서 의존관계를 주입받는 방법이다. 생성자는 우리가 객체를 생성 할때 가장 먼저 1번 불러와지는 메소드로 클래스의 초기값을 설정하는 부분을 담당한다. 의존관계를 주입할 때는 생성자 주입을 권장하며 가장 많이 사용되는 방법이다. 그리고 스프링에서 지원하는 의존관계를 자동으로 주입해주는 것도 이방법을 사용한다. 필드에서 인터페이스를 선언한 후 생성자의 매개변수를 통해 인터페이스에 .. 2021. 8. 7.
AOP( Aspect Oriented Programming), 관점 지향 프로그래밍 이란? AOP란? AOP는 애플리케이션 전체에 걸쳐 사용되는 기능을 재사용하도록 지원한다. ​ 그럼 AOP는 언제 사용해야 할까? ​ 예를 들어서 모든 메소드의 호출 시간을 측정한다고 가정해보자. 그러면 메소드마다 이런 식의 방법으로 하나하나 시간을 재서 호출 시간을 볼 수 있다. 하지만 이런 메소드가 10000개 100000개가 된다면 하나하나 다치다가 정년을 마칠 수도 있을 것이다. 거기다가 유지보수를 할때 매우 불편하다. 시간을 측정하는 요소는 사실 핵심 비지니스 로직도 아니고 또 핵심 비지니스 로직과 섞여버려서 보기도 불편하고 변경을 할 때도 모든 로직을 찾아가야한다. 이러한 문제점을 해결해주는 것이 바로 AOP이다. ​ 간단히 살명하자면 공통 관심 사항(cross-cutting concern) vs 핵.. 2021. 8. 5.
스프링 빈(Spring Bean) 스프링 빈은 Spring IOC 컨테이너가 관리하는 자바 객체를 Bean이라고 부른다. ​ spring bean을 IoC(Inversion of Control)에 등록하는 방법은 크게 두가지로 나뉜다 ​ 1. annotation을 이용한 방법(@Service , @repository, @Controller 등) 2. 빈 설정파일에 직접 등록하는 방법 ​ 내가 지금 공부하고 있는 스프링(김영한)강의 에서는 둘다 하는 방법을 알고 있어야 한다고 한다. 앞서 IoC, DI(의존성 주입) 이라는 개념을 숙지하고 이 것에 대한 것을 알고 있어야 한다 해서 글을 쓴다. 아마 이 글을 보시는 분은 IOC와 DI가 무엇인지 한번 숙지해보고 오길 바란다. ​ 1. annotation을 이용한 방법 의존성 주입 스프링에서.. 2021. 8. 3.