logo

Beroendeinjektion på våren

  1. Beroendeinjektion på våren
  2. Uppslag om beroende
  3. Beroendeinjektion

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.

    tät kopplingBeroendesökningsmetoden gör koden tätt kopplad. Om resursen ändras måste vi utföra mycket modifiering i koden.Inte lätt att testaDet här tillvägagångssättet skapar många problem när du testar applikationen, särskilt i black box-testning.

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ör

Lå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.