基础依赖注入框架
问题描述:
的我想写我自己的简单的DI框架。 我希望它像春天确实只执行这个简单的例子:基础依赖注入框架
public interface IWriter {
public void writer(String s);
}
@Service
public class MySpringBeanWithDependency {
private IWriter writer;
@Autowired
public void setWriter(IWriter writer) {
this.writer = writer;
}
public void run() {
String s = "This is my test";
writer.writer(s);
}
}
@Service
public class NiceWriter implements IWriter {
public void writer(String s) {
System.out.println("The string is " + s);
}
}
public class Main extends TestCase {
@Test
public void test() {
ApplicationContext context = new ClassPathXmlApplicationContext(
"META-INF/beans.xml");
MySpringBeanWithDependency test = (MySpringBeanWithDependency) context
.getBean("mySpringBeanWithDependency");
test.run();
}
}
同样的情况,但MB没有一个XML文件。
有人能解释这种框架的概念,并编写一些代码。
答
吉斯是开源的。你可以在这里浏览代码: http://code.google.com/p/google-guice/source/browse/
Spring也是开源的。你可以在这里下载: http://www.springsource.org/download
浏览这些应该满足你的问题的“写一些代码”的一部分。
编辑:看来你要寻找的“神奇”。它归结为反思。 Spring和/或使用吉斯Java反射找上了类相应的设置器(或域),并设置值。而已。其他一切都是胶水,使整个系统的工作。
为什么要重新发明*? –
我不想重新发明?我想知道它是如何工作的。 – itun
阅读Spring文档。然后阅读源代码。 –