-
Notifications
You must be signed in to change notification settings - Fork 0
/
Spring.drawio
156 lines (156 loc) · 40.6 KB
/
Spring.drawio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<mxfile host="app.diagrams.net" modified="2021-09-15T10:45:54.191Z" agent="5.0 (Windows)" etag="Ga-k8wrE93L24oah_v_-" version="14.9.9" type="github">
<diagram id="cQnIbtuH6GqwWI9tAGfN" name="Page-1">
<mxGraphModel dx="2370" dy="1300" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="vjo05r3FHmtKJxtx1X4f-1" value="<font color="#A9C4EB">1. Bean definition</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="360" y="147.5" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-2" value="<font color="#7EA6E0">2. Bean Creation and Instantiation</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="404" y="194" width="210" height="20" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-4" value="<p><font style="font-size: 8px" color="#999999">Loading into ApplicationContext and JVM</font></p>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="424" y="194" width="170" height="50" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-5" value="<font color="#B266FF">3. Populating Bean properties</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="400" y="250" width="190" height="20" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-6" value="<p style="font-size: 8px ; line-height: 50%"><font style="font-size: 8px" color="#999999">Creating beans id, scope, default values</font></p><p style="font-size: 8px"><font style="font-size: 8px" color="#999999">Metadata<br></font></p>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="410" y="260" width="170" height="50" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-9" value="<font color="#CCCC00">4. Post-initialization</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="290" y="290" width="130" height="20" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-10" value="<p style="font-size: 8px ; line-height: 30%"><font color="#999999">Execution custom application-specific logic</font></p><p style="font-size: 8px"><font color="#999999">through Aware interfaces</font></p><p style="font-size: 8px"><font color="#999999">+ @PostConstruct</font><br></p>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="265" y="300" width="180" height="70" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-11" value="<font color="#4D9900">5. Ready to Serve</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="190" y="250" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-12" value="<font style="font-size: 8px" color="#999999">Ready to use</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="215" y="265" width="70" height="20" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-13" value="<font color="#CCCC00">6. Pre-destroy</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="200" y="190" width="100" height="20" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-14" value="<div style="font-size: 8px"><font style="font-size: 8px" color="#999999">Execute clean-ups, callback methods and</font></div><div style="font-size: 8px"><font style="font-size: 8px" color="#999999">application-specific logic before destroying</font><br></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="160" y="210" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-16" value="<font style="font-size: 8px" color="#999999">Define bean using stereotype annotations or XML</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="370" y="162.5" width="200" height="20" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-17" value="<font color="#FF6666">7. Bean destroyed</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="230" y="147.5" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-18" value="<font style="font-size: 8px" color="#999999">Bean removed from JVM</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="230" y="162.5" width="110" height="20" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-19" value="" style="shape=flexArrow;endArrow=classic;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="570" y="160" as="sourcePoint" />
<mxPoint x="210" y="160" as="targetPoint" />
<Array as="points">
<mxPoint x="640" y="200" />
<mxPoint x="640" y="270" />
<mxPoint x="500" y="330" />
<mxPoint x="360" y="400" />
<mxPoint x="160" y="280" />
<mxPoint x="140" y="200" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-20" value="<font style="font-size: 24px" color="#4D9900">Bean lifecycle<br></font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="285" y="100" width="180" height="20" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-21" value="<font style="font-size: 24px" color="#FF8000">Bean lifecycle hooking into<br></font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="940" y="110" width="330" height="20" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-22" value="<div align="left">1. Implementing Spring Aware Interfaces&nbsp;</div>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="955" y="150" width="250" height="20" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-23" value="<div>2. Spring @PostConstructor and @PreDestroy <br></div><div>annotations of JSR-250 specification. <br></div>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="955" y="211" width="280" height="30" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-24" value="<div>3. Spring InitializingBean(2) and DisposableBean(7)</div><div>interfaces <br></div>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="955" y="252" width="310" height="30" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-25" value="4. @Bean annotation and Attributes" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="955" y="297" width="220" height="20" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-26" value="<div style="font-size: 10px" align="left"><font style="font-size: 10px" color="#999999"><span style="font-family: &#34;menlo&#34; , &#34;monaco&#34; , &#34;courier new&#34; , &#34;courier&#34; , monospace ; font-style: normal ; font-weight: 400 ; letter-spacing: -0.352px ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(242 , 242 , 242) ; display: inline ; float: none">@Bean(initMethod = "init", destroyMethod = "destroy")</span><br style="box-sizing: inherit ; font-family: &#34;menlo&#34; , &#34;monaco&#34; , &#34;courier new&#34; , &#34;courier&#34; , monospace ; font-style: normal ; font-weight: 400 ; letter-spacing: -0.352px ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(242 , 242 , 242)"><span style="font-family: &#34;menlo&#34; , &#34;monaco&#34; , &#34;courier new&#34; , &#34;courier&#34; , monospace ; font-style: normal ; font-weight: 400 ; letter-spacing: -0.352px ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(242 , 242 , 242) ; display: inline ; float: none">&nbsp;&nbsp;&nbsp; public Foo getFooInstance() {</span><br style="box-sizing: inherit ; font-family: &#34;menlo&#34; , &#34;monaco&#34; , &#34;courier new&#34; , &#34;courier&#34; , monospace ; font-style: normal ; font-weight: 400 ; letter-spacing: -0.352px ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(242 , 242 , 242)"><span style="font-family: &#34;menlo&#34; , &#34;monaco&#34; , &#34;courier new&#34; , &#34;courier&#34; , monospace ; font-style: normal ; font-weight: 400 ; letter-spacing: -0.352px ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(242 , 242 , 242) ; display: inline ; float: none">&nbsp;&nbsp;&nbsp; return new Foo();</span><br style="box-sizing: inherit ; font-family: &#34;menlo&#34; , &#34;monaco&#34; , &#34;courier new&#34; , &#34;courier&#34; , monospace ; font-style: normal ; font-weight: 400 ; letter-spacing: -0.352px ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(242 , 242 , 242)"><span style="font-family: &#34;menlo&#34; , &#34;monaco&#34; , &#34;courier new&#34; , &#34;courier&#34; , monospace ; font-style: normal ; font-weight: 400 ; letter-spacing: -0.352px ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(242 , 242 , 242) ; display: inline ; float: none">&nbsp;&nbsp;&nbsp; }</span><br style="box-sizing: inherit ; font-family: &#34;menlo&#34; , &#34;monaco&#34; , &#34;courier new&#34; , &#34;courier&#34; , monospace ; font-style: normal ; font-weight: 400 ; letter-spacing: -0.352px ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(242 , 242 , 242)"><span style="font-family: &#34;menlo&#34; , &#34;monaco&#34; , &#34;courier new&#34; , &#34;courier&#34; , monospace ; font-style: normal ; font-weight: 400 ; letter-spacing: -0.352px ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(242 , 242 , 242) ; display: inline ; float: none">}</span></font></div>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#666666;fillColor=#f5f5f5;fontColor=#333333;" parent="1" vertex="1">
<mxGeometry x="975" y="317" width="310" height="80" as="geometry" />
</mxCell>
<mxCell id="vjo05r3FHmtKJxtx1X4f-27" value="5. XML configuration (Bean Tag)" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="955" y="412" width="200" height="20" as="geometry" />
</mxCell>
<mxCell id="ftWq0-_qyHBcbyIwFHZy-1" value="<div align="left"><font style="font-size: 10px" color="#9AC7BF">4.1. Pre-Initialization <font color="#B0E3DA">(BeanPostProcessor, PostBeforeInitialization(), @PostConstruct)</font><br></font></div><div align="left"><font style="font-size: 10px" color="#9AC7BF">4.2. AfterPropertiesSet <font color="#AEE0D7">(afterPropertiesSet(), InitializingBean)</font><br></font></div><div align="left"><font style="font-size: 10px" color="#9AC7BF">4.3. Custom Initialization <font color="#B2E6DC">(initMethod of @Bean annotation)</font><br></font></div><div align="left"><font style="font-size: 10px" color="#9AC7BF">4.4. Post-Initialization <font color="#B2E6DC">(postProcessAfterInitialization())</font><br></font></div>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="400" y="390" width="420" height="60" as="geometry" />
</mxCell>
<mxCell id="ftWq0-_qyHBcbyIwFHZy-2" value="<div align="left"><font style="font-size: 10px" color="#FFB570">6.1. Pre-Destroy <font color="#FFD8B5">(@PreDestroy)</font><br></font></div><div align="left"><font style="font-size: 10px" color="#FFB570">6.2. Destroy <font color="#FFD8B5">(destroy(), DisposableBean)</font><br></font></div><div align="left"><font style="font-size: 10px" color="#FFB570">6.3. Custom Destruction <font color="#FFD8B5">(destroyMethod of @Bean annotation)</font><br></font></div>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="30" y="390" width="310" height="50" as="geometry" />
</mxCell>
<mxCell id="ftWq0-_qyHBcbyIwFHZy-3" value="<div style="font-size: 11px"><font style="font-size: 11px" color="#999999">@PostConstruct public void postConstruct()</font></div><div style="font-size: 11px"><font style="font-size: 11px" color="#999999">@PreDestroy public void preDestroy()</font><font style="font-size: 11px"><br></font></div>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="1230" y="212" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="ftWq0-_qyHBcbyIwFHZy-4" value="6. BeanPostProcessor" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="955" y="442" width="140" height="20" as="geometry" />
</mxCell>
<mxCell id="ftWq0-_qyHBcbyIwFHZy-5" value="<p style="line-height: 0% ; font-size: 10px"><font style="font-size: 10px" face="Courier New" color="#999999">class MyBeanPostProcessor implements BeanPostProcessor {</font></p><p style="font-size: 10px"><font style="font-size: 10px" face="Courier New" color="#999999">&nbsp; @Override</font></p><p style="font-size: 10px"><font style="font-size: 10px" face="Courier New" color="#999999">&nbsp; public Object postProcessBeforeInitialization(Object bean, String beanName)</font></p><p style="font-size: 10px"><font style="font-size: 10px" face="Courier New" color="#999999">&nbsp;&nbsp;&nbsp; throws BeansException {</font></p><p style="font-size: 10px"><font style="font-size: 10px" face="Courier New" color="#999999">&nbsp;&nbsp;&nbsp; return bean;</font></p><p style="font-size: 10px"><font style="font-size: 10px" face="Courier New" color="#999999">&nbsp; }</font></p><p style="font-size: 10px"><font style="font-size: 10px" face="Courier New" color="#999999">&nbsp; @Override</font></p><p style="font-size: 10px"><font style="font-size: 10px" face="Courier New" color="#999999">&nbsp; public Object postProcessAfterInitialization(Object bean, String beanName)</font></p><p style="font-size: 10px"><font style="font-size: 10px" face="Courier New" color="#999999">&nbsp;&nbsp;&nbsp; throws BeansException {</font></p><p style="font-size: 10px"><font style="font-size: 10px" face="Courier New" color="#999999">&nbsp;&nbsp;&nbsp; return bean;</font></p><p style="font-size: 10px"><font style="font-size: 10px" face="Courier New" color="#999999">&nbsp; }</font></p><p style="font-size: 10px"><font style="font-size: 10px" face="Courier New" color="#999999">}</font></p>" style="text;html=1;align=left;verticalAlign=top;resizable=0;points=[];autosize=1;strokeColor=#666666;fillColor=#f5f5f5;fontColor=#333333;" parent="1" vertex="1">
<mxGeometry x="975" y="477" width="480" height="310" as="geometry" />
</mxCell>
<mxCell id="ftWq0-_qyHBcbyIwFHZy-6" value="7. Spring Interfaces" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="955" y="812" width="130" height="20" as="geometry" />
</mxCell>
<mxCell id="ftWq0-_qyHBcbyIwFHZy-8" value="<p><font color="#999999">implements InitializingBean -&gt;@Override public void afterProperiesSet()</font></p><p><font color="#999999">implements DisposableBean -&gt;@Override public void destroy()</font></p>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="955" y="822" width="430" height="70" as="geometry" />
</mxCell>
<mxCell id="khLsFe5QtT3k1vK67URB-1" value="<div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal">1) What is Spring Framework? <br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal">2) What Are the Benefits of Using Spring? <br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal">3) What Spring Sub-Projects Do You Know? Describe Them Briefly</span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal">.</span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"> <br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal">4) What is a Spring configuration file? <br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal">5) What are Spring Beans? <br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal">6) What are the bean scopes available in Spring? <br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal">7) Explain Bean life cycle in Spring Bean Factory Container. <br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div><div><font color="#999999"><span style="font-size: 13px ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></font></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="36" y="560" width="400" height="480" as="geometry" />
</mxCell>
<mxCell id="khLsFe5QtT3k1vK67URB-2" value="<br><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal">8) What is Tight Coupling? Loose Coupling? <br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal">9) What are the roles of an IOC (Inversion of Control) Container?</span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"> <br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal">10) List out the ways Autowiring is done. <br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal">11) Which Is the Best Way of Injecting Beans and Why? <br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal"><br></span></div><div><span style="font-size: 13px ; color: #000000 ; font-weight: normal ; text-decoration: none ; font-family: &#34;arial&#34; ; font-style: normal">12) Are Singleton Beans Thread-Safe?</span></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="486" y="538" width="380" height="310" as="geometry" />
</mxCell>
<mxCell id="ftWq0-_qyHBcbyIwFHZy-9" value="<div><font color="#999999">implements BeanNameAware, ApplicationContextAware</font></div><div><font color="#999999">@Override public void setBeanName(String name)</font></div><div><font color="#999999">@Override public void setApplicationContext(ApplicationContext ac)<br></font></div>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="1200" y="140" width="410" height="50" as="geometry" />
</mxCell>
<mxCell id="khLsFe5QtT3k1vK67URB-3" value="<div>Спринг фреймворк реализовывает Inversion of control паттерн, <br></div><div>а значит берет на себя управление жизненным циклом объектов <br></div><div>в приложении. <br></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="61" y="552" width="350" height="50" as="geometry" />
</mxCell>
<mxCell id="khLsFe5QtT3k1vK67URB-4" value="<div>Меньше связанность элементов, так как они не создаются непосредственно.</div><div>Добавляет кэширование, реализует несколько паттернов, вроде Singleton,</div><div>Prototype, Factory и другие. Позоляет вносить логику при создании объекта. <br></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="27" y="630" width="420" height="50" as="geometry" />
</mxCell>
<mxCell id="khLsFe5QtT3k1vK67URB-5" value="<div>Spring Security, Spring AOP, Spring Boot, Spring Data, Spring JDBC,</div><div>Spring Cloud, Spring Session<br></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="31" y="720" width="410" height="30" as="geometry" />
</mxCell>
<mxCell id="khLsFe5QtT3k1vK67URB-6" value="<div>@Value аннотация вызывает данные из YAML файла.<code class="literal"> <font face="Helvetica">или application.properties</font></code></div><div><code class="literal"><font face="Helvetica">Может быть несколько подобных файлов для разных environment</font><br></code></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="10" y="797" width="450" height="40" as="geometry" />
</mxCell>
<mxCell id="khLsFe5QtT3k1vK67URB-7" value="<div>Бинами называются объекты, которые находятся под управлением <br></div><div>Spring контейнера. Для их обозначения используются аннотации: <br></div><div>@Bean, @Component, @Service, @Repository, @Configuration<br></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="56" y="865" width="380" height="50" as="geometry" />
</mxCell>
<mxCell id="khLsFe5QtT3k1vK67URB-8" value="Singleton, Prototype, Request, Session,Global Session" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="75" y="955" width="330" height="20" as="geometry" />
</mxCell>
<mxCell id="khLsFe5QtT3k1vK67URB-9" value="<div>Spring initialization in Container and JVM, Metadata (id, scope, def. data),</div><div>Post-Initialization (Aware interfaces, PostConstruct), Ready to work,</div><div>PreDestroy, Destroy<br></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="25" y="1025" width="430" height="50" as="geometry" />
</mxCell>
<mxCell id="khLsFe5QtT3k1vK67URB-10" value="<div>Tight coupling это большое количество ссылок между объектами. <br></div><div>Spring обеспечивает Loose Coupling так как связывает бины <br></div><div>с помощью рефлексии<br></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="486" y="555" width="360" height="50" as="geometry" />
</mxCell>
<mxCell id="khLsFe5QtT3k1vK67URB-11" value="Управление жизненным циклом бинов, сессией" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="543" y="648" width="260" height="20" as="geometry" />
</mxCell>
<mxCell id="khLsFe5QtT3k1vK67URB-12" value="Field, Constructor, Setter" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="596" y="725" width="160" height="20" as="geometry" />
</mxCell>
<mxCell id="khLsFe5QtT3k1vK67URB-13" value="Constructor так как удобно тестировать " style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="551" y="807" width="230" height="20" as="geometry" />
</mxCell>
<mxCell id="khLsFe5QtT3k1vK67URB-14" value="Spring не предоставляет thread-safety" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="566" y="872" width="220" height="20" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>