is used in any way because
if i use DI or not is the same because i using the implemention of the interface so it does not matter how i do it
in the DI way:
@AutoWired
@Qualifier("someImpl")
Interface inter;
abd if i want to change:
@AutoWired
@Qualifier("otherImpl")
Interface inter;
right?
the regular way:
Interface inter = new Impl();
if i want to change:
Interface inter = new Other();
so what are the differences???
Well, in this situation DI vs non-DI may look similar. But there are other examples in which non-DI approach sucks. For example, what if you have to deal with conditionally created beans, i.e. in your development environment you use one implementation and in production you want to use another. Or what if you had only one implementation of something in your application but then decided to switch to something cooler which implements the same interface. And this "something" is used allover your application. If you didn't have DI, then you'd have to go through all of your components to switch to new dependency. However if you did have DI then you would need to replace the old dependency only in one place
Обсуждают сегодня