Spring의 Factory Bean 상세 정보
4174 단어 springfactorybean
예는 다음과 같습니다.
1: Car 클래스를 만드는 것은 일반적으로 Car 클래스를 직접 제공할 수 없습니다. 만약 이렇게 직접 주입하면 되거나 Car 대상을 만들 수 있습니다. 여기는 단지 간편하기 위해서입니다.
package com.myapp.core.factorybean;
public class Car {
private String make;
private int year;
public String getMake() {
return make;
}
public void setMake(String make) {
this.make = make;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
}
2: 하나의 Factory Bean의 실현
package com.myapp.core.factorybean;
import org.springframework.beans.factory.FactoryBean;
public class MyCarFactoryBean implements FactoryBean<Car>{
private String make;
private int year;
public void setMake(String make) {
this.make = make;
}
public void setYear(int year) {
this.year = year;
}
@Override
public Car getObject() throws Exception {
// TODO Auto-generated method stub
//Here is a complex car object created
// wouldn't be a very useful FactoryBean
// if we could simply instantiate the object!
Car car = new Car();
if(year != 0){
car.setYear(this.year);
}
if("make".equals(make)){
car.setMake("we are making bla bla bla");
}else{
car.setMake(this.make);
}
return car;
}
@Override
public Class<?> getObjectType() {
// TODO Auto-generated method stub
return Car.class;
}
@Override
public boolean isSingleton() {
// TODO Auto-generated method stub
return false;
}
}
이상에서 카를 만드는 것은 너무 간단합니다. 너무 간단하면 Factory Bean으로 만들 필요가 없습니다. 복잡하게 쓸 수 있습니다.3:Person은 하나의 car를 인용한다
package com.myapp.core.factorybean;
public class Person {
private Car car;
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
public String toString(){
return car.getMake()+"::::"+car.getYear();
}
}
4: 참조 xml 형식 설정:
<bean id="car" class="com.myapp.core.factorybean.MyCarFactoryBean">
<property name="make" value="makeing car"/>
<property name="year" value="123"/>
</bean>
<bean id="person" class="com.myapp.core.factorybean.Person">
<property name="car" ref="car"/>
</bean>
5: 테스트 클래스 테스트 작성:
package com.myapp.core.factorybean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainTest {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("resource/others.xml");
Person person = (Person)context.getBean("person");
// Car car = (Car)context.getBean("car");
// System.out.println(car);
System.out.println(person);
}
}
테스트 결과 makeing car::::123Factory Bean을 이용하여 car 만들기 성공
단지 사상을 설명하기 위해서다.이 인터페이스가 너무 중요하니까.Spring에서는 여러 종류가 이 인터페이스를 실현했다.
위에서 말한 것은 Spring 중의 Factory Bean에 대한 자세한 설명입니다. 여러분께 도움이 되었으면 합니다. 궁금한 점이 있으면 저에게 메시지를 남겨 주십시오. 편집자는 제때에 답장을 드리겠습니다.여기에서도 저희 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.