Java 依赖注入框架的基础
我想编写自己的简单DI框架。 我希望它只执行这个简单的情况,就像Spring一样:Java 依赖注入框架的基础,java,dependency-injection,inversion-of-control,Java,Dependency Injection,Inversion Of Control,我想编写自己的简单DI框架。 我希望它只执行这个简单的情况,就像Spring一样: public interface IWriter { public void writer(String s); } @Service public class MySpringBeanWithDependency { private IWriter writer; @Autowired public void setWriter(IWriter writer) {
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文件
谁能解释一下这种框架的概念并编写一些代码。Guice是开源的。您可以在此处浏览代码: Spring也是开源的。你可以在这里下载: 浏览其中任何一个都应该满足问题的“编写一些代码”部分
编辑:看来你在寻找“魔法”。这归结为反思。Spring和/或Guice使用Java反射在类上查找适当的setter(或字段)并设置值。就这样。其他一切都是胶水,使整个系统工作。为什么要重新发明轮子?我不想重新发明?我想知道它是如何工作的。请阅读Spring文档。然后阅读源代码。很多接口和它们庞大的实现让它变得非常困难。总之,这对新手来说太复杂了。