전체 글
-
Bean ( @Scope , Provider )백엔드/SPRING MVC 2024. 8. 22. 16:45
빈 스코프란?Bean이 존재할 수 있는 범위종류싱글톤 스코프프로토타입 스코프웹 관련 스코프 스코프 지정 방법//Component 등록@Scope("[스코프 지정]")@Componentpublic class Test(){}// 수동 등록@Scope("[스코프 지정]")@Beanpublic class Test(){ return new Test();}scopesingletonprototyperequestsessionapplication 스코프 특징싱글톤 빈객체 생성 -> 의존관계 주입 -> 초기화 -> 사용 -> 소멸전 콜백 -> 소멸프로토타입 빈객체 생성 -> 의존관계 주입 -> 초기화프로토타입의 경우 1) 초기화 진행 후 클라이언트 코드에게 관리 위임프로토타입의 경우 2) 프로토타입 빈 요청이 올때마..
-
빈 생성시 값 초기화 방법 ( init() )백엔드/SPRING MVC 2024. 8. 22. 15:33
Spring bean LifeCycle 스프링 빈의 라이프 사이클스프링 컨테이너 생성스프링 빈 생성의존관계 주입초기화 콜백사용소멸전 콜백스프링 종료스프링 빈의 생명주기에서 객체 생성과 초기화가 각기 다른 단계에서 이루어지므로 분리해서 생각해야한다. 스프링 빈의 초기화 방법 (콜백 지원 방법)인터페이스InitializingBean, DisposableBeanpublic class TestBean implements InitalizingBean, DisposableBean{ public TestBean(){} public void init(){ // init 작업 } public void close(){ // close } ..
-
의존관계 자동 주입백엔드/SPRING MVC 2024. 8. 21. 19:08
Dependency Injection Injection 방법생성자 주입생성자 호출시점에 딱 1번 호출되는 것이 보장됨불변, 필수 의존관계 가능@Componentpublic class BeanTestImpl{ private final BeanTest beanTest; // 생성자가 딱 1개일경우 @Autowired 를 생략해도 된다. public BeanTestImpl( BeanTest beanTest ) { this.beanTest = beanTest; }}수정자 주입 (setter)선택, 변경이 가능하다@Componentpublic class BeanTestImpl{ private final BeanTest beanTest; @Autowi..
-
@Component에 관하여...백엔드/SPRING MVC 2024. 8. 21. 18:25
@Component 컴포넌트 스캔@Component 를 지정해주면, 따로 Config에 작성해서 @Bean 으로 등록해주지 않아도, 자동으로 spring이 bean으로 등록해준다.@Componentpublic class BeanTest implements BeanInterface{}@Componentpublic class BeanTestImpl{ private final BeanInterface beanInterface; // 자동으로 @COMPONENT가 붙은 정보가 주입됨 // BeanTest 클래스가 beanInterface에 주입됨 @Autowired public BeanTestImpl(BeanInterface beanInterface){ re..
-
싱글톤 컨테이너백엔드/SPRING MVC 2024. 8. 21. 16:20
Spring 컨테이너 (+ 싱글톤) Spring 컨테이너Spring 컨테이너는 빈을 저장하기 위한 컨테이너라고 보면 됨주로 AppConfig로서 작성이 됨방식 -> XML , JAVA 코드, ... (여러 방법으로 AppConfig를 이룰 수 있음)ApplicationContext || BeanFactory 라고도 불리움 싱글톤인스턴스를 1개를 만들어서 서로 공유하는 목적 ( 무분별한 인스턴스 생성을 방지할 수 있다)생성방법public class SingletonTest{ // 인스턴스 생성 (1개) -> 구체 클래스 (SingleTest)에 의존하게 됨 private static final SingletonTest instance = new SingletonTest(); ..
-
Spring Bean (+ Bean Factory)백엔드/SPRING MVC 2024. 8. 21. 15:08
Spring Bean Bean FactoryBean의 최상위 계층의 인터페이스 [순서] 1. Bean Factory2. ApplicationContext3. AnnotationConfigApplicationContext대부분 bean에 있어 Bean Factory 내부에 기능들이 존재Bean Factory 또는 기능을 상속받은 ApplicationContext를 "스프링 컨테이너"라고 일컫음 Bean 확인 메서드AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);전체 조회조회타입 조회public static void main(String [] args){ A..
-
Spring 컨테이너백엔드/SPRING MVC 2024. 8. 21. 11:27
Spring Container Spring Containerspring 컨테이너는 Config를 담당하는 역할spring 컨테이너는 Config 방식으로 "어노테이션 기반 config" 와 "xml기반 Config"로 구성가능AnnotationContexthttps://docs.spring.io/spring-framework/docs/6.1.12/javadoc-api/org/springframework/context/annotation/AnnotationConfigApplicationContext.htmlClassPathXmlApplicationContexthttps://docs.spring.io/spring-framework/docs/6.1.12/javadoc-api/org/springframewo..
-
SOLID 규칙 적용 (+순수 자바 버전 , spring)백엔드/SPRING MVC 2024. 8. 21. 10:53
회원 예제 기획회원 저장 로직회원 저장회원 조회저장 방법메모리 저장DB 저장 구조도SOLID 규칙 적용멤버import lombok.Getter;import lombok.Setter;@Getter@Setterpublic class Member { private Long id; private String name; private Grade grade; public Member(Long id, String name, Grade grade){ this.id = id; this.name = name; this.grade = grade; }} 멤버서비스 인터페이스public interface MemberService { void join(Mem..