Perguntas da entrevista sobre Java - artigos do SpringBoot

1. O que é SpringBoot?

Spring Boot é um subprojeto da organização de código aberto Spring.

É uma solução completa para componentes Spring, principalmente para simplificar

Reduz a dificuldade de usar Spring e simplifica a configuração de XML pesado

configuração, são fornecidos vários lançadores , que podem ser personalizados durante a operação

Configuração, os desenvolvedores podem começar rapidamente

2. Por que usar SpringBoot?

① Operação independente

② Configuração simplificada

③ Configuração automática

④ Sem geração de código e configuração XML

⑤ Não há necessidade de implantar arquivo war

3. Quais são os principais arquivos de configuração do Spring Boot? Qual é a diferença?

O arquivo de configuração principal do Spring Boot é o aplicativo

e arquivo de configuração de inicialização

1. Arquivo de configuração do aplicativo

Usado principalmente para configuração automática de projetos Spring Boot

2. arquivo de configuração de inicialização

Existem vários cenários de aplicação, como segue:

① Ao usar o centro de configuração SpringCloudConfig,

   Neste momento, você precisa adicionar o arquivo de configuração de bootstrap

   Conecte-se às propriedades de configuração do centro de configuração para carregar

   Informações de configuração do centro de configuração ;
② Alguns atributos fixos que não podem ser substituídos;
③ Alguns cenários de criptografia/descriptografia;

4. Quais são os formatos dos arquivos de configuração do SpringBoot? Qual é a diferença?

.properties e .yml , a diferença entre eles é principalmente o livro

o formato de gravação é diferente

1. .propriedades

app.user.name = javastack

2. .yml

app:
  user:
    name: javastack

Além disso, o formato .yml não oferece suporte a @PropertySource

Configuração de importação de anotação

5. Qual é a anotação principal do SpringBoot? Em quais anotações ele consiste principalmente?

A anotação acima da classe de inicialização é @SpringBootApplication ,

É também a anotação principal do SpringBoot

A combinação principal contém as 3 anotações a seguir:

@SpringBootConfiguration : Combinado

   Anotação @Configuration para implementar arquivos de configuração

   A função de
@EnableAutoConfiguration : abrir a configuração automática

  Configure automaticamente a função, você também pode desligar uma determinada configuração automática

  Opções configuradas, como desligar a função de configuração automática da fonte de dados:

  @SpringBootApplication(excluir =

  { DataSourceAutoConfiguration.class })
@ComponentScan : verificação de componente Spring

6. Quais são as maneiras de habilitar os recursos do SpringBoot?

① Herdar  o projeto spring-boot-starter-parent

② Importe  o projeto spring-boot-dependencies de acordo com

    confiar

7. O SpringBoot precisa de um contêiner independente para funcionar?

Você não precisa, contêineres integrados como Tomcat/Jetty

8. Quais são as formas de executar o SpringBoot?

① Use comandos para empacotar ou executar em um contêiner

② Execute com plugin Maven/Gradle

③ Execute diretamente o método principal para executar

9. Qual é o princípio da configuração automática do SpringBoot?

Anote @EnableAutoConfiguration,

@Configuração, @ConditionalOnClass

É o núcleo da configuração automática, antes de tudo deve ser uma configuração

Arquivo de configuração e, em seguida, dependendo se existe esta classe no caminho da classe

vá para configuração automática

As anotações de configuração automática do Spring Boot são

@EnableAutoConfiguration, acima

As classes @Import podem ser encontradas abaixo de autoload auto

mapeamento configurado

 org.springframework.core.io.support.SpringFactoriesLoader.loadFactoryNames(Class<?>, ClassLoader)
public static List<String> loadFactoryNames(Class<?> factoryClass, 
ClassLoader classLoader) {
    String factoryClassName = factoryClass.getName();
    try {
        Enumeration<URL> urls = (classLoader != null ? 
classLoader.getResources(FACTORIES_RESOURCE_LOCATION) :
lassLoader.getSystemResources(FACTORIES_RESOURCE_LOCATION));
        List<String> result = new ArrayList<String>();
        while (urls.hasMoreElements()) {
            URL url = urls.nextElement();
            Properties properties = PropertiesLoaderUtils.loadProperties(
new UrlResource(url));
            String factoryClassNames = properties.getProperty(factoryClassName);
          result.addAll(Arrays.asList(StringUtils.commaDelimitedListToStringArray(
factoryClassNames)));
        }
        return result;
    }
    catch (IOException ex) {
        throw new IllegalArgumentException("Unable to load [" 
            + factoryClass.getName() +
            "] factories from location [" 
            + FACTORIES_RESOURCE_LOCATION + "]", ex);
    }
}

Este método carregará o caminho de classe e as classes configuradas automaticamente mapeadas na configuração META-INF/spring.factories em todos os pacotes jar.

/**
* The location to look for factories.
* <p>Can be present in multiple JAR files.
*/
public static final String FACTORIES_RESOURCE_LOCATION = "META-INF/spring.factories";
查看Spring Boot自带的自动配置的包: spring-boot-autoconfigure-1.5.6.RELEASE.jar,
打开其中的META-INF/spring.factories文件会找到自动配置的映射

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration,\
org.springframework.boot.autoconfigure.aop.AopAutoConfiguration,\
org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration,\
org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration,\
org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration,\
org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration,\
org.springframework.boot.autoconfigure.cloud.CloudAutoConfiguration,\
...

Vamos dar uma olhada nas anotações de implementação da configuração automática da fonte de dados

@Configuration
@ConditionalOnClass({ DataSource.class, EmbeddedDatabaseType.class })
@EnableConfigurationProperties(DataSourceProperties.class)
@Import({ Registrar.class, DataSourcePoolMetadataProvidersConfiguration.class })
public class DataSourceAutoConfiguration {
...
@Configuration,@ConditionalOnClass就是自动配置的核心,首先它得是一个配置文件,其次根据类

10. Como entender os Starters no SpringBoot?

Starters pode ser entendido como um starter , que contém um

Uma série de pacotes de dependências que podem ser integrados ao aplicativo, você pode

Integração completa do Spring e outras tecnologias sem

Precisa encontrar código de amostra e pacotes dependentes em todos os lugares

Se você quiser usar Spring JPA para acessar o banco de dados, basta

Para ingressar na inicialização do spring-boot-starter-data-jpa

Você pode usar a dependência do dispositivo

 

Acho que você gosta

Origin blog.csdn.net/m0_72041293/article/details/132393449
Recomendado
Clasificación