Aquí mostraré ejemplos de Jakarta Contexts and Dependency Injection
Debemos definir la interfaz que usaremos.
Interfaz GreetingService
package com.example.jakarta.cdi;
public interface GreetingService {
String sayHello(String name);
}Y a partir de ella declaramos nuestras clases especializadas.
Clase EnglishGreetingService
package com.example.jakarta.cdi.impl;
import com.example.jakarta.cdi.GreetingService;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Named;
@ApplicationScoped
@Named("English")
public class EnglishGreetingService implements GreetingService {
@Override
public String sayHello(String name) {
return "hello " + name;
}
}Clase SpanishGreetingService
package com.example.jakarta.cdi.impl;
import com.example.jakarta.cdi.GreetingService;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Named;
import jdk.jfr.Name;
@ApplicationScoped
@Named("Spanish")
public class SpanishGreetingService implements GreetingService {
@Override
public String sayHello(String name) {
return "hola "+name;
}
}Y se invoca de la siguiente manera Clase de prueba GreetingServiceTest
@Inject
@Named("English")
GreetingService englishGreetingService;
@Inject
@Named("Spanish")
GreetingService spanishGreetingService;