Art*_*s M 8 java spring dependency-injection interface
好吧,我一直在看一些关于Spring依赖注入以及MVC的教程,但我似乎还不明白我们如何才能具体实例化类?
我的意思是,例如,我有一个变量
@Autowired
ClassA someObject;
Run Code Online (Sandbox Code Playgroud)
我如何使spring创建someObject作为ClassB的实例,它将扩展ClassA?像someObject = new ClassB();
我真的不明白它在Spring中是如何工作的,ContextLoaderListener是自动完成的,还是我们必须创建某种配置类,我们确切地指定spring应该将这些类实例化为什么?(在这种情况下,我没有在教程中的任何地方看到过)如果是,那么我们如何指定它是什么样的?我们如何配置它在web.xml等工作?
Ste*_*fan 25
你可以这样做:
接口:
package org.better.place
public interface SuperDuperInterface{
public void saveWorld();
}
Run Code Online (Sandbox Code Playgroud)
执行:
package org.better.place
import org.springframework.stereotype
@Component
public class SuperDuperClass implements SuperDuperInterface{
public void saveWorld(){
System.out.println("Done");
}
}
Run Code Online (Sandbox Code Playgroud)
客户:
package org.better.place
import org.springframework.beans.factory.annotation.Autowire;
public class SuperDuperService{
@Autowire
private SuperDuperInterface superDuper;
public void doIt(){
superDuper.saveWorld();
}
}
Run Code Online (Sandbox Code Playgroud)
现在您已经定义了接口,编写了一个实现并将其标记为组件 - 这里是docs.现在唯一剩下的就是告诉spring哪里可以找到组件,这样它们就可以用于自动装配.
<beans ...>
<context:component-scan base-package="org.better.place"/>
</beans>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25658 次 |
| 最近记录: |