본문 바로가기

웹 프로그래밍/Spring

(16)
[Spring] DI 실습(5) : Annotation을 이용한 SPRING 자동 주입-2 이다. 아래 빨간 글은 오타. * 타입이 같은 빈을 검색해서 한개면 그 객체를 사용한다. - 두 개 이상이면, 어떤 것을 골라야할지 모르므로 에러가 난다. - 이떄는, @Qaulifier("id") 어노테이션을 사용하여 id에(xml에서 설정) 해당하는 것으로 사용하겠다고 지정해야 함. * 타입이 같은 빈을 검색해서 한개면 그 객체를 사용한다. - 두 개 이상이면, 어떤 것을 골라야할지 모르므로 에러가 난다. - 이때 @Qaulifier("id") 어노테이션이 없다면, 이름이 같은 빈 객체를 찾아서 사용한다. - 이름이 같은 객체가 있더라도, @Qualifier("id") 로 지정한 객체를 사용할 것이다. * 타입이 같은 빈이 두개 이상이고, @Qualifier 어노테이션도 없고, 이름이 같은 빈 객체도..
[Spring] DI 실습(4) :Dependency 응용, 집합객체 설정 : list, map List ListAddress.java package di.collection; import java.util.List; public class ListAddress { private List address; private List numbers; public ListAddress() { } public ListAddress(List address) { this.address = address; } public ListAddress(List address, List numbers) { super(); this.address = address; this.numbers = numbers; } public List getAddress() { return address; } public void setAddre..
[Spring] DI 생성자 주입 <constructor-arg>, 속성 주입(세터 주입) <property> 분석 constructor-arg : 생성자 주입 - 생성자의 매개변수 개수 만큼 태그를 생성한다. - 즉, 매개변수가 있는 생성자를 만들 때 사용한다. property : 속성 주입(세터 주입) - 매개변수가 없는 생성자로 객체를 만든다. - 이후 세터메소드를 작동시켜 멤버변수를 변경한다. constructor-arg + property - 태그 개수만큼 매개변수를 가지고 있는 생성자로 객체를 우선 생성한다. - 이후 propety 태그의 설정에 따라 세터 메소드가 실행된다. 퀴즈 : bean 태그의 하위 태그 개수를 보고 생성자 매개변수 개수를 알 수 있을까? 태그인 경우에는 알 수 있다. 아래의 myCalculator 빈은 3개의 매개변수를 가진다. 순서는 index로 준다. - ref : 객체 - va..
[Spring] DI 실습(3) : Annotation을 이용한 SPRING 자동 주입 XML을 사용한다면 bean 객체가 500개가 된다고 생각해보자. xml 코드를 엄청나게 많이 수정해야 한다. 어노테이션을 활용하면 아주 손쉽게 bean을 관리할 수 있다. 어노테이션을 통해 자동주입을 하겠습니다 ==> 반드시 써줘야 함. Autowired : 스프링에서 만든 어노테이션 Resource : 순수 자바로 만든 어노테이션. 그런데 생성자 주입 기능은 안 된다.
[Spring] DI 실습(1) 의존관계일 때의 번거로운 상황 설명 : 생성자 주입, 속성 주입(setter injection)의 필요성 순서가 좀 꼬여있다. DI(Dependency Injection)는 의존 주입이다. 의존성은 has-a 패턴일때만 의미가 있다. Car 클래스에 타이어를 장착해보자. 어떤 브랜드의 타이어를 장착 시킬까요? Car 클래스는 Tier 인터페이스에 대해 의존성을 가지고 있다. - 자동차는 타이어가 있어야 하잖아. - 타이어가 없으면 Car가 움직이지 않기 때문에, 콤포지션 관계이다. : 생명 주기를 같이할 때 콤포지션 관계 - (다른 관계는 어그리게이션 관계가 있다.) : 생명주기가 다를 때 ? 어그리게이션 관계 아래 처럼, 의존관계가 발생해서 타이어를 바꾸고싶다면 Car라는 클래스의 코드도 바꿔야 한다. 이런 번거로움을 해결하기 위해 생성자 주입, 속성주입(setter injection)을 사용한다.
[Spring] bean, container 개념 및 예제 & 싱글턴 패턴 사용 방법 [스크립트 정리] bean이란 ==> Bean(빈)이란 Spring이 관리하는 인스턴스이다. Spring Container란? ==> 스프링 프레임워크에서 Container 기능을 제공해주는 클래스 ==> Container는 Bean 클래스를 관리(생성, 삭제)하는 주체다. Container-XML이란? ==> Spring XML 파일 ==> 스프링은 XML 설정 정보를 참조하여 여러가지 Container Service를 제공한다 ==> 유지보수 작업 시 XML 파일을 조정한다. 클래스 개수 등에 따라 코드가 엄청 길어질 수 있음. Container-XML 템플릿 생성 방법 ==> src/main/resources 내에 xml 파일 생성 Spring Container 생성 방법 ==> ClassPathX..
[Spring] Maven local repository 경로 설정하기 : settings.xml
[Spring] 스프링 시작, Maven Project Spring을 MVC패턴으로 사용하고싶으면 조금 다른 설정을 해줘야 함. https://tyrionlife.tistory.com/486?category=801853 Spring.pdf 에서 Spring MVC 라고 검색해서 거기부터 보면 된다. 모듈식, 단위테스트 하는 폴더가 바로 test. 하나하나의 모듈들이 잘 작동하는지 테스트하기 위한 목적으로 만들어진 폴더다. deploy와는 관련이 없다. 그래서 패키지 색을 봐도 좀 다르다.