
Java ServiceLoader + @AutoService + Eclipse IDE
Contents
- O que é Java ServiceLoader?
- Como usar o @AutoService?
- Como integrar com o (build) processador de anotações do Eclipse?
Java ServiceLoader
É um provedor simples de serviços disponibilizado pela classe java.util.ServiceLoader. As interfaces devem ser registradas como arquivos dentro da pasta META-INF/services/ e as implementações registradas no conteúdo dos arquivos.
Ver mais:
- http://www.oracle.com/technetwork/articles/javase/extensible-137159.html
- http://docs.oracle.com/javase/6/docs/api/java/util/ServiceLoader.html
@AutoService (google/auto)
Gera automaticamente os arquivos necessários para o java.util.ServiceLoader funcionar.
O código de exemplo abaixo:
Gera o arquivo: /META-INF/services/com.demo.ControllerHandlerFactory
Contendo as linhas:
- com.demo.DefaultControllerHandlerFactory
- com.demo.GuiceControllerHandlerFactory
Ver mais: https://github.com/google/auto/tree/master/service
Eclipse IDE - Integração com o @AutoService
Realizar o download dos JARs:
- https://mvnrepository.com/artifact/com.google.auto.service/auto-service
- https://mvnrepository.com/artifact/com.google.code.findbugs/jsr305
- https://mvnrepository.com/artifact/com.google.guava/guava
- https://mvnrepository.com/artifact/com.google.auto/auto-common
📋 Dica: fazer uso desses jar’s a partir do .m2 do maven
Seguir os passos:
- Botão direito sobre o projeto;
- Java Compiler > Annotation Processing > Factory Path;
- Add External JARs…
- Adicionar os JARs baixados
- Ok
Aqui o Eclipse passará a gerar, durante o build, os arquivos para o ServiceLoader por meio do @AutoService.
MhagnumDw