#spring
23
Java EcoTILSpring Framework
스프링5; Bean 라이프사이클
스프링 컨테이너를 초기화하고 종료할 때는 다음 작업을 수행한다. 컨테이너 초기화 → bean 객체의 생성, 의존 주입, 초기화 컨테이너 종료 → bean 객체의 소멸 bean객체가 생성 된 뒤 InitializingBean 클래스의 afterPropertiesSet() 메소드가 호출된다. 초기화 직후 필요한 작업이 있다면 이 클래스를 구현하면 된다. bean객체가 소멸할때 close()로 호출하는데 이 호출되는 과정에서 DisposableBean 클래스의 destroy()가 호출된다. 소멸 과정에서 필요한 작업이 있다면 이 클래스를
Java EcoTILSpring Framework
스프링5; 컴포넌트 스캔
자동 주입과 함께 사용하는 추가 기능이 component scan이다. 스프링이 직접 클래스를 검색해서 bean으로 등록해주는 기능이다. bean 설정에 등록하지 않아도 원하는 클래스를 bean으로 등록할 수 있어 component scan을 사용하면 bean 설정 코드가 많이 줄어든다. 서비스 코드에 붙인다 이렇게 되면 bean이름은 "memberDao"로 자동지정된다. 자동 지정 규칙은 camelCase다. 아래와 같이 속성을 줄 수 있다 속성을 지정하면 해당 이름으로 변경된다. bean 설정 코드에 아래와 같이 추가한다 컴포넌
Java EcoTILSpring Framework
스프링5; 의존 자동 주입 @Autowired
서비스 코드에서 의존주입 받는 객체에 대해 다음과 같이 선언하면 스프링이 bean객체를 직접 찾아서 할당한다 bean 설정에서 의존 주입부분을 삭제하더라도 직접 넣는다 메소드에도 역시 붙이는게 가능하다. setter에 붙인다면 좀 더 명확할 것 같다는 생각을 해본다. 마찬가지로 bean 설정에서 의존부분을 지울 수 있다. 자동 주입이 가능한 bean이 두개 이상이면 자동 주입할 bean을 지정할 수 있도록 대상을 한정한다. 서비스 코드와 bean 설정에서 어노테이션을 붙여주면 된다. @Qualifier가 지정되지 않은 bean은 메
Java EcoTILSpring Framework
스프링5; DI의 실제
서비스 객체가 있을때 비즈니스 로직을 처리하는 경우 저장소의 객체를 직접 들여다 볼 수 있다. 위와 같은 코드가 있을때 서비스 객체를 생성한다면 자연스럽게 저장소 객체도 생성된다. 이 경우를 두고 '서비스가 저장소에 의존된다'라고 말한다. 의존경우가 있을 경우엔 어떤 일이 생길까? 위와같이 모든 서비스 코드에서 의존관계가 종속된다면 의존에 관련된 코드를 수정 할 때 마다 서비스코드도 전부 수정해야한다. 생성자를 통해 객체를 받아서 처리하면 의존관계를 해결할 수 있다. 스프링의 DI는 여러가지 방법이 있는데 크게 3가지만 아래 정리해
Java EcoTILSpring Framework
스프링의 IoC/DI, AOP의 개념
본격적으로 스프링에서 사용되는 코드 패턴과 개념에 대해서 파고 들어간다. 제어의 역전 객체를 직접 생성하지 않고 외부에서 구현체를 넣어줌으로써 제어권을 거꾸로 가지고 가는 현상 IoC는 즉, 설계의 패턴이다. 실체에 의존할 것인가 추상화에 의존할 것인가 의존성 주입 외부에서 의존성을 받는 행동. 즉, 외부에서 new로 생성된 객체를 받는다. DI는 즉, 동작 그 자체다. 의존성을 어떻게 가질 것인가? 관계를 짧고 쉽게 정리하자면 → DI를 하면 IoC가 일어난다. 객체의 생성, 소멸, 작동의 주도권(즉, 제어권)이 객체 자신에게 있
Java EcoTILJava programming
자바 객체지향의 원리와 이해 #1
서점에서 최신 트랜드?가 반영된 OOP를 찾다가 이 책에서 그것을 언급하고있고, 또한 자바 문법의 전반적인 경험을 맛본 나로써 알맞은 난이도의 책이라고 생각했다
Java EcoTILSpring Framework
스프링5 시작하기 전에
자바를 개발하기 위한 SDK다. JRE; 자바 런타임을 포함하고 있다. 13,14를 깔아도 하위버전을 지원한다. Maven과 Gradle의 차이 ( 메이븐은 ) ( 아티팩트에 대한 설명 ) ( 그레이들은 ) 기본 코드 스타일 이외에 임의의 사용자 환경을 지정할 수 있다. 지정된 코드 스타일을 소스 저장시 자동으로 포매팅 해준다. 블록의 열리고 닫히는 단위를 임의의 색깔로 표시해준다.