본문 바로가기
728x90

4

Chapter 6. 빈 라이프사이클 범위 컨테이너 초기화와 종료 스프링 컨테이너는 초기화, 종료 라는 라이프 사이클을 갖는다. 1 2 3 4 5 6 7 8 // 스프링 컨테이너 초기화 // 스프링 컨테이너는 설정 클래스에서 정보를 읽어와 알맞은 빈 객체를 생성하고 // 의존 주입 하는 작업을 수행한다. AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppCtx.class); // 초기화된 컨테이너를 사용한다 - 메서드를 이용해 컨터이너에 보관된 빈 객체를 구한다. Greeting greeting = context.getBean("greeting", Greeting.class); // 컨테이너를 종료한다. context.close(); Colo.. 2022. 5. 5.
java bean vs spring bean POJO(Plain Old Java Object) POJO 는 EJB 처럼 복잡하지 않고, 단순히 객체 만을 이용해 비즈니스 로직을 구현하는 것이다. POJO는 OOP에 충실하면서 환경, 기술에 종속되지 않고, 필요에 따라 재사용할 수 있는 방식으로 설계된 객체이다. Java bean 자바 빈은 스윙에서 독립적인 GUI 컴포넌트의 개발을 용이하게 하기 위해 고안되었다. 자바 빈은 하나의 객체 내에 여러 객체들이 존재하는 형태이며, 다음과 같은 조건을 만족한다. 1. Serializable를 implements 하고 있어야 한다. 즉, 직렬화할 수 있어야 한다. 2. 디폴트 생성자가 존재해야 한다. 3. 자바 빈에 존재하는 모든 프로퍼티(멤버 변수)들은 private 이여야 하며 각 getter와 sett.. 2022. 4. 28.
Chapter 03. Spring DI(Dependency Injection) 의존성 주입을 통해 객체를 생성할 경우 의존성을 생성해 주입할 코드가 필요하다. 만약 이 로직을 별도의 클래스로 분리한다면 이 클래스를 서로 다른 두 객체를 조립하는(의존 객체를 주입하는) 클래스, 즉 조립기로 볼 수 있다. 조립기의 예시는 다음과 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 public class Assembler { private final MemberDao memberDao; private final MemberRegisterService registerService; private final ChangePasswordService passwordService; public Assembler() {.. 2022. 4. 25.
6. 객체와 자료 구조 객체지향 패러다임에서 변수를 private으로 하는 이유는 변수에 의존하는 것을 막기 위해서이다. 그렇다면 왜 수많은 개발자들이 접근자와 수정가를 public으로 사용할까? 자료 추상화 변수를 private으로 선언하고 각 값마다 접근자와 수정자를 만든다면 이것은 진정한 캡슐화가 아니다. 변수 사이에 함수라는 계층을 넣는것 만으로는 구현이 감추어지지 않는다. 진정한 캡슐화를 위해서는 추상 인터페이스를 제공해 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있어야 한다. 즉, 자료를 세세하게 표기하기 보다는 추상적인 개념으로 표기해야 한다. 이런 논리에 의거해 다음 두 인터페이스를 보면 두번째 인터페이스가 더 객체지향 스럽다는 것을 알 수 있다. 1 2 3 4 5 6 7 8 9 10 // 자동차 연료 상.. 2022. 1. 17.
728x90