1
00:00:01,570 --> 00:00:09,750
Na etapa anterior, conseguimos criar um servio REST com muita facilidade. Na etapa, entenderemos o que

2
00:00:09,780 --> 00:00:11,770
 configurao automtica.

3
00:00:11,810 --> 00:00:14,680
Como todas as coisas que so necessrias para

4
00:00:14,720 --> 00:00:18,700
o servio REST estar instalado e funcionando so configuradas automaticamente?

5
00:00:18,710 --> 00:00:20,490
Vamos dar uma olhada nesta etapa.

6
00:00:20,660 --> 00:00:26,450
Ns temos o Spring Boot na aplicao de 10

7
00:00:26,450 --> 00:00:33,220
etapas, onde temos a anotao SpringBootApplication. A anotao em SpringBootApplication indica que este  um arquivo de contexto Spring.

8
00:00:33,230 --> 00:00:34,430
Esse  o nmero um.

9
00:00:34,430 --> 00:00:39,180
Nmero dois, permite algo chamado configurao automtica.

10
00:00:39,200 --> 00:00:43,350
Nmero trs, permite algo chamado varredura de componentes.

11
00:00:43,820 --> 00:00:49,820
A verificao de componentes  um dos recursos importantes do Spring onde ele iniciaria a

12
00:00:49,850 --> 00:00:52,470
verificao automtica dessas classes neste pacote.

13
00:00:52,550 --> 00:00:56,660
E este sub pacote para qualquer feijo.

14
00:00:56,720 --> 00:01:00,840
Ento ns adicionamos em uma anotao em restController.

15
00:01:00,980 --> 00:01:05,540
Esta  uma das anotaes digitalizadas.

16
00:01:05,540 --> 00:01:12,160
Ento, isso seria registrado como um componente. Portanto, o bookController seria registrado como um bean e

17
00:01:12,290 --> 00:01:14,420
seria gerenciado pelo framework Spring.

18
00:01:14,750 --> 00:01:19,750
Existem trs coisas que so essencialmente feitas no aplicativo Spring Boot.

19
00:01:19,760 --> 00:01:22,130
Isso indica que este  um contexto de primavera.

20
00:01:22,130 --> 00:01:27,060
A segunda coisa  o fato de que isso permite a configurao automtica.

21
00:01:27,080 --> 00:01:32,920
A terceira coisa  que ele permite a verificao automtica deste pacote especfico.

22
00:01:32,920 --> 00:01:39,650
Agora, se queremos olhar para a configurao automtica no departamento. O mtodo de execuo de pontos do aplicativo Spring 

23
00:01:39,740 --> 00:01:41,690
usado para executar um contexto Spring.

24
00:01:41,690 --> 00:01:47,990
Ento, eu estou dando um contexto Spring como uma entrada para ele e seria capaz de executar isso. O mtodo run tambm

25
00:01:47,990 --> 00:01:52,740
retorna alguma coisa. Por isso, retorna um contexto de aplicativo.

26
00:01:52,760 --> 00:01:59,750
Ento, eu vou realmente recuperar o contexto da aplicao. Ento, estou recuperando o contexto do aplicativo.

27
00:01:59,880 --> 00:02:04,630
Isso retorna o contexto do aplicativo. Eu estou tomando e eu diria contexto de aplicao. Eu gostaria de dar uma volta.

28
00:02:04,790 --> 00:02:06,200
Ento, para cada um, controle um. Controle o espao na verdade. Eu gostaria de fazer um loop em torno do contexto do aplicativo.

29
00:02:06,200 --> 00:02:15,480
ponto pegar feijo.

30
00:02:15,690 --> 00:02:17,410
Eu quero obter os

31
00:02:17,450 --> 00:02:24,380
nomes de todos os beans que esto configurados e eu chamaria esse nome e gostaria de registr-los. Eu vou fazer agora um sistema. Tomando um atalho aqui.

32
00:02:24,380 --> 00:02:29,620
Idealmente, eu deveria estar usando um logger. Mas eu sou um cara preguioso.

33
00:02:29,620 --> 00:02:32,550
Eu iria em frente e imprimia todos os gros que esto presentes aqui.

34
00:02:32,700 --> 00:02:36,910
Vamos ver o que aconteceria.

35
00:02:36,920 --> 00:02:38,270
Execute-nos aplicativo Java.

36
00:02:38,270 --> 00:02:40,300
EST BEM! Estou com um erro dizendo que ele falhou ao iniciar porque o 8080 j est sendo usado.

37
00:02:40,640 --> 00:02:45,160
Vamos ver.

38
00:02:45,170 --> 00:02:45,830
J est sendo usado.

39
00:02:45,980 --> 00:02:46,880
Eu mato isso.

40
00:02:46,880 --> 00:02:48,020
E vamos comear de novo.

41
00:02:48,350 --> 00:02:49,640
OK legal!

42
00:02:49,670 --> 00:02:50,970
H muitas coisas que so impressas agora.

43
00:02:51,080 --> 00:02:53,590
Portanto, h uma srie de coisas que esto sendo configuradas automaticamente para ns.

