Spring 프레임 워 크 는 공장 을 통 해 Bean 을 만 드 는 세 가지 방식 으로 이 루어 집 니 다.
Spring 에서 bean 의 생 성 은 기본적으로 프레임 워 크 가 new 를 반사 하 는 bean 인 스 턴 스 를 사용 합 니 다.때로는 복잡 한 상황 도 있다.
비행기 가 있다 고 가정 하면 속성 은 다음 과 같 습 니 다.지금 은 같은 모델 의 비행 기 를 많이 만들어 야 합 니 다.그러면 유일 하 게 바 꿔 야 할 속성 은 DriverName(기장 이름)입 니 다.이때 공장 모델 로 대상 을 만들어 줄 수 있 습 니 다.대상 을 만들어 주 는 클래스 가 있 습 니 다.이 종 류 는 공장 이 라 고 합 니 다.
public class AirPlane {
private String DriverName;//
private String AirPlaneName;//
private String longth;//
private Integer num;//
// getter setter
}
정적 공장:공장 자 체 는 대상 을 만 들 지 않 고 정적 방법 으로 호출 합 니 다.인 스 턴 스 공장:공장 자체 가 대상 을 만들어 야 합 니 다.먼저 new 공장 인 스 턴 스 가 필요 합 니 다.
1.정적 공장 으로 bean 만 들 기
정적 공장:
package com.gql.factory;
import com.gql.bean.AirPlane;
/**
*
*
* @author guoqianliang
*/
public class AirPlaneStaticFactory {
public static AirPlane getAirPlane(String drivername) {
System.out.println(" ...");
AirPlane airplan = new AirPlane();
airplan.setDriverName(drivername);
airplan.setAirPlaneName(" 20");
airplan.setLongth(20);
airplan.setNum(1);
return airplan;
}
}
xml 에 정적 공장 등록:
<!-- : factory-method="getAirPlane" -->
<bean id="airPlan1" class="com.gql.factory.AirPlaneStaticFactory" factory-method="getAirPlane">
<constructor-arg value=" "></constructor-arg>
</bean>
테스트:
@Test
public void test07() {
System.out.println(" ");
AirPlane bean = (AirPlane) ioc.getBean("airPlan1");
System.out.println(" :" + bean);
}
2.인 스 턴 스 공장 으로 bean 만 들 기
인 스 턴 스 공장:
package com.gql.factory;
import com.gql.bean.AirPlane;
/**
*
* @author guoqianliang
*/
public class AirPlaneInstanceFactory {
public AirPlane getAirPlane(String drivername) {
System.out.println(" ...");
AirPlane airplan = new AirPlane();
airplan.setDriverName(drivername);
airplan.setAirPlaneName(" 20");
airplan.setLongth(20);
airplan.setNum(1);
return airplan;
}
}
xml 에 실례 공장 등록 하기:
<bean id="InstanceFactory"
class="com.gql.factory.AirPlaneInstanceFactory"></bean>
<bean id="airPlan2" class="com.gql.bean.AirPlane"
factory-bean="InstanceFactory" factory-method="getAirPlane">
<constructor-arg value=" "></constructor-arg>
</bean>
테스트:
@Test
public void test08() {
System.out.println(" ");
AirPlane bean = (AirPlane) ioc.getBean("airPlan2");
System.out.println(" :" + bean);
}
3.Factory Bean 공장 설립 Bean 실현
ioc 용기 가 시 작 될 때 인 스 턴 스 를 만 들 지 않 습 니 다.가 져 올 때 인 스 턴 스 대상 을 만 듭 니 다.
Factory Bean 인터페이스 구현:
package com.gql.factory;
import org.springframework.beans.factory.FactoryBean;
import com.gql.bean.Book;
public class MyFactoryBean implements FactoryBean<Book> {
/**
*
*/
@Override
public Book getObject() throws Exception {
System.out.println("MyFactoryBean ...");
Book book = new Book();
book.setBookName(" ");
book.setAuthor(" ");
return book;
}
/**
*
*/
@Override
public Class<?> getObjectType() {
// TODO Auto-generated method stub
return Book.class;
}
/**
* ? true: false:
*/
@Override
public boolean isSingleton() {
// TODO Auto-generated method stub
return true;
}
}
xml 에 등록:
<!-- FactoryBean -->
<bean id="myFactoryBean" class="com.gql.factory.MyFactoryBean"></bean>
테스트:
@Test
public void test09() {
System.out.println(" ");
Object bean = ioc.getBean("myFactoryBean");
System.out.println(" :" + bean);
}
Spring 프레임 워 크 가 공장 을 통 해 Bean 을 만 드 는 세 가지 방식 으로 이 루어 지 는 것 에 관 한 글 은 여기까지 입 니 다.더 많은 Spring 공장 의 Bean 만 드 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 읽 어 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.