Introdução à bota da primavera
A bota da primavera é uma estrutura muito popular recentemente, uma estrutura aprimorada na estrutura da primavera. O objetivo dessa estrutura é aumentar a velocidade dos desenvolvedores, reduzir a dificuldade de configuração etc., o que simplifica bastante o processo de desenvolvimento. Para instruções detalhadas, consulte a documentação oficial. No trabalho diário, existem muito poucas oportunidades para construir um ambiente ou estrutura, e a maioria deles é desenvolvida na base original. Portanto, quando você é solicitado a construir uma estrutura simples, várias dificuldades surgirão. Por exemplo, quando eu estava construindo um servidor, preparei uma pequena demonstração. Eu pensei que era muito simples, mas encontrei vários problemas. Descobri que os blogs na internet estavam falando sobre alguns pontos de maneira dispersa, e era difícil ter um processo completo, incluindo os problemas que poderiam ser encontrados. Aqui está um resumo detalhado do processo de construção de um projeto simples para referência futura. Ao mesmo tempo, este blog também é uma preparação básica para o próximo blog Tengine Reverse Proxy Server Construction.
Duas vantagens do Spring-Boot:
1. O conceito de "prioridade da convenção sobre a configuração (COC)" com base na estrutura da mola e no caminho das melhores práticas.
2. Para aplicações corporativas diárias, o Spring-Boot-Starter configura automaticamente o módulo de dependência e está "fora da caixa" (convencional da Spring-Boot-Starter-, conforme o prefixo de nomeação está localizado no pacote org.springframenwork.boot pacote ou namespace).
Neste artigo, continuarei introduzindo a configuração do arquivo de configuração do Springboot para meus amigos. Como usar os parâmetros de configuração global, então vamos iniciar nossa introdução hoje.
Sabemos que a Spring Boot suporta configuração automática de contêineres, e o padrão é o tomcat, é claro que também podemos modificá -lo:
1. Primeiro, excluímos o Tomcat na dependência da Spring-Boot-Starter-Web: exclua o inicial do Tomcat no arquivo POM
<Depencency> <PuerpId> org.springframework.boot </frupid> <TRATIFACTID> Spring-boot-starter-web </artifactId> <clusions> <cclusion> <prulhiD> org.springframework.boot </groupId> <Artifactid> Spring-Boot Starter-TOMCATWORK.BOOT </GRUPIDID>
2. Adicione ao recipiente de cais
<Depencency> <voupid> org.springframework.boot </frugiD> <TRATIFACTID> Spring-boot-starter-jetty </stutifactId> </dependency>
Dessa forma, nosso recipiente de trampolim será modificado em um contêiner de cais.
Para facilitar nossa depuração, aqui está uma ferramenta de depuração HTTP para você: Postman
Vamos falar sobre o arquivo de configuração global do Springboot: Application.properties
No desenvolvimento, devemos ter encontrado esse requisito, que é modificar nossa porta de acesso ao contêiner. Como o Springboot carrega o contêiner por padrão, as configurações da porta são obviamente controladas por meio de arquivos de configuração, o que é bastante conveniente. Precisamos adicioná -lo apenas no arquivo de configuração:
Server.port = 6666
Dessa forma, nossa porta de contêiner será modificada para 6666.
Também podemos definir alias de acesso ao projeto através de arquivos de configuração:
Server.Context-path =/Springboot
Dessa forma, podemos iniciar o projeto e acessar nosso projeto através de http: // localhost: 6666/springboot1
O exposto acima é apenas a ponta do iceberg da configuração de arquivo de configuração de troca. Por exemplo, também podemos configurar a configuração de conexão do banco de dados, configurar a configuração do ambiente de desenvolvimento, implantar a configuração do ambiente e obter uma alternância contínua entre os dois.
Vamos aprender sobre o uso do controlador do Springboot. O Springboot nos fornece três anotações:
No artigo anterior, usamos @restcontroller. Vamos tentar usar o @Controller juntos:
@Controller // @ResponseBodyPublic Classe RequestTest {/*** Nenhuma restrição no método de solicitação* @return*/@requestMapping (value = "/req") public string req () {return "success"; }}Quando entramos http: // localhost: 8080/springboot1/req para entrar no navegador, encontramos 404
{"Timestamp": 1515332935215, "Status": 404, "Error": "Nenhuma mensagem disponível", "caminho": "/Springboot1/req"}Por que isso? Isso ocorre porque o @Controller deve ser usado com o modelo, então abrimos o arquivo Maven POM e adicionamos o modelo de Springboot:
<!-modelo de troca-> <pendency> <voundiD> org.springframework.boot </groupiD> <TRAFACTID> Spring-boot-starter-tymeleaf
Em seguida, encontre modelos no diretório de recursos do nosso projeto (se não, crie um novo, mas não se esqueça de observar que o nome da pasta deve ser consistente) e, em seguida, crie um sucesso.html para iniciar o projeto novamente e acessar o endereço agora, está tudo bem?
No entanto, deve-se notar aqui que o atual desenvolvimento de nível corporativo é separado das extremidades dianteiras e traseiras. Quando fazemos serviços de back-end, precisamos apenas retornar os dados correspondentes. Obviamente, há outra desvantagem no uso de modelos, ou seja, o desempenho causará certas perdas, para que todos possam entender brevemente aqui.
Conforme mencionado na introdução acima, o @controlador+ @ResponseBody é equivalente a @restcontroller, por isso é recomendável que você use o @restcontroller aqui.
Vamos apresentar @RequestMapping (value = "/req"). Eu acredito que todos já conhecem seu uso. Obviamente, essa anotação pode não apenas ser usada em métodos, mas também se aplica às classes.
@Restcontroller //@controller //@ResponseBody@requestMapp (value = "/test") public class RequestTest {/*** Nenhuma restrição no método de solicitação* @return*/@requestMapping (value = "/req") public string req () {return "succcess";; }/** * O método de solicitação restrito é * @return */@requestMapping (value = "/req1", métod = requestMethod.get) public string req1 () {return "succcess"; }/** * O método da solicitação de restrição é post * @return */@requestMapping (value = "/req2", métod = requestmethod.post) public string req2 () {return "success"; }}Acredito que, quando você vê esse método, já deve saber sua utilidade. É um tipo de acesso especificado e pode ser acessado de alguma forma sem definir o padrão. Não sei se pensei que, se o método for definido na classe @RequestMapping, o método da classe será herdado por padrão. Obviamente, você também pode defini -lo separadamente no método. Por favor, tente a questão da prioridade.
Abaixo, apresentarei a você como acessar constantes em arquivos de configuração no controlador. Primeiro, adicionamos o arquivo de configuração:
nome = hpugsage = 35content = nome: $ {nome}; idade: $ {idade}Usamos constantes em arquivos de configuração, que são usados por $ {}.
Abaixo, injetamos parâmetros no controlador:
// Injetar parâmetros no arquivo de configuração @Value ("$ {name}") nome da string privada; @Value ("$ {Age}") Idade do número inteiro privado; @Value ("$ {Content}") Private String Content; @RequestMapping (value = "/req3", método = requestMethod.get) public string req3 () {return "name =" + name; } @RequestMapping (value = "/req4", método = requestMethod.get) public string req4 () {return "Age =" + Age; } @ReQuestMapping (value = "/req5", método = requestMethod.get) public string req5 () {return "content =" + content; }Comece nosso projeto e tente visitá -lo.
Se você se sentir insatisfeito com esse uso, aqui está outro truque: usamos arquivos de configuração de mapeamento de classe e usamos classes para usar parâmetros. É mais conveniente do que injetar um único parâmetro. Primeiro, crie uma aula de java
@Componente@ConfigurationProperties (prefix = "userInfo") public class UserInfo {private String nomes; idade inteira privada; conteúdo privado de string; public integer getage () {Age de retorno; } public string getNames () {retorna nomes; } public void SetNames (nomes da string) {this.names = names; } public void setage (idade inteira) {this.age = Age; } public string getContent () {return content; } public void setContent (String content) {this.content = content; }}Em seguida, defina os parâmetros em nosso arquivo de configuração:
userInfo.names = Little Broken Child Userinfo.age = 25Userinfo.content = Nome: $ {userinfo.names}; idade: $ {userinfo.age}Fiação para fazer nosso controlador:
// injetar objeto @AUTOWIRED UserInfo userInfo; @RequestMapping (value = "/req6", método = requestMethod.get, produz = "text/plana; charset = utf-8") public string req6 () {return "name =" + userInfo.getNames (); } @ReQuestMapping (value = "/req7", método = requestMethod.get) public string req7 () {return "Age =" + userInfo.getage (); } @ReQuestMapping (value = "/req7", método = requestMethod.get) public string req7 () {return "Age =" + userInfo.getage (); } @ReQuestMapping (value = "/req8", método = requestMethod.get) public string req8 () {return "content =" + userInfo.getContent (); }Ok, tente reiniciar nossa visita ao projeto.
Amigos, você não sabe se você encontra esse problema? Há um código chinês iluminado. Primeiro de tudo, não se preocupe. Vejamos outro arquivo de configuração do Springboot: Application.yml. Este arquivo de configuração substitui ";" por novos espaços. Vamos dar uma olhada em como configurar a mesma configuração em YML:
Servidor: Porta: 8888 contexto: /SpringBoot1Name: HPUGSAGE: 35 Content: Nome: $ {Nome}; Age: $ {Age} Userinfo: Nomes: Little Kid Idade: 25 Conteúdo: Nome: $ {userinfo.names}; idade: $ {userinfo.age}}}Agora vamos iniciar o projeto e experimentar.
Voltando à pergunta ilegal acima, não há iluminado quando usamos o YML? Você está um pouco deprimido? Por que isso? Isso ocorre porque o arquivo .Properties usa o formulário de codificação Unicode, portanto, o código ilegal aparecerá quando entrarmos em chinês. Obviamente, há outro motivo para o código ilegal, ou seja, as configurações de codificação que eu posso ser inconsistente com o front-end. Adicionamos isso ao arquivo de configuração:
Primavera: http: codificação: força: true charset: utf-8 habilitado: trueserver: tomcat: uri-codificação: utf-8
para controlar. Aqui estão algumas dicas de desenvolvimento. O Springboot nos fornece soluções para diferentes arquivos de configuração em diferentes ambientes de desenvolvimento:
#yml Format Spring: Perfis: Ativo: Prod#.Properties Format Spring.Profiles.Active = Dev
Resumir
O acima é o tutorial sobre o uso do arquivo de configuração Spring-Boot-Starter-Web que o editor apresentou sobre as armadilhas encontradas no desenvolvimento da inicialização da primavera. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!