Java 8 添加了一个新功能,通过该功能我们可以在接口中提供方法实现。
Spring 4中有没有什么方法可以让我们在接口中注入可以在方法体内使用的bean?
下面是示例代码
public interface TestWiring{
@Autowired
public Service service;// this is not possible as it would be static.
//Is there any way I can inject any service bean which can be used inside testWiringMethod.
default void testWiringMethod(){
// Call method of service
service.testService();
}
}
这有点棘手,但如果您需要接口内部的依赖关系来满足任何要求,它就可以工作。
这个想法是声明一个方法,该方法将强制实现的类提供您想要自动装配的依赖项。
这种方法的缺点是,如果您想提供太多依赖项,代码将不会很漂亮,因为每个依赖项都需要一个 getter。
public interface TestWiring {
public Service getService();
default void testWiringMethod(){
getService().testService();
}
}
public class TestClass implements TestWiring {
@Autowire private Service service;
@Override
public Service getService() {
return service;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)