Após a introdução do artigo anterior, acredito que meus amigos não podem mais ajudar, a não ser ansiar pelo Springboot. 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. OK, vamos começar nossa introdução ao conteúdo de 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 =/Springboot1
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 a mesma configuração é configurada no 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 exposto acima é o uso das notas de armadilha das malhas das armadilhas de troca introduzidas a você. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!