WebHU - Programozási kérdések és válaszok

wildfly - használja a CDI-t a POJO-val

CDI-t szeretnék használni a POJO-val.

Most már fut egy Jaxrs Resteasy webalkalmazás a Wildfly 10.1.0.Final verziójában.

Van egy szingli, amely egy ServiceImpl osztályt ad vissza:

public class ServiceFactory {

    private static Service service = new ServiceImpl();

    public static Service getEnvsApi()
    {   
       return service;
    }
}

És a ServiceImpl osztályon belül szeretném használni a CDI-t

public class ServiceImpl extends Service {

   @Inject
   private MyData    myData;

   @Override
   public MyData getData()
   {
      return myData;
   }
}

de myData mindig null.

A Weld-et manuálisan kell elindítanom?

01.02.2017

Válaszok:


1

Ha a webalkalmazása Wildfly-ben fut, nem kell "indítania" a Weld-et. Csak használja a CDI API-t a kódjában, és adja hozzá a beans.xml értéket a webapp/WEB-INF-hez (vessen egy pillantást a CDI komponens-felderítési módjára), és a CDI aktiválódik.

Ami a problémáját illeti, az a probléma, hogy új operátoron keresztül példányosítja a szolgáltatást, amely megszakítja a CDI-t! Ss azt mondta más válaszokban, a @ApplicationScoped-t kell használnia a ServiceImpl-on, és nincs szüksége a ServiceFactory-re.

Csak deklarálja a ServiceImpl-t @ApplicationScoped-ként

@ApplicationScoped
public class ServiceImpl implements Service {

   @Inject
   private MyData    myData;

   @Override
   public MyData getData()
   {
      return myData;
   }

}

És akkor @Inject saját Service:

@Inject
private Service service
01.02.2017

2

A szolgáltatást a ServiceFactory-ba is be kell illesztenie, mert ha példányosítja, az nem áll CDI vezérlés alatt.

Valószínűleg teljesen eltávolíthatja a ServiceFactory-t, és mindenhová beillesztheti a szolgáltatást, ahol szüksége van rá.

01.02.2017
Új anyagok

A rádiógomb ellenőrzött eseményének használata a jQueryben
Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

Miért érdemes elkezdeni a kódolást 2023-ban?
01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

🎙 Random Noise #2  – Örökbefogadás és hit
az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..