Dependency Injection (DI) är ett designmönster som tar bort beroendet från programmeringskoden så att det kan vara enkelt att hantera och testa applikationen. Dependency Injection gör vår programmeringskod löst kopplad. För att förstå DI bättre, låt oss först förstå beroendesökningen (DL):
Uppslag om beroende
The Dependency Lookup är ett tillvägagångssätt där vi får resursen efter efterfrågan. Det kan finnas olika sätt att få tillgång till resursen, till exempel:
A obj = new AImpl();
På så sätt får vi resursen (instansen av A-klass) direkt av nytt nyckelord. Ett annat sätt är fabriksmetoden:
A obj = A.getA();
På så sätt får vi resursen (instansen av A-klass) genom att anropa den statiska fabriksmetoden getA().
Alternativt kan vi hämta resursen från JNDI (Java Naming Directory Interface) som:
replaceall i string java
Context ctx = new InitialContext(); Context environmentCtx = (Context) ctx.lookup('java:comp/env'); A obj = (A)environmentCtx.lookup('A');
Det kan finnas olika sätt att få resursen att få tillgång till. Låt oss se problemet i detta tillvägagångssätt.
Problem med beroendesökning
Det finns främst två problem med beroendesökning.
Beroendeinjektion
Dependency Injection är ett designmönster som tar bort programmens beroende. I sådana fall tillhandahåller vi informationen från den externa källan såsom XML-fil. Det gör vår kod löst kopplad och lättare att testa. I sådana fall skriver vi koden som:
class Employee{ Address address; Employee(Address address){ this.address=address; } public void setAddress(Address address){ this.address=address; } }
I sådana fall tillhandahålls en instans av Address-klassen av extern källa, såsom XML-fil, antingen med konstruktor- eller settermetod.
arraylist sorterad java
Två sätt att utföra Dependency Injection in Spring framework
Spring framework ger två sätt att injicera beroende
- Av konstruktör
- Med Setter-metod
Kommande ämnen i Spring Dependency Injection
Beroende Injektion av konstruktörLåt oss se hur vi kan injicera beroende av konstruktör.
Beroende Injektion med sättermetod
Låt oss se hur vi kan injicera beroende med sättermetod.