본문 바로가기

BackEnd/Spring

Autowired 와 Resource 와 lnject 어노테이션정리 책 110쪽 관련 @Autowlred 애노테이션과 차이가 있다면,@Autowired 애노테이션은 타입을 기준으로 빈 객체를 선택하는 반면에 ©Resource 애노테이션은 이름을 기준으로 빈 객체를 선택한다는 점이다 @qualifer lnject , @named @component @Component 애노테이션은 용도 별로 의미를 부여하는 하위 타입을 갖고 있는데,다음은 그종류들이다. • o.s.stereotype.Component : 스프링 빈 임을 의미한다.• o.s.stereotype.Service : DDD(도메인 주도 설계)에서의 서비스를 의미한다.• o. s. stereotype. Repository : DDD(도메인 주도 설계)에서의 리파지터리를 의미한다.• o.s.stereotype.Cont..
스프링 컨테이너 계층 구조 스프링 컨테이너는 부모-자식 관계의 계층 구조를 가질 수 있다. 자식에 속하는 컨테이너의 빈은 부모 컨테이너에 속한 빈을 참조할 수 있다. 즉, 의존 객체로 사용할 수 있다. 반대로 부모 컨테이너에 속한 빈은 자식 컨테이너에 속한 빈을 참조할 수는 없다. 부모/자식 구조를 만들고 싶다면, 자식 컨테이너를 생성할 때 setParent() 메서드를 이 용해서 부모 컨테이너를 지정해주면 된다. 아래 코드는 부모/자식 관계를 설정하는 예를 보여주고 있다. 123456789GenericXmlApplicationContext parent = new GenericXmlApplicationContext("classpath:conf-parent.xml"); GenericXmlApplicationContext child ..
스프링 mvc의 기본 구조 0. 스프링 MVC란? 스프링 MVC는 웹 스프링 라이브러리로, 기존에 Servlet/JSP를 이용하는 개발에 비해서 간단하고, 빠른 개발이 가능한 웹 프레임워크이다. 스프링 프레임워크를 이용한다는 의미는 스프링 MVC 프 로젝트인경우가 대부분이다. 1. 스프링MVC의 기본 구조 스프링 MVC는 Spring Framework의 서브 프로젝트다. 스프링은 하나의 기능을 위해서만 만들어진 프레임워크가 아니라 ’코어'라고 할 수 있는 프레임워크에 여러 서브 프로젝트를 결합해서 다양한 상황에 대처할 수 있도록 개발되었 다. 서브 프로젝트라 별도의 설정이 존재할 수 있다. Spring Legacy Project로 생성한 예제 의 경우에도 servlet-context.xml과 root-context.xml로 설정 ..
DI의 장점 1. 요구사항이 변화하더라도 의존 객체만 한번 수정해 줄뿐, 주입하는 코드는 그대로 이기 때문에 효율적이다. 아래글을 참고하자 https://cg-developer.tistory.com/396 다시보고 2번 내용 수정이 필요하다 2. 테스트 코드 작성시 주입하는 코드의 수정없이 가짜 구현 객체 사용가능. 주입해주고자 하는 클래스가 아직 미완성단계일때, 오버라이딩을 통해 가짜 구현 객체를 사용 하여 테스트 해볼수 있다. 즉, 의존하는 클래스의 구현이 완성되어 있지 않더라도 테스트를 할 수 있다는 점이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 package org.zerock.sample; import org.springframework.stereotype.Service; import ..
의존성 주입방법 2가지 Hotel 클래스는 chineseChef 클래스가 필요한 상황이라고 가정하자. 즉 의존하고 있는 상황이다. 호텔에서는 중국요리사가 필요한것이다. 1 2 3 4 5 public interface Cook { public String cook(); } cs 1 2 3 4 5 6 7 8 9 10 11 12 13 package org.zerock.sample; import org.springframework.stereotype.Service; import lombok.Data; @Data @Service public class ChineseChef implements Cook { @Override public String cook(){ return "chinese cook"; } } Colored by Colo..
스프링 컨테이너 종류 1. BeanFactory와 ApplicationContext의 관계 스프링은 BeanFactory와 ApplicationContext의 두 가지 타입의 컨테이너를 제공한다. BeanFactory 계열의 인터페이스만 구현한 클래스는 단순히 컨테이너에서 객체를 생성하 고 DI를 처리해주는 기능만을 제공한다. 하지만 스프링이 제공하는 다양한 부가 기능(편리한 트랜잭션 처리, 자바 코드 기반 스프링 설 정, 애노테이션을 사용한 빈 설정, 스프링을 이용한 웹 개발, 메시지 처리 등)을 사용하려면 ApplicationContext 계열을 사용해야 한다. 2. ApplicationContext 인터페이스와 관련된 클래스 계층 구조 가장 말단에 위치한 클래스가 실제로 사용되는 구현 클래스로서, 이들은 다음과 같다. ..
스프링의 가장 기본적인 기능 - 객체를 생성/조립/사용/관리에 대해 1. 스프링의 가장 기본적인 기능은 객체 생성/조립/관리에 대한 것이다. 스프링의 가장 기본적인 기능은 객체를 생성하고 초기화하여 필요로 하는 곳에 제공하는것인데,이 중심에는 DI(Dependency Injection)라는 설계 패턴이 적용되어 있다. 스프링은 기본적으로 DI를 기반으로 동작하기 때문에,스프링을 잘 사용하려면이에 대한 이해가 필수적이다 스프링은 객체를 생성하고 연결해주는 DI 컨테이너 스프링을 떠받치고 있는 핵심 기능 중의 하나가 바로 DI 이다. 스프링은 객체를 생성하고 각 객체를 연결해주는 조립기 역할을 하게 된다 이렇게 생성한 객체를 보관하기 때문에 스프링을 객체 컨테이너 라고도 부른다
컴파일,빌드,배포 과정 1. 영문으로된 글을 한글로 번역하는 것은 컴파일이다. 2. 번역한 글을 책으로 엮는 것은 빌드이다. 3. 완성된 책을 고객들이 읽을 수 있도록 서점에 진열하는 것은 배포이다. 4. 1~2번 과정을 하나로 묶어 '빌드 한다'고 하기도 한다. ------------------------------------------------------------------------------------ 1. 컴파일: 사용자가 작성한 코드를 컴퓨터가 이해할 수 있는 언어로 번역하는 일 2. 빌드: 컴파일된 코드를 실제 실행할 수 있는 상태로 만드는 일혹은 컴파일을 포함해 war, jar 등의 실행 가능한 파일을 뽑아내기까지의 과정을 빌드한다고도 함.소스코드 파일을 실행가능한 소프트웨어 산출물로 만드는 일련의 과정을 말..