Perguntas da entrevista do Spring Boot
1. O que é Spring Boot?
O Spring tornou-se mais complexo ao longo dos anos à medida que novos recursos são adicionados. Basta visitar a página e veremos os diferentes recursos de todos os projetos Spring que podem ser usados em nosso aplicativo. Se tivermos que iniciar um novo projeto Spring, temos que adicionar o caminho de construção ou adicionar dependências do maven, configurar o servidor de aplicativos, adicionar a configuração do spring. Portanto, iniciar um novo projeto de primavera exige muito esforço, pois agora temos que fazer tudo do zero.
Spring Boot é a solução para este problema. O Spring Boot foi construído sobre a estrutura de mola existente. Com o spring boot, evitamos todo o código clichê e a configuração que tínhamos que fazer antes. Portanto, o Spring Boot pode nos ajudar a usar os recursos existentes do Spring de forma mais robusta com o mínimo de esforço
2. Por que usar SpringBoot
O Spring Boot tem muitas vantagens, como:
1. Operação independente
O Spring Boot também incorpora vários contêineres de servlet, Tomcat, Jetty, etc. Agora ele não precisa mais ser empacotado como um pacote war e implantado no contêiner. todos os pacotes dependentes estão em um pacote jar.
2. Configuração simplificada
O spring-boot-starter-web starter depende automaticamente de outros componentes, reduzindo a configuração do maven.
3. Configuração automática
O Spring Boot pode configurar beans automaticamente de acordo com as classes e pacotes jar no classpath atual.Por exemplo, adicionar um iniciador spring-boot-starter-web pode ter funções da web sem outra configuração.
Quarto, sem geração de código e configuração XML
Não há geração de código no processo de configuração do Spring Boot e todo o trabalho de configuração pode ser concluído sem arquivos de configuração XML, tudo isso é feito com a ajuda de anotações condicionais, que também é uma das principais funções do Spring 4.x.
5. Monitoramento de aplicativos
O Spring Boot fornece uma série de endpoints para monitorar serviços e aplicativos e fazer verificações de integridade
3. Quais são as vantagens do Spring Boot?
As vantagens do Spring Boot são:
-
1. Reduza o tempo de desenvolvimento, teste e esforço.
-
2. Use JavaConfig para ajudar a evitar o uso de XML.
-
3. Evite um grande número de importações do Maven e vários conflitos de versão.
-
4. Fornecer conselhos sobre métodos de desenvolvimento.
-
5. Inicie o desenvolvimento rapidamente fornecendo valores padrão.
-
6. Não é necessário nenhum servidor web separado. Isso significa que você não precisa mais iniciar o Tomcat, Glassfish ou qualquer outra coisa.
-
7. Menos configuração é necessária porque não há arquivo web.xml. Basta adicionar a classe anotada com @Configuration, depois adicionar o método anotado com @Bean, e o Spring carregará automaticamente o objeto e o gerenciará como antes. Você pode até adicionar @Autowired a um método bean para que o Spring autowire as dependências necessárias.
-
8. Configuração baseada em ambiente Usando essas propriedades, você pode passar o ambiente que está usando para o aplicativo: -Dspring.profiles.active={enviornment}. Após carregar o arquivo de propriedades do aplicativo principal, o Spring carregará os arquivos de propriedades do aplicativo subsequentes em (application{environment}.properties).
4. Qual é a anotação principal do Spring Boot? De quais anotações ele é composto principalmente?
A anotação na classe de inicialização é @SpringBootApplication, que também é a anotação principal do Spring Boot. A combinação principal inclui as três anotações a seguir:
@SpringBootConfiguration: Combina a anotação @Configuration para implementar a função do arquivo de configuração. @EnableAutoConfiguration: ative a função de configuração automática ou desative uma opção de configuração automática, como desativar a função de configuração automática da fonte de dados: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }).
@ComponentScan: verificação do componente Spring
5. Quais são as maneiras de executar o Spring Boot
1) Empacote o comando ou coloque-o no container para rodar 2) Use o plugin Maven/Gradle para rodar 3) Execute diretamente o método main para rodar
6. Como entender Starters no Spring Boot?
O que são Iniciais:
Starters podem ser entendidos como starters, que contêm uma série de pacotes de dependência que podem ser integrados ao aplicativo.Você pode integrar Spring e outras tecnologias em uma parada sem procurar código de amostra e pacotes de dependência em todos os lugares. Se você quiser usar o Spring JPA para acessar o banco de dados, basta adicionar a
dependência inicial springboot-starter-data-jpa e você pode usá-lo. Starters contêm muitas dependências que são necessárias no projeto, eles podem ser executados de forma rápida e contínua e são um conjunto de dependências transitivas de gerenciamento com suporte.
Iniciantes nomeados:
Os starters oficiais do Spring Boot são denominados spring-boot-starter- e representam um tipo de aplicativo específico. Iniciadores de terceiros não podem iniciar com spring-boot, eles são oficialmente reservados pelo Spring Boot. Geralmente um terceiro deve ser nomeado assim, como mybatis
-spring-boot-starter de mybatis.
Categoria inicial:
1. Iniciador de classe de aplicativo Spring Boot
2. Iniciador de produção do Spring Boot
.outros lançadores de terceiros
7. Como executar algum código específico quando o Spring Boot é iniciado?
Se você deseja executar algum código específico quando o Spring Boot for iniciado, você pode implementar a interface ApplicationRunner ou CommandLineRunner. Essas duas interfaces são implementadas da mesma maneira e fornecem apenas um método run. CommandLineRunner: comece a obter parâmetros de linha de comando
8. O Spring Boot precisa de um container separado para ser executado?
Não há necessidade, contêineres integrados, como Tomcat/Jetty
9. O que é um monitor no Spring Boot?
O atuador de inicialização por mola é uma das funções importantes na estrutura de inicialização por mola. Os monitores de inicialização Spring ajudam você a acessar o estado atual dos aplicativos em execução na produção. Existem várias métricas que devem ser verificadas e monitoradas em um ambiente de produção. Mesmo alguns aplicativos externos podem estar usando esses serviços para acionar mensagens de alerta para o pessoal relevante. O módulo monitor expõe um conjunto de terminais REST diretamente acessíveis como URLs HTTP para verificar o status
10. Como usar o Spring Boot para implementar o tratamento de exceções?
O Spring fornece uma maneira muito útil de lidar com exceções usando ControllerAdvice. Lidamos com todas as exceções lançadas pela classe controladora implementando uma classe ControlerAdvice
11. Como você entende Starters no Spring Boot
Starters podem ser entendidos como starters, que contêm uma série de pacotes de dependência que podem ser integrados ao aplicativo.Você pode integrar Spring e outras tecnologias em uma parada sem procurar código de amostra e pacotes de dependência em todos os lugares. Se você quiser usar o Spring JPA para acessar o banco de dados, basta adicionar a
dependência inicial spring-boot-starter-data-jpa e você pode usá-lo
12. Quais são os iniciadores de springboot mais usados
Spring-boot-starter-web incorporado tomcat e desenvolvimento web requer suporte a servlet e jsp
suporte a banco de dados spring-boot-starter-data-jpa suporte a banco de dados spring-boot-starter-data-redis suporte a solr spring-boot-starter-data-solr
mybatis-spring-boot-starter iniciador de integração de terceiros mybatis
13. Quais são as maneiras de o SpringBoot realizar a implantação a quente
Existem duas maneiras principais: Spring
Loaded Spring-boot-devtools
14. Como entender a ordem de carregamento da configuração do Spring Boot
No Spring Boot, a configuração pode ser carregada das seguintes maneiras. 1) arquivo de propriedades;
2) Arquivos YAML 3) Variáveis de ambiente do sistema;
4) Argumentos de linha de comando; etc...
Bem-vindo ao intercâmbio de desenvolvimento de arquitetura Java: 857710406, mais perguntas de entrevista e vídeos avançados são distribuídos gratuitamente!
15. Quais são os principais arquivos de configuração do Spring Boot? Qual é a diferença deles?
Os arquivos de configuração principais do Spring Boot são os arquivos de configuração do aplicativo e do bootstrap. O arquivo de configuração do aplicativo é fácil de entender e é usado principalmente para configuração automática de projetos Spring Boot. O arquivo de configuração de bootstrap tem os seguintes cenários de aplicação.
.Ao usar o centro de configuração do Spring Cloud Config, você precisa adicionar propriedades de configuração conectadas ao centro de configuração no arquivo de configuração de bootstrap para carregar as informações de configuração do centro de configuração externo;
.Algumas propriedades fixas que não podem ser substituídas;
.Alguns cenários de criptografia/descriptografia
16. Como integrar Spring Boot e ActiveMQ
Para integrar Spring Boot e ActiveMQ, usamos a
dependência spring-boot-starter-activemq. Requer muito pouca configuração e não requer código clichê
17. O que é JavaConfig?
Spring JavaConfig é um produto da comunidade Spring que fornece uma abordagem Java pura para configurar o contêiner Spring IoC. Portanto, ajuda a evitar a configuração XML. As vantagens de usar JavaConfig são:
1. Configuração orientada a objetos. Como as configurações são definidas como classes em JavaConfig, os usuários podem aproveitar ao máximo os recursos orientados a objetos em Java. Uma classe de configuração pode herdar de outra, substituir seus métodos @Bean, etc.
2. Reduza ou elimine a configuração XML. Os benefícios da configuração externalizada com base nos princípios de injeção de dependência foram demonstrados. No entanto, muitos desenvolvedores não querem alternar entre XML e Java. JavaConfig fornece aos desenvolvedores um método Java puro para configurar contêineres Spring com um conceito semelhante à configuração XML. Tecnicamente falando, é possível configurar o container usando apenas as classes de configuração JavaConfig, mas na prática muitas pessoas pensam que misturar e combinar JavaConfig com XML é o ideal.
3. Tipo de segurança e refatoração amigável. JavaConfig fornece uma maneira segura de tipo para configurar o contêiner Spring. Graças ao suporte do Java 5.0 para genéricos, os beans agora podem ser recuperados por tipo em vez de por nome, sem qualquer conversão ou pesquisa baseada em string.
18. Como recarregar as alterações no Spring Boot sem reiniciar o servidor?
Isso pode ser feito usando ferramentas DEV. Com essa dependência, você pode salvar qualquer alteração e o tomcat incorporado será reiniciado. O Spring Boot possui um módulo Development Tools (DevTools), que ajuda a melhorar a produtividade do desenvolvedor. Um grande desafio para os desenvolvedores Java é implantar automaticamente as alterações de arquivo no servidor e reiniciar o servidor automaticamente. Os desenvolvedores podem recarregar as alterações no Spring Boot sem reiniciar o servidor. Isso eliminará a necessidade de implantar manualmente as alterações a cada vez. O Spring Boot não tinha esse recurso quando lançou sua primeira versão. Este é o recurso mais solicitado para desenvolvedores. Os módulos do DevTools atendem totalmente às necessidades dos desenvolvedores. Este módulo será desabilitado no ambiente de produção. Ele também fornece console de banco de dados H2 para testar melhor o aplicativo.
org.springframework.boot spring-boot-devtools true19. O que é um monitor no Spring Boot?
O atuador de inicialização por mola é uma das funções importantes na estrutura de inicialização por mola. Os monitores de inicialização Spring ajudam você a acessar o estado atual dos aplicativos em execução na produção. Existem várias métricas que devem ser verificadas e monitoradas em um ambiente de produção. Mesmo alguns aplicativos externos podem estar usando esses serviços para acionar mensagens de alerta para o pessoal relevante. O módulo do monitor expõe um conjunto de terminais REST acessíveis diretamente como URLs HTTP para verificar o status.
20. Como desabilitar a segurança do endpoint Actuator no Spring Boot?
Todos os endpoints HTTP sensíveis são seguros por padrão e somente usuários com a função ACTUATOR podem acessá-los. A segurança é
implementada usando o método HttpServletRequest.isUserInRole padrão. Podemos usar para desativar a segurança. A desativação da segurança só é recomendada se o endpoint do atuador for acessado por trás de um firewall.
21. Como executar o aplicativo Spring Boot na porta personalizada?
Para executar um aplicativo Spring Boot em uma porta personalizada, você pode especificar a porta em application.properties.
server.port=8090
22. O que é YAML?
YAML é uma linguagem de serialização de dados legível por humanos. Geralmente é usado para arquivos de configuração.
Comparados aos arquivos de propriedades, os arquivos YAML são mais estruturados e menos confusos se quisermos adicionar propriedades complexas aos arquivos de configuração. Pode-se ver que YAML possui dados de configuração hierárquica.
23. Como implementar a segurança do aplicativo Spring Boot?
Para implementar a segurança do Spring Boot, usamos a
dependência spring-boot-starter-security e precisamos adicionar a configuração de segurança. Requer muito pouco código. A classe de configuração terá que estender WebSecurityConfigurerAdapter e substituir seus métodos.
24. Como integrar Spring Boot e ActiveMQ?
Para integrar Spring Boot e ActiveMQ, usamos
dependências. Requer muito pouca configuração e não requer código clichê.
25. Como implementar paginação e classificação usando Spring Boot?
Implementar paginação com Spring Boot é muito simples. A passagem de um método paginável para um repositório é possível usando Spring Data-JPA.
26. O que é Swagger? Você implementou com Spring Boot?
O Swagger é amplamente usado para visualizar APIs, usando a interface do usuário do Swagger para fornecer um sandbox online para desenvolvedores front-end. Swagger é uma ferramenta, especificação e implementação de framework completa para geração de representações visuais de web services RESTful. Permite que os documentos sejam atualizados na mesma velocidade que o servidor. Quando definido corretamente via Swagger, os consumidores podem usar uma quantidade mínima de lógica de implementação
para entender e interagir com serviços remotos. Assim, o Swagger elimina a adivinhação dos serviços de chamada.
27. O que são perfis de primavera?
Os perfis Spring permitem que os usuários registrem beans com base em arquivos de configuração (dev, test, prod, etc.). Assim, quando a aplicação está rodando em desenvolvimento, apenas alguns beans podem ser carregados, enquanto em PRODUÇÃO alguns outros beans podem ser carregados. Digamos que nosso requisito é que a documentação do Swagger seja apenas para ambientes de controle de qualidade e que todas as outras documentações estejam desabilitadas. Isso pode ser feito usando arquivos de configuração. O Spring Boot torna o trabalho com arquivos de configuração muito simples.
28. O que é o Spring Batch?
O Spring Boot Batch fornece funções reutilizáveis que são importantes ao lidar com um grande número de registros, incluindo log/rastreamento, gerenciamento de transações, estatísticas de processamento de tarefas, reinicializações de tarefas, omissões e gerenciamento de recursos. Ele também fornece serviços e funções técnicas mais avançadas, permitindo lotes extremamente altos e trabalhos em lote de alto desempenho por meio de técnicas de otimização e particionamento. Trabalhos em lote de alto volume simples e complexos podem utilizar a estrutura para processar quantidades significativas de informações de maneira altamente escalável.
29. O que é um modelo FreeMarker?
O FreeMarker é um mecanismo de modelo baseado em Java inicialmente focado na geração dinâmica de páginas da Web usando a arquitetura de software MVC. A principal vantagem de usar o Freemarker é a separação completa das camadas de apresentação e de negócios. Os programadores podem lidar com o código do aplicativo enquanto os designers podem lidar com o design da página html. Finalmente, usando o freemarker, eles podem ser combinados para fornecer a página de saída final.
30. Como usar o Spring Boot para implementar o tratamento de exceções?
O Spring fornece uma maneira muito útil de lidar com exceções usando ControllerAdvice. Lidamos com todas as exceções lançadas pela classe controladora implementando uma classe ControlerAdvice.
31. Quais dependências iniciais do maven você usa?
Algumas das dependências abaixo são usadas
spring-boot-starter-activemq
spring-boot-starter-security
Isso ajuda a adicionar menos dependências e reduzir os conflitos de versão.
32. O que é ataque CSRF?
CSRF significa Cross Site Request Forgery. Este é um ataque que força os usuários finais a realizar ações indesejadas em aplicativos da Web atualmente autenticados. Os ataques CSRF visam especificamente solicitações de mudança de estado, não roubo de dados, porque o invasor não pode visualizar a resposta a uma solicitação forjada.
Isso ajuda a adicionar menos dependências e reduzir os conflitos de versão.
33. O que é WebSockets?
WebSocket é um protocolo de comunicação de computador que fornece um canal de comunicação full-duplex em uma única conexão TCP.
-
1. O WebSocket é bidirecional - usando o cliente ou servidor WebSocket pode iniciar o envio de mensagens.
-
2. O WebSocket é full duplex - a comunicação entre cliente e servidor é independente uma da outra.
-
3. Uma única conexão TCP - a conexão inicial usa HTTP, então essa conexão é atualizada para uma conexão baseada em soquete. Esta conexão única é então usada para todas as comunicações futuras
-
4. Leve - Comparado ao http, a troca de dados de mensagens do WebSocket é muito mais leve.
34. O que é AOP?
No processo de desenvolvimento de software, as funções que abrangem vários pontos em um aplicativo são chamadas de problemas transversais. Esses problemas transversais não são os mesmos que a principal lógica de negócios do aplicativo. Portanto, separar essas preocupações transversais da lógica de negócios é onde entra a Programação Orientada a Aspectos (AOP).
35. O que é Apache Kafka?
Apache Kafka é um sistema de mensagens de publicação-assinatura distribuído. É um sistema de mensagens de publicação-assinatura escalável e tolerante a falhas que nos permite criar aplicativos distribuídos. Este é um projeto de nível superior do Apache. Kafka é adequado para consumo de mensagens offline e online.
36. Como podemos monitorar todos os microsserviços do Spring Boot?
O Spring Boot fornece endpoints de monitor para monitorar métricas de microsserviços individuais. Esses endpoints são úteis para obter informações sobre aplicativos (como se eles estão ativos) e se seus componentes (como bancos de dados etc.) estão funcionando corretamente. No entanto, uma grande desvantagem ou dificuldade de usar o monitor é que temos que abrir o ponto de conhecimento do aplicativo individualmente para saber seu estado ou integridade. Imagine um microsserviço envolvendo 50 aplicativos, o administrador teria que acessar o terminal de execução para todos os 50 aplicativos. Para nos ajudar a lidar com essa situação, usaremos o projeto de código aberto em . Ele é construído em cima do Spring Boot Actuator, que fornece uma interface do usuário da web que nos permite visualizar métricas para vários aplicativos.
37. Quais são os formatos dos arquivos de configuração do Spring Boot? Qual é a diferença entre eles?
.properties e .yml, a principal diferença entre eles é o formato de escrita diferente. 1).propriedades
app.user.name=javastack
2).yml
app:
usuário:
nome:javastack
Além disso, o formato .yml não oferece suporte à anotação @PropertySource para importar a configuração.
38. Quais são as maneiras de ativar os recursos do Spring Boot?
1) Herdar o
projeto spring-boot-starter-parent 2) Importar as dependências do projeto spring-boot-dependencies
39. Qual é a estrutura de diretórios do Spring Boot?
cn
±javastack
±MyApplication.java|
±Customer.java
±CustomerController.java±CustomerService.java±CustomerRepository.java
±order
±Order.java
±OrderController.java±OrderService.java±OrderRepository.java
Essa estrutura de diretório é a prática principal e recomendada, e a anotação @SpringBootApplication é adicionada à classe de entrada principal para habilitar vários recursos do Spring Boot, como configuração automática, verificação de componentes etc.
40. Quais são as formas de executar o Spring Boot?
1) Empacote o comando ou coloque-o no container para rodar 2) Use o plugin Maven/Gradle para rodar 3) Execute diretamente o método main para rodar
41. Qual é o princípio da configuração automática do Spring Boot?
As anotações @EnableAutoConfiguration, @Configuration e @ConditionalOnClass são o núcleo da configuração automática. Primeiro, deve ser um arquivo de configuração e, segundo, é configurado automaticamente de acordo com a existência dessa classe no classpath.
42. Como executar algum código específico quando o Spring Boot é iniciado?
Você pode implementar a interface ApplicationRunner ou CommandLineRunner. Essas duas interfaces são implementadas da mesma maneira e ambas fornecem apenas um método de execução.
43. De quantas maneiras o Spring Boot tem para ler a configuração?
O Spring Boot pode vincular variáveis por meio de @PropertySource, @Value, @Environment, @ConfigurationProperties
44. Quais estruturas de log o Spring Boot suporta? Qual é a estrutura de registro padrão e recomendada?
O Spring Boot suporta Java Util Logging, Log4j2, Lockback como estrutura de log, se você usar o Starters starter, o Spring Boot usará o Logback como estrutura de log padrão
45. Como o Spring Boot define vários conjuntos de diferentes configurações de ambiente?
Forneça vários conjuntos de arquivos de configuração, como:
applcation.properties
application-dev.properties
application-test.properties
application-prod.properties
Especificar um arquivo de configuração específico em tempo de execução
46. O Spring Boot é compatível com projetos antigos do Spring e como?
Para compatibilidade, use a anotação @ImportResource para importar o arquivo de configuração do projeto Spring antigo.
47. Quais são as formas de proteger os aplicativos Spring Boot?
Usar HTTPS em produção
Use o Snyk para verificar suas dependências e atualizar para a versão mais recente
Ativar proteção CSRF
Evite ataques XSS com políticas de segurança de conteúdo…
48. Quais são os novos recursos do Spring Boot 2.X? Qual é a diferença com 1.X?
Alterações de configuração
Atualização da versão do JDK
Atualização da biblioteca de classes de terceiros
Programação reativa do Spring com suporte a HTTP/2
Mais melhorias e aprimoramentos nas associações de propriedades de configuração…
49. Como recarregar as alterações no Spring Boot sem reiniciar o servidor?
Isso pode ser feito usando ferramentas DEV. Com essa dependência, você pode salvar qualquer alteração e o tomcat incorporado será reiniciado.
O Spring Boot possui um módulo Development Tools (DevTools), que ajuda a melhorar a produtividade do desenvolvedor. Um grande desafio para os desenvolvedores Java é implantar automaticamente as alterações de arquivo no servidor e reiniciar o servidor automaticamente.
Os desenvolvedores podem recarregar as alterações no Spring Boot sem reiniciar o servidor. Isso eliminará a necessidade de implantar manualmente as alterações a cada vez. O Spring Boot não tinha esse recurso quando lançou sua primeira versão.
Este é o recurso mais solicitado para desenvolvedores. Os módulos do DevTools atendem totalmente às necessidades dos desenvolvedores. Este módulo será desabilitado no ambiente de produção. Ele também fornece console de banco de dados H2 para testar melhor o aplicativo.
org.springframework.bootspring-boot-devtoolstrue
50. O processo de springboot integrando mybatis
Adicione a dependência inicial do maven do mybatis
org.mybatis.spring.bootmybatis-spring-boot-starter1.2.0
Adicione a anotação @Mapper à interface do mybatis para configurar as informações da fonte de dados em application.yml
51. Qual é a diferença entre Spring Boot, Spring MVC e Spring?
Spring Frame
O recurso mais importante do Spring Framework é a injeção de dependência. Todos os SpringModules são injeção de dependência ou inversão de controle IOC.
Quando usamos DI ou IOC adequadamente, podemos desenvolver aplicativos fracamente acoplados. O teste de unidade de aplicativos fracamente acoplados pode ser feito facilmente.
SpringMVC
O Spring MVC fornece uma abordagem desacoplada para o desenvolvimento de aplicativos da Web. Usando alguns conceitos simples como DispatcherServelet, MoudlAndView e ViewResolver, o desenvolvimento de aplicações web se tornará muito simples.
SpringBoot
O problema com Spring e SpringMVC é que existem muitos parâmetros para configurar.
O Spring Boot resolve esse problema com um projeto autoconfigurado e iniciado. Para criar aplicativos prontos para produção mais rapidamente, o Spring Boot fornece alguns recursos não funcionais.
52. O que é Spring Boot Stater?
Um lançador é um conjunto conveniente de descritores de dependência que podem ser colocados em seu próprio programa. Você pode obter todas as tecnologias Spring e relacionadas de que precisa em um só lugar, sem a necessidade de pesquisar e copiar e colar cargas de código de amostra dependendo dos descritores.
Por exemplo, se você quiser usar Sping e JPA para acessar o banco de dados, basta que seu projeto inclua a
dependência spring-boot-starter-data-jpa e pronto.
Pergunta 4 Você pode dar um exemplo para explicar mais sobre Staters?
Vamos considerar um exemplo de Stater - Spring Boot Stater Web.
Se você deseja desenvolver um aplicativo da Web ou um aplicativo que exponha serviços REST. Spring Boot Start Web é o preferido. Vamos criar um projeto rápido para Spring Boot Start Web usando Spring Initializr.
Dependências para Spring Boot Start Web
org.springframework.boot spring-boot-starter-webAs capturas de tela abaixo são as diferentes dependências adicionadas ao nosso aplicativo
As dependências podem ser divididas em
Qualquer aplicativo web clássico usará todas essas dependências. O Spring Boot Starter Web vem pré-empacotado com essas dependências.
Como desenvolvedor, não preciso mais me preocupar com essas dependências e suas versões compatíveis.
53. Que outras opções de projeto inicial o Spring Boot oferece?
O Spring Boot também fornece outros projetos iniciais, incluindo dependências típicas para o desenvolvimento de tipos específicos de aplicativos.
spring-boot-starter-web-services - Serviços Web SOAP spring-boot-starter-web - Aplicativos Web e RESTful spring-boot-starter-test - Testes de unidade e integração spring-boot-starter-jdbc - JDBC tradicional
spring-boot-starter-hateoas - Adiciona a funcionalidade HATEOAS aos serviços
spring-boot-starter-security - Autenticação e autorização com SpringSecurity spring-boot-starter-data-jpa - Spring Data JPA com Hibeernate
spring-boot-starter-data-rest - Publique serviços REST simples com Spring Data REST
54. Como o Spring cria rapidamente aplicativos prontos para produção?
O Spring Boot é dedicado a aplicativos rápidos prontos para produção. Para isso, ele fornece alguns recursos não funcionais prontos para uso, como armazenamento em cache, registro em log, monitoramento e servidores incorporados.
spring-boot-starter-actuator - Use alguns recursos avançados, como monitorar e rastrear seu aplicativo
spring-boot-starter-undertow, spring-boot-starter-jetty, spring-boot-starter-tomcat - escolha seu contêiner de servlet incorporado específico
spring-boot-starter-cache - Qual é a versão Java mínima necessária para habilitar o suporte de cache do Spring Framework ###Spring2 e Spring5?
O Spring Boot 2.0 requer Java 8 ou mais recente. Java6 e Java7 não são mais suportados. Leitura recomendada:
55. Qual é a maneira mais fácil de criar um projeto Spring Boot?
Spring Initializr é uma ótima ferramenta para iniciar projetos Spring Boot.
spring-boot-starter-cache - Qual é a versão Java mínima necessária para habilitar o suporte de cache do Spring Framework ###Spring2 e Spring5?
O Spring Boot 2.0 requer Java 8 ou mais recente. Java6 e Java7 não são mais suportados.
Conforme mostrado na imagem acima, precisamos fazer alguns passos: faça login no Spring Initializr, escolha da seguinte forma: selecione
com.in28minutes.springboot como o grupo
Selecione studet-services e selecione as seguintes dependências para o componente
WebActuatorDevTools
Clique para gerar GenerateProject
Importe o projeto para o Eclipse. projeto maven existente de importação de arquivo
56. O Spring Initializr é a única maneira de criar projetos Spring Boot?
não.
O Spring Initiatlizr facilita a criação de projetos Spring Boot, no entanto, você também pode iniciar um projeto configurando um projeto maven e adicionando as dependências corretas. Em nosso curso Spring, usamos dois métodos para criar projetos.
O primeiro método é http://start.spring.io.
Outra maneira é fazê-lo manualmente no projeto intitulado "Basic Web Application".
Existem várias etapas importantes para configurar manualmente um projeto maven:
No Eclipse, use File - New Maven Project para criar um novo projeto para adicionar dependências.
Adicione o plug-in maven.
Adicione a classe de aplicativo Spring Boot. Aqui, os preparativos estão feitos!
57. Como usar o SpringBoot para recarregar automaticamente meu aplicativo?
Use as ferramentas de desenvolvimento Spring Boot.
Adicionar as ferramentas de desenvolvimento Spring Boot ao seu projeto é simples.
Adicione as seguintes dependências ao seu projeto Spring Boot pom.xml
Reinicie o aplicativo e pronto.
Da mesma forma, se você quiser carregar páginas automaticamente, dê uma olhada no FiveReload.
Durante meus testes, encontrei a vulnerabilidade LiveReload, se você a encontrou durante os testes, por favor nos avise.
58. O que é um servidor incorporado? Por que devemos usar um servidor incorporado?
Pense no que é necessário para implantar um aplicativo em sua máquina virtual. Etapa 1: instalar o Java
A segunda parte: Instalar o servidor web ou de aplicativos (Tomat/Wbesphere/Weblogic, etc.) A terceira parte: implantar o pacote war de aplicativos
Se quisermos simplificar essas etapas, como devemos fazê-lo?
Vamos pensar em como tornar o servidor parte da aplicação?
Você só precisa de uma máquina virtual com Java instalado e pode implantar aplicativos diretamente nela, não é legal?
Essa ideia é a origem dos servidores embarcados.
Quando criamos um aplicativo implantável, incorporamos um servidor (por exemplo, tomcat) no servidor implantável.
Por exemplo, para um aplicativo Spring Boot, você pode gerar um jar do aplicativo contendo o Tomcat incorporado. Você pode executar o aplicativo da Web como um aplicativo Java normal.
Um servidor embutido é onde nossa unidade executável contém os binários do servidor (por exemplo, tomcat.jar).
59. Como adicionar código JS comum no Spring Boot?
Na pasta de origem, crie uma pasta chamada static. Então, você pode colocar seu conteúdo estático lá. Por exemplo, o caminho para myapp.js é resources\static\js\myapp.js
Você pode consultar seu uso em jsp
<csriptsrc=“/js/myapp.js”>
错误:Navegador HAL me dá erro não autorizado - Autenticação completa é necessária para acessar este recurso.
Como corrigir este erro?
Dois métodos:
Método 1: desative a verificação de segurança
propriedade.aplicativo
management.security.enabled:FALSE
Método 2: Pesquise a senha no log e passe-a no cabeçalho da solicitação
60. O que é Spring Date?
A missão da Spring Data é fornecer um modelo de programação familiar, consistente e baseado em Spring para acesso a dados, mantendo a especificidade do armazenamento de dados subjacente. Isso facilita o uso de tecnologias de acesso a dados, bancos de dados relacionais e não relacionais, estruturas de redução de mapa e serviços de dados baseados em nuvem.
Para facilitar um pouco, o Spring Data fornece a interface Abstractions que não é limitada pela fonte de dados subjacente. Aqui está um exemplo
interfaceTodoRepositoryextendsCrudRepository<Todo,Long>{
61. O que é Spring Data REST?
O Spring Data TEST pode ser usado para publicar recursos HATEOAS RESTful no Spring Database. Aqui está um exemplo usando JPA
@RepositoryRestResource(collectionResourceRel=“todos”,path=“todos”)
publicinterfaceTodoRepository
extendsPagingAndSortingRepository<Todo,Long>{
Sem escrever muito código, podemos publicar uma API RESTful no banco de dados Spring. Abaixo estão alguns exemplos de servidores TEST
PUBLICAR
URL:http://localhost:8080/todosUse Header:Content-Type:Type:application/jsonRequest Content
código mostrar como abaixo
conteúdo da resposta
A resposta contém o href do recurso recém-criado.
62. Como path=”users”, collectionResourceRel=”users” funciona com Spring Data Rest?
path - O segmento de caminho a ser exportado para este recurso.
collectionResourceRel - O valor rel a ser usado ao gerar links para recursos de coleção. Usado ao gerar links HATEOAS.
63. Quando um aplicativo Spring Boot é executado como um aplicativo Java, o que acontece em segundo plano?
Se você usar o Eclipse IDE, o plug-in maven do Eclipse garante que, assim que as alterações nas dependências ou arquivos de classe forem adicionadas, elas serão compiladas e prontas no arquivo de destino! Depois disso, é o mesmo que qualquer outro aplicativo Java.
Quando você inicia o aplicativo java, o arquivo de configuração automática de inicialização por mola é ativado magicamente.
Quando o aplicativo Spring Boot detecta que você está desenvolvendo um aplicativo da Web, ele inicia o tomcat.
64. Podemos substituir o tomcat pelo jetty no spring-boot-starter-web?
Remova as dependências existentes em spring-boot-starter-web e adicione o seguinte.
65. Como gerar um arquivo WAR usando Spring Boot?
Leitura recomendada:
O seguinte é um link direto para a documentação da primavera:
66. Como implantar em diferentes servidores usando Spring Boot?
Você precisa fazer as duas etapas a seguir:
Gere um arquivo war em um projeto.
Implante-o em seu servidor favorito (websphere ou Weblogic ou Tomcat e assim por diante).
Etapa 1: este guia de primeiros passos deve ajudar:
Passo 2: Depende do seu servidor.
67. Onde está a diferença entre RequestMapping e GetMapping?
RequestMapping possui atributos de classe e pode executar GET, POST, PUT ou outros métodos de solicitação na anotação.
GetMapping é um caso especial do método de solicitação GET. É apenas uma extensão do ResquestMapping para maior clareza.
68. Por que não recomendamos o uso do Spring Data Rest em aplicativos reais?
Achamos que o Spring Data Rest é ótimo para prototipagem rápida! Use com cuidado em grandes aplicações. Com Spring Data REST você pode publicar suas entidades de dados diretamente como serviços RESTful.
Ao projetar um servidor RESTful, as práticas recomendadas determinam que sua interface deve levar em consideração duas coisas importantes:
sua gama de modelos. Seu cliente.
Com Spring Data REST, você não precisa mais pensar nesses dois aspectos, você só precisa publicar a entidade como um serviço TEST.
É por isso que recomendamos o uso do Spring Data Rest em cima da prototipagem rápida ou como uma solução inicial para um projeto. Esta não é uma boa nota para um projeto de evolução completa.
69. Como alterar o nome do pacote de um projeto no Spring Initializer?
A boa notícia é que você pode personalizá-lo. Clique no link "Ir para a versão completa". Você pode configurar o nome do pacote que deseja modificar!
70. Onde posso encontrar a lista completa de propriedades que podem ser configuradas em application.propertierde?
Aqui está o guia completo:
71. Quais são as diferenças entre JPA e Hibernate?
resumidamente
JPA é uma especificação ou interface Hibernate é uma implementação de JPA
Quando usamos JPA, não precisamos usar o pacote de importação hibernate quando usamos as anotações e interfaces no pacote javax.persistence.
Recomendamos o uso de anotações JPA porque não estamos vinculando-o ao Hibernate como uma implementação. Mais tarde (eu sei - menos de um por cento de chance), podemos usar outra implementação de JPA.
72. Quais dependências são necessárias para iniciar um aplicativo JPA conectado ao banco de dados em memória H2 usando Spring Boot?
Em um projeto Spring Boot, você pode carregar o console H2 quando se certificar de que as dependências a seguir estejam todas no caminho de classe.
lançador da web
h2
Outras dependências do ativador de dados jpa são as seguintes:
Alguns pontos a serem observados:
Uma memória de dados interna existe apenas durante a execução do aplicativo. Esta é uma maneira eficiente de aprender o framework. Não é como você deseja que o aplicativo do mundo real seja.
Na pergunta "Como me conecto a um banco de dados externo?" explicamos como se conectar a um banco de dados de sua escolha.
73. Como escolher o Hibernate como a implementação padrão do JPA sem nenhuma configuração?
Porque o Spring Boot é configurado automaticamente. Abaixo estão as dependências que adicionamos
org.springframework.boot spring-boot-starter-data-jpaspring-boot-stater-data-jpa tem dependências de transição para Hibernate e JPA.
Quando o Spring Boot detecta o Hibernate no classpath, ele o configura automaticamente como a implementação JPA padrão.
74. Onde estão as informações de conexão do banco de dados especificadas? Como ele sabe se conectar automaticamente ao H2?
Essa é a mágica da configuração automática do Spring Boot.
A partir de:
A configuração automática do Spring Boot tenta configurar automaticamente seu aplicativo Spring com base nas dependências do jar que você adicionou. Por exemplo, se HSQLDBis existir em seu caminho de classe e o bean de conexão do banco de dados não tiver sido configurado manualmente, podemos configurar automaticamente um banco de dados na memória.
Leitura adicional:
75. Como nos conectamos a um banco de dados externo como MSSQL ou orcale?
Vamos pensar sobre isso usando o MySQL como exemplo:
Etapa 1 - Adicionar dependências do conector mysql ao pom.xml
Passo 2 - Remova as dependências do H2 do pom.xml
Ou pelo menos torná-lo o escopo do teste.
Passo 3 - Instale seu banco de dados MySQL
Etapa 4 - Configure sua conexão com o banco de dados MySQL
Configurar application.properties
Passo 5 - Reinicie e você está pronto para começar!
É simples assim!
76. Qual é o nome do banco de dados H2 padrão configurado pelo Spring Boot? Por que o nome do banco de dados padrão é testdb?
Em application.properties, todos os valores padrão são listados
Encontre os imóveis abaixo
spring.datasource.name=testdb#Nameofthedatasource.
Se você estiver usando o banco de dados de armazenamento interno H2, ele definirá o nome que o Spring Boot usará para instalar seu banco de dados H2.
77. Se H2 não estiver no classpath, a situação acima ocorrerá?
reportará o seguinte erro
Não é possível determinar a classe do driver de banco de dados incorporado para o tipo de banco de dados NONE
Adicione H2 ao pom.xml e reinicie seu servidor
[Falha na transferência da imagem do link externo, o site de origem pode ter um mecanismo anti-leech, é recomendável salvar a imagem e carregá-la diretamente (img-LE3rHXvv-1660643940589) (https://upload-images.jianshu.io/upload_images) /28366454-b2e1b47b75680772.png ?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
78. Você pode dar um exemplo de uso de ReadOnly como gerenciamento de transações?
Ao ler o conteúdo do banco de dados, você deseja definir a descrição do usuário ou outra descrição na transação para o modo somente leitura para que o Hebernate não precise verificar a entidade novamente para alterações. Isso é muito eficiente.
79. Qual é a melhor maneira de publicar configurações personalizadas para aplicativos de usuário Spring Boot?
O problema com @Value é que você pode atribuir seu valor de configuração por meio do aplicativo. Uma operação melhor é adotar uma abordagem centralizada. Você pode definir um componente de configuração usando @ConfigurationProperties.
Você pode configurar parâmetros em application.properties.
80. Quais são os requisitos para arquivos de configuração?
O desenvolvimento de aplicativos corporativos é complexo e você precisa de uma combinação de ambientes:
Desenvolvedor
Controle de qualidade
Produção de palco
Em cada ambiente, você deseja configurações de aplicativos diferentes.
Os arquivos de configuração facilitam diferentes configurações de aplicativos em diferentes ambientes.
Spring e Spring Boot fornecem funcionalidades que você pode especificar.
Quais são as configurações de diferentes ambientes em diferentes arquivos de configuração? Define o perfil ativo para um determinado ambiente.
O Spring Boot escolherá a configuração do aplicativo com base no perfil ativo definido no ambiente específico.
81. Como usar o arquivo de configuração para configurar a configuração de um ambiente específico através do Spring Boot?
O arquivo de configuração não é a chave para definir o ambiente.
No exemplo a seguir, usaremos dois arquivos de configuração
devprod
A configuração padrão do aplicativo está em application.properties. Vejamos o seguinte exemplo: application.properties
Queremos personalizar a propriedade application.properties para o arquivo dev. Precisamos criar um arquivo chamado
application-dev.properties e substituir as propriedades que queremos customizar.
application-dev.properties
basic.message: mensagem dinâmica em DEV
Depois de configurar especificamente o perfil, você precisa definir um perfil ativo no ambiente. Existem várias maneiras de fazer isso:
Use Dspring.profiles.active=prod nos parâmetros da VM
Use spring.profiles.active=prod em application.properties
82. Como configuramos um aplicativo Spring Boot com Maven?
Podemos incluir Spring Boot em um projeto Maven como qualquer outra biblioteca. No entanto, a melhor maneira é
herdar do projeto spring-boot-starter-parent e declarar uma dependência no iniciador do Spring Boot. Fazer isso permite que nosso projeto reutilize as configurações padrão do Spring Boot. Herdar o projeto spring-boot-starter-parent é muito simples - só precisamos especificar um elemento pai em pom.xml:
Podemos encontrar a versão mais recente do
spring-boot-starter-parent no repositório central do Maven. O método acima é muito conveniente, mas não necessariamente atende às necessidades reais. Por exemplo, a empresa exige que todas as dependências do projeto sejam construídas a partir de uma BOM padrão, não podemos fazer isso da maneira acima. Neste caso, podemos fazer uma referência da seguinte forma: