Spring 의 beanFacotry 시 뮬 레이 션
간단 한 시 뮬 레이 션 beanfactory 구현:
/ / 호출 프로그램
public class Test {
public static void main(String[] args) throws Exception{
BeanFactory f = new ClassPathXmlApplicationContext("com/d12321/applicationContext.xml");
Object o = f.getBean("v");
}
}
/ / beanfactory 인터페이스
public interface BeanFactory {
Object getBean(String id) throws Exception;
}
/ / 인 터 페 이 스 를 실현 하 는 ClassPathXmlApplication Context 대상
public class ClassPathXmlApplicationContext implements BeanFactory {
private Map<String,Object> container = new HashMap<String, Object>(); // spring
public ClassPathXmlApplicationContext(String filename) throws Exception {
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(Test.class.getClassLoader().getResourceAsStream(filename));
Element root = doc.getRootElement();
List list = XPath.selectNodes(root, "/beans/bean");
for(int i = 0; i < list.size(); i++) {
Element elem = (Element) list.get(i);
String it = elem.getAttributeValue("id");
String value = elem.getAttributeValue("value");
Object o = Class.forName(value).newInstance();
container.put(it, o);
}
}
@Override
public Object getBean(String id) {
return container.get(id);
}
}
/ / 클래스 대상
public class Car {
Car() {
System.out.println("car ....");
}
}
//applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<bean id="v" value="com.d12321.Car">
</bean>>
</beans
요약:
1. 시 뮬 레이 션 에 사용 되 는 중요 한 기술, jdom xml 파일 분석
2. Class. forname (클래스 이름). newInstance ();클래스 개체 생 성
3. (클래스 이름). getClass (). getClassLoader (). getResourceAsStream ("xx / xx / xx. xml"); exp: Document doc = sb.build(Test.class.getClassLoader().getResourceAsStream(filename));
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
localStorage에 객체를 추가하는 방법은 무엇입니까?이 노트에서는 localStorage에 객체를 삽입하는 방법을 보여드리겠습니다. 경우에 따라 로컬 스토리지 또는 세션 스토리지에 데이터를 개체로 저장해야 할 수 있습니다. 어떻게 이것을 달성할 수 있습니까? 객체가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.