@Autowired + @Qualifier funcionará solo con Spring DI, si desea utilizar alguna otra DI en el futuro @Resource es una buena opción.
Otra diferencia que encontré muy significativa es que @Qualifier no admite el cableado de bean dinámico, ya que @Qualifier no admite el marcador de posición, mientras que @Resource lo hace muy bien.
Por ejemplo: si tiene una interfaz con múltiples implementaciones como esta
interface parent {
}
@Service("actualService")
class ActualService implements parent{
}
@Service("stubbedService")
class SubbedService implements parent{
}
con @Autowired y @Qualifier necesita establecer una implementación secundaria específica como
@Autowired
@Qualifier("actualService") or
@Qualifier("stubbedService")
Parent object;
que no proporciona marcador de posición, mientras que con @Resource puede colocar marcador de posición y usar el archivo de propiedades para inyectar una implementación secundaria específica como
@Resource(name="${service.name}")
Parent object;
donde service.name se establece en el archivo de propiedades como
#service.name=actualService
service.name=stubbedService
Espero que ayude a alguien :)