Um guia para a primavera no Eclipse STS
1. Visão geral
Este artigo ilustra alguns dos recursos úteis do IDEEclipse Spring Tool Suite (STS), que são úteis ao desenvolverSpring applications.
Primeiro, mostramos os benefícios do uso do STS em comparação com a maneira tradicional de criar aplicativos com o Eclipse.
Posteriormente, focaremos em como inicializar um aplicativo, como executá-lo e como adicionar dependências adicionais. Finalmente, concluímos adicionando argumentos de aplicativo.
2. Características principais do STS
O STS é um ambiente de desenvolvimento baseado em Eclipse, customizado para o desenvolvimento de aplicativos Spring.
Ele fornece um ambiente pronto para uso para implementar, depurar, executar e implantar seus aplicativos. Também inclui integração para o Pivotal tc Server, Pivotal Cloud Foundry, Git, Maven e AspectJ. O STS é construído como uma adição às versões mais recentes do Eclipse.
2.1. Configuração do Projeto
O STS compreende quase todas as estruturas de projeto Java mais comuns. Ele analisa os arquivos de configuração e exibe informações detalhadas sobrebeans que são definidos, dependências, namespaces usados e, além disso, extrai visões gerais de certos estereótipos.
2.2. Visão geral dos recursos do STS
O Eclipse STS valida seu projeto e fornece correções rápidas para seus aplicativos. Por exemplo, ao trabalhar com o Spring Data JPA, o IDE pode ser usado para validar nomes de métodos de consulta (mais sobre isso na seção 6).
O STS também fornece uma visualização gráfica de todos os métodos de bean e seus relacionamentos mútuos. Você pode querer dar uma olhada mais de perto nos editores gráficos que vêm com o STS, examinando as visualizações disponíveis nos menuswindow,show vieweSpring respectivamente.
O STS também oferece outros recursos úteis adicionais que não se limitam apenas aos aplicativos Spring. Recomenda-se ao leitor que dê uma olhada na lista completa de recursos que podem ser encontradoshere.
3. Criação de um aplicativo Spring
Vamos começar iniciando um aplicativo simples. Sem o STS, um aplicativo Spring é geralmente criado usando o siteSpring Initializer ouSpring Boot CLI. Isso pode ser simplificado clicando emCreate Spring Starter Project no seu painel no STS.
Na telaNew Spring Starter Project, use os padrões ou faça seus próprios ajustes e vá para a próxima tela. SelecioneWebe clique em Concluir. Seupom.xml agora deve ser semelhante a este:
org.springframework.boot
spring-boot-starter-parent
1.3.6.RELEASE
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
Sua versão do Spring Boot pode ser diferente, mas a versão mais recente pode sempre ser encontradahere.
4. Executando o aplicativo
O aplicativo mencionado pode ser iniciado clicando com o botão direito do mouse no projeto e selecionando executar comoSpring Boot App. Sem o STS, você provavelmente executará o aplicativo na linha de comando com o seguinte comando:
$ mvn spring-boot:run
Por padrão, os aplicativos Spring são iniciados com o Tomcat em execução na porta 8080. Nesse ponto, o aplicativo inicia na porta 8080 e basicamente não faz mais nada, pois ainda não implementamos nenhum código. A seção 8 mostra como alterar a porta padrão.
5. Log e console ANSI
Ao executar o projeto a partir do IDE usando o comando run, você notará que o console produz algumas instruções de logcolor-coded legais. Caso queira desligá-lo, vá atérun configurations… e desative a caixa de seleçãoEnable ANSI console output na guiaSpring Boot. Alternativamente, você também pode desabilitá-lo definindo um valor de propriedades no arquivoapplication.properties.
spring.output.ansi.enabled=NEVER
Mais informações sobre a configuração dos logs do seu aplicativo podem ser encontradashere.
6. Verificações de nome de consulta JPA
Às vezes, implementar uma camada de acesso a dados pode ser uma atividade complicada. Pode ser necessário escrever um monte de código padrão para realizar consultas simples e realizar paginação. Spring Data JPA (JPA) visa facilitar significativamente essa implementação de camadas de acesso a dados. Esta seção ilustra alguns dos benefícios do uso da JPA em conjunto com o STS.
Para começar, adicione a seguinte dependência para JPA aospom.xml gerados anteriormente:
org.springframework.boot
spring-boot-starter-data-jpa
com.h2database
h2
Você deve ter notado queversion não foi especificado na declaração acima. Isso se deve ao fato de que as dependências são gerenciadas a partir do paipom.xml:
org.springframework.boot
spring-boot-starter-parent
1.3.6.RELEASE
Para fazer o JPA funcionar, é necessário que você defina adequadamente os gerentes de entidade e de transação. No entanto, o Spring os configura automaticamente para você. A única coisa que resta ao desenvolvedor é criar as classes de entidade reais. Essas entidades são gerenciadas pelo gerente da entidade, que por sua vez é criada pelo contêiner. Vamos, por exemplo, criar uma classe de entidadeFoo assim:
@Entity
public class Foo implements Serializable {
@Id
@GeneratedValue
private Integer id;
private String name;
// Standard getters and setters
}
O contêiner verifica todas as classes anotadas com@Entity da raiz do pacote de configuração. Em seguida, criamos um repositório JPA para a entidadeFoo:
public interface FooRepository extends JpaRepository {
public Foo findByNames(String name);
}
Neste ponto, você já deve ter notado que o IDE agora sinaliza esse método de consulta com uma exceção:
Invalid derived query! No property names found for type Foo!
Isso se deve, é claro, ao fato de termos escrito um 's' acidentalmente no nome do método do repositório JPA. Para corrigir isso, remova os espúrios como se segue:
public Foo findByName(String name);
Observe que nenhum@EnableJpaRepositories foi usado na classe de configuração. Isso ocorre porque oAutoConfigration do contêiner pré-registra um para o projeto.
7. Pesquisa de tipo de jarra
“Jar Type Search” é um recurso que foi introduzido emSTS 3.5.0. Ele fornece propostas assistidas por conteúdo em projetos para classes que ainda não estão no caminho de classe. O STS pode ajudá-lo a adicionar dependências ao seu arquivo POM, caso ainda não estejam no caminho de classe.
Por exemplo, vamos adicionar uma linha à classe de entidadeFoo. Para que este exemplo funcione corretamente, certifique-se primeiro de que a instrução de importação parajava.util.List já está presente. Agora podemos adicionar o Google Guava da seguinte maneira:
private List strings = Lists // ctrl + SPACE to get code completion
O IDE sugerirá várias dependências a serem adicionadas ao caminho de classe. Adicione a dependência decom.google.common.collect, ** pressione return e adicione a dependência deGuava. O frasco de Guava agora será adicionado automaticamente ao arquivopom.xml assim:
com.google.guava
guava
19.0
Na versãoSTS 3.8.0, você obtém uma caixa de diálogo de confirmação antes que o STS faça as alterações em seupom.xml.
8. Adicionando Argumentos do Aplicativo
Um dos outros recursos poderosos do Spring é o suporte a configurações externas que podem ser passadas para um aplicativo de várias maneiras, por exemplo, como argumentos da linha de comandos, especificados em propriedades ou arquivos YAML ou como propriedades do sistema. Nesta seção, vamos nos concentrar em adicionar uma opção de configuração como argumento de início do aplicativo usando o STS. Isso é ilustrado pela configuração do Tomcat para iniciar em uma porta diferente.
Para executar um aplicativo em uma porta Tomcat diferente da padrão, você pode usar o comando abaixo, em que uma porta personalizada é especificada como argumento da linha de comando:
mvn spring-boot:run -Drun.arguments="--server.port=7070"
Ao usar o STS, você deve ir ao menurun. Selecionerun configurations… na caixa de diálogo Configurações de execução, selecioneSpring Boot App no painel esquerdo e selecionedemo – DemoApplication (será diferente se você não selecionou o projeto padrão). Da guia(x)= Arguments digite na janelaProgram Arguments
--server.port=7070
erun. Você deve ver uma saída em seu console semelhante à saída mostrada abaixo:
.
.
2016-07-06 13:51:40.999 INFO 8724 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 7070 (http)
2016-07-06 13:51:41.006 INFO 8724 --- [ main] com.example.boot.DemoApplication : Started DemoApplication in 6.245 seconds (JVM running for 7.34)
9. Conclusão
Neste artigo, mostramos o básico do desenvolvimento de um projeto Spring no STS. Algumas das coisas que mostramos são a execução de aplicativos no STS, suporte durante o desenvolvimento do Spring Data JPA e o uso de argumentos da linha de comando. No entanto, existem muitos recursos mais úteis que podem ser empregados durante o desenvolvimento, pois o STS oferece um rico conjunto de recursos.
Ofull implementation deste artigo pode ser encontrado emgithub project - este é um projeto baseado em Eclipse, portanto, deve ser fácil de importar e executar como está.