44
00:02:53,600 --> 00:02:59,990
Como esto sendo configurados?

45
00:03:00,020 --> 00:03:02,340
 basicamente o recurso chamado configurao automtica. O que o Spring Boot faz como

46
00:03:02,720 --> 00:03:10,120
parte da estrutura Spring Boot, existe algo chamado autoconfigurao do Spring Boot.

47
00:03:10,130 --> 00:03:14,260
Ento, se eu olhar, uma das dependncias  o auto boot do Spring Boot. E essa configurao automtica do Spring

48
00:03:14,270 --> 00:03:22,040
Boot tem muita lgica incorporada. Ento voc pode ver que h muitas classes que so escritas.

49
00:03:22,310 --> 00:03:28,820
Ento, se voc olhar para o jar de configurao automtica,  um jar muito muito, muito grande.

50
00:03:28,850 --> 00:03:34,850
E se formos para a Web, encontraremos nossas configuraes para todas as coisas

51
00:03:34,910 --> 00:03:36,680
que estamos vendo agora.

52
00:03:36,720 --> 00:03:41,900
Eu estou indo para o servlet web de configurao

53
00:03:42,110 --> 00:03:47,960
automtica e voc veria algo chamado configurao automtica de servlet dispatcher.

54
00:03:48,020 --> 00:03:49,730
Essas classes de configurao automtica so o que esto criando esses beans.

55
00:03:50,030 --> 00:03:56,020
O que aconteceria na inicializao  que a estrutura do Spring Boot acionaria o jar de configurao automtica.

56
00:03:56,360 --> 00:04:03,060
E ele passaria pelas classes que esto no caminho de classe.

57
00:04:03,350 --> 00:04:07,480
Ento, veria que, OK, eu tenho uma

58
00:04:07,660 --> 00:04:09,590
classe especfica no classpath? Veria que eu tenho

59
00:04:09,820 --> 00:04:16,220
uma estrutura Spring Web MVC no classpath.

60
00:04:16,220 --> 00:04:16,720
O que esta configurao automtica do Spring Boot faz?

61
00:04:16,730 --> 00:04:20,330
Diz: Oh! H o Spring Web MVC no classpath, ento

62
00:04:20,330 --> 00:04:26,310
eu precisaria configurar um servlet de dispatcher. "Ele diria:" Oh! existe o Spring MVC no classpath, ento eu precisaria configurar

63
00:04:26,320 --> 00:04:30,130
um resolvedor de viso. Ento todo esse tipo de coisa acontece e

64
00:04:30,130 --> 00:04:33,560
voc pode ver todos os gros que foram criados aqui.

65
00:04:33,680 --> 00:04:43,220
Como a configurao funciona?

66
00:04:43,370 --> 00:04:45,280
Spring Boot basicamente olha para duas coisas.

67
00:04:45,330 --> 00:04:47,270
Um deles  o framework disponvel no classpath. Existe um site chamado springboottutorial

68
00:04:47,270 --> 00:04:53,690
dot, onde temos muitos artigos sobre o Spring Boot.

69
00:04:53,690 --> 00:04:54,970
Estou me referindo a um dos artigos l.

70
00:04:54,980 --> 00:04:57,220
Ento Spring Boot olha para A) os frameworks

71
00:04:57,320 --> 00:05:03,200
que esto disponveis no caminho de classe e tambm, B) Ele olha para os beans existentes que esto configurados para o aplicativo. E com base nisso, fornece

72
00:05:03,200 --> 00:05:10,280
a configurao necessria.

73
00:05:10,310 --> 00:05:11,900
Por exemplo, se voc estiver usando um iniciador

74
00:05:11,900 --> 00:05:16,650
de web, as coisas bsicas que voc precisaria seriam um servlet de dispatcher, voc precisaria de, provavelmente, alguma internacionalizao, voc precisa de alguma mensagem. Todo esse tipo de coisa

75
00:05:16,650 --> 00:05:23,150
seria autoconfigurado para voc.

76
00:05:23,150 --> 00:05:25,850
Agora, estamos analisando um dos beans de configurao automtica, que  a configurao automtica da fonte de dados.

77
00:05:25,880 --> 00:05:31,660
Se voc vir o cdigo de configurao automtica da origem de dados que est dentro do jar de configurao automtica de inicializao do Spring.

78
00:05:31,940 --> 00:05:37,800
Voc veria que  condicional na classe de ponto de origem de dados de classe e que

79
00:05:38,060 --> 00:05:43,970
uma classe de ponto de tipo de banco de dados incorporado esteja presente no caminho de classe.

80
00:05:43,970 --> 00:05:45,110
Mas o que acontece

81
00:05:45,120 --> 00:05:49,220
 que somente essas classes esto no caminho de classe, ento esse bean especfico seria criado. O bean de origem de dados seria criado apenas

82
00:05:49,220 --> 00:05:55,670
quando eles estiverem no caminho de classe.

83
00:05:55,670 --> 00:05:56,330
Mas voc pode ver o cdigo aqui. Portanto, a configurao

84
00:05:56,340 --> 00:06:02,660
automtica da base de dados  condicionada  disponibilidade de uma classe especfica no caminho de classe.

