java 4

[Spring 기본] 5. 컴포넌트 스캔

컴포넌트 스캔과 의존관계 자동 주입 컴포넌트 스캔 Configuration 클래스에 @ComponentScan 어노테이션을 붙인다. 스프링 빈으로 등록할 객체들을 @Component 어노테이션을 붙인다. 그러면 컨테이너에 빈으로 등록이 된다. 이전에는 직접 new MemberServiceImpl(memberRepository()) 같은 식으로 의존관계가 주입이 가능했는데, 지금은 불가능해졌다. 자동의존관계 주입 클래스의 생성자에 @Autowired 어노테이션을 붙이면 스프링 빈 중 해당 파라미터 타입에 해당하는 빈이 자동으로 의존관계 주입이 된다. applicationContext.getBean(MemberRepository.class) 의 결과를 주입한다고 보면 된다. 타입이 여러 개인 경우는 추후 설..

개발/java 2024.01.06

[Spring 기본] 4. 싱글톤 컨테이너

4. 싱글톤 컨테이너 1. java는 웹 애플리케이션 서비스 용 언어 요청이 있을 때마다 새로 new 를 해서 객체를 반환하는 문제 클라이언트가 요청할 때 매번 객체가 새로 생긴다 요청을 수행하기 위해 스레드가 하나 생기고, 독립적인 인스턴스가 생기기 때문에 그런 것이다. 2. 싱글톤 패턴 싱글톤 패턴을 이용하여, 하나의 객체를 가지고 요청을 처리하도록 할 수 있다. 생성자 private 화, 그리고 static 멤버 변수로 미리 생성해둔 후 getInstance() 로 반환. 3. 싱글톤 패턴의 문제점 싱글톤 패턴을 구현하는데 코드를 많이 필요로 한다. 의존관계상 클라이언트가 구현체에 의존하게 된다. DIP 위반 따라서 OCP 도 위반하게 된다. 유연한 테스트를 하기 어렵다. 내부 속성을 변경하거나 초..

개발/java 2024.01.06

[Spring 기본] 3. Spring 프레임워크 사용하기

1. 스프링 컨테이너 ApplicationContext = 스프링 컨테이너 @Configuration annotation이 붙은 AppConfig 를 구성정보로 사용한다. AppConfig 에서 @Bean 어노테이션이 뭍은 메소드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다B. 이렇게 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 한다. 따라서 AppConfig 에서 객체를 찾아오는 대신, 스프링 컨테이너에서 필요한 스프링 빈(객체)를 찾아야 한다. AppConfig에서 MemberService 의 구현체를 반환하는 메소드 applicationContext.getBean(, 반환받을 클래스 타입) 함수로 스프링을 받아온다. 2. 스프링 컨테이너 생성 스프링 컨테이너가 생성되는 과정 Appl..

개발/java 2023.12.21

[Spring 기본] 1. 객체 지향 설계와 스프링

어떻게 스프링이 등장하게 되었는지 짤막하게 정리한 글입니다. 실제로 '봄'이라는 뜻에서 spring 이라는 이름을 갖게 되었다는 것이 인상깊었습니다. EJB 지옥 - 예전 개발자들에게 있어 사용하던 EJB는 이론은 좋았으나 구현은 너무 힘들었다고 합니다. 그래서 자바로 돌아가자는 움직임이 생겼습니다. EJB에서 Entity Bean - ORM 기술을 사용중이었는데요, 너무 힘들어하던 개발자 2명이 각각 오픈소스를 개발했습니다. Hibernate : EJB 엔티티빈 기술을 대체. JPA 새로운 표준 정의 Spring framework : EJB 컨테이너 대체, 단순함. 사실상 표준 기술 그 후 EJB에서는 Hibernate 를 만든 개발자 데려와서 JPA를 만들었습니다. JPA: 표준 인터페이스를 만들고,..

개발/java 2023.12.08
728x90
728x90