반응형

전체 글 1007

스프링 여섯 번째

싱글톤에서 빈 요청은 여러명이 같은 요청의 와도 같은 객체 인스턴스의 스프링 빈을 반환한다. 프로토타입 빈에선 요청마다 새로운 빈을 생성하고 초기화, 의존관계주입후 클라이언트에게 반환하고 버린다. @PreDestroy와 같은 종료메소드 실행이 안된다. - 이러면 메모리는? ?? 펑? 클라이언트가 안꺼주면 계속 누적되는겨? 프로토 타입과 싱글톤을 같이쓰면? 이미 싱글톤안에 프로토타입 빈이 주입이 되어 있다. 프로토타입 빈이 또 생성되지 않는다. 또 생성하고 싶다면 ObjectProvider 스프링에 의존적 JSR-330 Provider gradle에 추가해야한다.단순하고 스프링에 의존적이지 않다. get() 메소드 하나만 가지고 있다. DL = Dependency Lookup 의존관계 조회, 탐색 스코프와..

개발/웹 교육 2023.11.05

스프링 다섯 번째

객체의 생성과 초기화를 나누자! 생성은 내가 public _____ 에서 만들어준 생성자 초기화로 나누는 법은 implements InitialzingBean을 붙이고 여기에 따라 나온 함수에 초기화 해주기 implements에 DisposableBean을 만들어서 파괴될 때 나오는것만들 이건 초창기 버전,, 빈에서 init과 destroyMethod를 이용하여 사용 destroyMethod이걸 사용할 때 내 method이름이 close라면 적어주지 않아도 된다. @PreConstruct와 @PreDestroy 사용을 권한다. 스코프? 빈이 존재할 수 있는 범위

개발/웹 교육 2023.11.05

스프링 네 번째

스프링 빈을 만들 때 마다 @Bean을 계속 하기는 귀찮다. 자동으로 등록하려면 = @ComponentScan 의존관계 주입은 어떻게 하는가? @Autowired로 자동으로 해준다. 생성자에 지정해주면 된다. 시작, 예외 다 지정해줄 수 있다. 디폴트: 내가 있는 폴더의 모든 하위 폴더, 파일 의존관계 주입 방법 -> 생성자 주입을 해라! 생성자 주입 : 생성자를 통해 의존관계 주입, 호출 시점에 딱 1번만 호출 , 생성자가 하나만 있다먄 @Autowired 생략 가능 수정자 주입 : 앞에 이름에 setOOOOOOOO (set필드명) 로 만든다. 필드 주입 : 편하지만 외부에서 변경이 불가능해서 추천 X, 테스트 코드에서만 써보자 일반 메서드 주입 : 한번에 여러 필드 주입 가능, 잘 사용 X why 생..

개발/웹 교육 2023.11.03

스프링 세 번째

beanDefinition 자체가 인터페이스다. 언어나 뭐든 신경쓰지 않는다. 스프링 없이는 요청이 올 때 마다 객체를 새로 만든다. 메모리 낭비가 엄청나다. 해결방안: 객체가 하나만 생성되고 공유한다. how : 두개 이상 생성하지 못하도록 막는다. 1. static영역에 객체 instance를 미리 하나 생성해서 올려둔다. 2. getInstance() 매서드를 통해서만 조회할 수 있다. 3. 생성자를 private로 막아둔다. same == equal 스프링 컨테이너는 싱글톤으로 알아서 적용해서 바꿔준다. 객체 지향을 위한 여러 규칙, 코드의 깔끔함을 다 유지해준다. 주의점 무상태로 설계해야 한다. 값을 변경할 수 없어야한다. - 읽기만 가능해야 한다. !!!!! 중요 !!!!!! 값을 넣으면 바꿔..

개발/웹 교육 2023.11.02

스프링 두 번째

스프링 컨테이너에 @Bean으로 등록해놓은 모든 객체들이 들어간다. 이름과 객체로 들어간다. 이것이 스프링 빈이다. 이름은 항상 다른 이름을 부여해야한다. 아니면 오류 생긴다. 애매하면 하지 말기! 스프링 컨테이너는 객체를 생성 후 의존 관계를 주입한다. iter + tab or enter = 반복 control + art + v = 우변항 적어놓은 것에 자동적으로 좌변항 만들어 getBeanDefinitionNames : 스프링에 등록된 모든 빈 이름을 조회

개발/웹 교육 2023.10.31
728x90
728x90