85
00:06:02,720 --> 00:06:03,810
Mas voc tambm pode ver outro exemplo aqui, configurao do banco de dados de origem de dados assim incorporado.

86
00:06:03,830 --> 00:06:09,730
Isso s  criado quando no h fonte de dados, quando no

87
00:06:09,810 --> 00:06:16,930
h um bean criado com uma fonte de dados ou uma fonte de dados XA.

88
00:06:16,940 --> 00:06:17,700
O Spring Boot criaria uma configurao de banco de dados integrada para ns. Se voc

89
00:06:17,720 --> 00:06:24,410
quiser saber mais sobre qual configurao automtica est acontecendo, o que

90
00:06:24,440 --> 00:06:26,770
podemos fazer  ativar o registro de depurao. O que eu posso fazer  ir para propriedades de ponto de aplicativo.

91
00:06:26,870 --> 00:06:34,500
Esse  um dos arquivos que est presente aqui.

92
00:06:34,550 --> 00:06:37,280
Vamos falar sobre as propriedades do aplicativo um pouco mais tarde.

93
00:06:37,280 --> 00:06:40,100
Estou ligando o nvel de log. Tudo o que voc precisa fazer  dizer

94
00:06:40,400 --> 00:06:50,300
logging dot level dot org dot O Spring Framework  igual a debug.

95
00:06:50,850 --> 00:06:54,460
Isso iniciaria o aplicativo em um modo de depurao.

96
00:06:54,560 --> 00:06:56,840
Deixe-me matar isso. Inicie o aplicativo novamente.

97
00:06:56,840 --> 00:07:00,280
Voc pode ver muito mais registros sendo impressos agora.

98
00:07:00,320 --> 00:07:03,640
Muitas coisas esto sendo impressas junto com as quais voc

99
00:07:03,650 --> 00:07:07,530
realmente tem muitos registros sobre a configurao automtica, que  impressa aqui.

100
00:07:07,700 --> 00:07:12,970
Ento, isso realmente dir todas as coisas que foram configuradas automaticamente e que no foram configuradas automaticamente.

101
00:07:13,130 --> 00:07:19,570
Ento, est dizendo que a configurao automtica do servlet do dispatcher foi correspondida porque encontrei algo desse tipo no caminho de

102
00:07:19,580 --> 00:07:19,870
classe. Ento

103
00:07:19,870 --> 00:07:27,510
est dizendo, eu encontrei um servlet chamado servlet dispatcher no classpath. Ento eu configurei o servlet do dispatcher automaticamente.

104
00:07:27,860 --> 00:07:33,470
Est dizendo que eu configurei uma configurao automtica MVC de erro. Eu j configurei o controlador de erro padro.

105
00:07:34,220 --> 00:07:42,260
Eu configurei um cache, configurao de cache genrica. Eu configurei o Jackson para fazer a

106
00:07:42,350 --> 00:07:49,910
ligao e tambm a validao automtica.

107
00:07:49,910 --> 00:07:52,130
Voc tambm pode ver que existem coisas como resolvedor de visualizaes e tudo que foi configurado automaticamente.

108
00:07:52,130 --> 00:07:57,540
No s isso, o relatrio de configurao automtica tambm mostra quais

109
00:07:57,770 --> 00:08:03,000
so as coisas que no foram configuradas automaticamente. Ento, ele mostraria

110
00:08:03,060 --> 00:08:10,640
porque as outras coisas da configurao automtica no coincidiam e por que no foram executadas.

111
00:08:11,120 --> 00:08:12,770
Por que os feijes para eles no foram criados.

112
00:08:12,770 --> 00:08:15,270
A configurao automtica  um conceito muito importante sobre o Spring Boot. Uma das coisas mais importantes para entender  que

113
00:08:15,320 --> 00:08:20,930
voc ainda era um iniciante no Spring Boot e a

114
00:08:20,930 --> 00:08:27,380
configurao automtica  algo que vai crescer em voc  medida que voc continua construindo mais e mais aplicativos Spring Boot.

115
00:08:27,380 --> 00:08:32,380
Se o conceito completo de configurao automtica no se encaixasse

116
00:08:32,560 --> 00:08:36,760
em sua mente agora, isso no  um problema.

117
00:08:36,770 --> 00:08:38,800
Voc definitivamente aprender quando terminar este curso. A configurao automtica  uma das coisas

118
00:08:38,810 --> 00:08:45,260
fundamentais pelas quais o Spring Boot  to famoso e fcil

119
00:08:45,260 --> 00:08:45,930
de usar. Nesta etapa,

120
00:08:46,070 --> 00:08:52,130
analisamos os conceitos bsicos da configurao automtica.

121
00:08:52,160 --> 00:08:55,610
Analisamos alguns dos beans que foram criados automaticamente

122
00:08:55,610 --> 00:09:01,120
e tambm observamos onde est o cdigo para a configurao automtica do Spring Boot.

123
00:09:01,130 --> 00:09:04,160
At o prximo passo, tchau-tchau.

124
00:09:04,580 --> 00:09:05,780
&nbsp;

