Basicamente o pom.xml tem apenas a dependência do spring-boot-stater-jersey, que trará todas as bibliotecas necessárias para usarmos o Jersey já configurável através do Spring Boot.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
<modelVersion>4.0.0</modelVersion> | |
<groupId>br.com.tassioauad</groupId> | |
<artifactId>springbootjersey</artifactId> | |
<version>0.0.1-SNAPSHOT</version> | |
<packaging>jar</packaging> | |
<name>springbootjersey</name> | |
<description>Projeto de Demonstração do Spring Boot com Jersey</description> | |
<parent> | |
<groupId>org.springframework.boot</groupId> | |
<artifactId>spring-boot-starter-parent</artifactId> | |
<version>2.0.1.RELEASE</version> | |
<relativePath/> | |
</parent> | |
<properties> | |
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | |
<java.version>1.8</java.version> | |
</properties> | |
<dependencies> | |
<dependency> | |
<groupId>org.springframework.boot</groupId> | |
<artifactId>spring-boot-starter-jersey</artifactId> | |
</dependency> | |
<dependency> | |
<groupId>org.springframework.boot</groupId> | |
<artifactId>spring-boot-starter-test</artifactId> | |
<scope>test</scope> | |
</dependency> | |
</dependencies> | |
<build> | |
<plugins> | |
<plugin> | |
<groupId>org.springframework.boot</groupId> | |
<artifactId>spring-boot-maven-plugin</artifactId> | |
</plugin> | |
</plugins> | |
</build> | |
</project> |
Quanto a configuração básica e essencial, só precisaremos dessa classe abaixo:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Configuration | |
@ApplicationPath("v1") | |
public class JerseyConfig extends ResourceConfig { | |
public JerseyConfig() { | |
} | |
@PostConstruct | |
public void setUp() { | |
register(HelloWorldResource.class); | |
} | |
} |
A classe ResourceConfig que é herdada, é tradicional nas configurações do Jersey, que podem ser feitas por meio de extensão dessa classe ou de arquivo web.xml. A annotation @Configuration é comum no Spring Boot e transforma essa classe em um bean lida automaticamente pelo Spring Boot.
Um detalhe importante é a annotation @ApplicationPath, que receberá um endereço base para todos os resources. Sendo assim, todo resource que formos acessar será através da URL base http://localhost:<port>/v1/<resource_name>.
Em vez de usarmos o register(HelloWorldResource.class);
podemos instanciar o resource e passar como parâmetro ou mesmo informar o package onde se encontram todos os nossos resources para que todos sejam instanciados em vez de informarmos um a um.
@PostConstruct
setUp() {
register(MyResource.class);
register(new MyResource());
packages("br.com.tassioauad.myapp.resource");
}
Por fim, criaremos nosso resource:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Component | |
@Path("hello") | |
public class HelloWorldResource { | |
@GET | |
@Produces("application/json") | |
public String hello() { | |
return "Hello, world"; | |
} | |
} |
com as annotations do JAX-RS vindos do pacote javax.ws.rs.*, mas lembrando sempre de informar o @Component do Spring Boot para que seja tratado como um bean do Spring.
Basta executar e acessar o endereço http://localhost:<port>/v1/hello.