Spring Boot + Jersey em 1 minuto

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.

<?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>

view raw
pom.xml
hosted with ❤ by GitHub

Quanto a configuração básica e essencial, só precisaremos dessa classe abaixo:

@Configuration
@ApplicationPath("v1")
public class JerseyConfig extends ResourceConfig {
public JerseyConfig() {
}
@PostConstruct
public void setUp() {
register(HelloWorldResource.class);
}
}

view raw
JerseyConfig.java
hosted with ❤ by GitHub

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&gt;.

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:

@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.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s