Develop/Spring&SpringBoot (4) 썸네일형 리스트형 스프링 컨테이너 & 스프링 빈 **언제 @Service 나 @Repository 를 사용해야 하고 언제 @Configuration + @Bean을 사용?일반적으로 개발자가 직접 만든 클래스를 스프링 빈으로 등록할 때에는 @Service 나 @Repository 를 사용하고, 외부 라이브러리나 프레임워크에 만들어져 있는 클래스를스프링 빈으로 등록할 때는 @Configuration + @Bean 조합을 많이 사용하게 된다@RestController / @Service / @Repository / @Configuration은 모두 @Component 어노테이션을 가지고 있다!!! 즉 @Component 어노테이션을 붙이면 주어진 클래스를 ‘컴포넌트'로 간주하고, 컴포넌트들은 스프링 서버가 뜰 때 자동으로 감지@Component 덕분에 지금.. 싱글톤 패턴 & 싱글톤 컨테이너 🔴 싱글톤 패턴생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 유형을 싱글턴 패턴이라고 한다 출처 : https://ko.wikipedia.org/wiki/%EC%8B%B1%EA%B8%80%ED%84%B4_%ED%8C%A8%ED%84%B4 ❓왜 객체를 하나로 모으는걸까? 만약 요청이 올때마다 객체를 계속 생성한다면 메모리 낭비가 심해진다. 따라서 해당 객체가 딱 1개만 생성되고, 공유하도록 설계하게 됨 이와 같이 pirvate static final로 객체를 여기서만 생성할 수 있게 한다. 그 다음, public으로 getInstance를 통해 객체를 생성할 수 있게 만들어준다. 그 결과 외부에서.. Spring / 객체 지향 프로그래밍 🔵스프링 프레임워크핵심 기술 : 스프링 DI 컨테이너. AOP, 이벤트 기타웹 기술: 스프링 MC, 스프링 WebFlux데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원🟢스프링 부트스프링을 편리하게 사용할 수 있도록 지원단독으로 실행할 수 있는 스프링 애플리케이션 쉽게 생성Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨스프링과 3rd parth(외부) 라이브러리 자동 구성 - 유명 메이저 라이브러리들을 버전들을 지정해서 다운받을 수 있도록 도와줌 손쉬운 빌드 구선을 위한 starter 종속성 제공메트릭, 상태확인, 외부 구성 같은 프로덕션 준비 기능 제공🔴 스프링 자바 언어의 특징 - 객체 지향 언어스프링은 객체 지향 언어가 가진 강력한 특징을 살려내.. 의존관계 주입 -@ComponentScan` 은 `@Component` 가 붙은 모든 클래스를 스프링 빈으로 등록한다.-생성자에 `@Autowired` 를 지정하면, 스프링 컨테이너가 자동으로 해당 스프링 빈을 찾아서 주입한다. #생성자 주입-생성자 호출 시점에서 딱 1번만 호출되는 것이 보장된다-불변,필수 의존관계에 사용 #수정자 주입-선택,변경 가능성이 있는 의존관계에 사용 #필드 주입-외부에서 변경이 불가능 > 테스트하기 힘들다 #일반 메서드 주입-한번에 여러 필드를 주입 받을 수 있다. #생성자 주입 선택 이유 -대부분의 의존관계 주입은 한번 일어나면 애플리케이션 종료시점까지 의존관계를 변경할 일이 없음.-setter 주입은 public으로 열어두어야해서 위험 -수정자 주입을 포함한 나머지 주입 방식은 모두 생.. 이전 1 다음