๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Servlet์—์„œ ์Šคํ”„๋ง ApplicationContext ์‚ฌ์šฉํ•˜๊ธฐ Servlet์—์„œ ์Šคํ”„๋ง ApplicationContext ์‚ฌ์šฉํ•˜๊ธฐ pom.xml org.springframework spring-webmvc 5.1.3.RELEASE ์Šคํ”„๋ง ApplicationContext, ์ฆ‰ ์Šคํ”„๋ง IoC๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ด€๋ จ ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค. spring-context ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ์œ„ ์˜ˆ์ œ์—์„œ๋Š” spring-webmvc๋ฅผ ๊ฐ€์ ธ์˜ค๋„๋ก ํ–ˆ์ง€๋งŒ spring-context๋งŒ ๊ฐ€์ ธ์™€๋„ ๋œ๋‹ค. web.xml org.springframework.web.context.ContextLoaderListener contextClass org.springframework.web.context.support.AnnotationConfigWebApplication.. 2020. 3. 11.
[Spring] ResourceLoader๋กœ ํ…์ŠคํŠธ ํŒŒ์ผ ์ถœ๋ ฅํ•˜๊ธฐ (Java 11) [Spring] ResourceLoader๋กœ ํ…์ŠคํŠธ ํŒŒ์ผ ์ถœ๋ ฅํ•˜๊ธฐ (Java 11) Spring์˜ ApplicationContext๋Š” ResourceLoader๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†ํ•œ๋‹ค. ์ด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ด๋ฆ„์—์„œ๋ถ€ํ„ฐ ์•Œ ์ˆ˜ ์žˆ๋“ฏ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฝ์–ด์˜ค๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. 1. Resource ๊ฐ์ฒด ์–ป๊ธฐ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.sprin.. 2020. 3. 5.
[Spring] Spring ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฉ”์‹œ์ง€ ๋‹ค๊ตญ์–ด ๋ฐ ์žฌ๋กœ๋”ฉ ์ฒ˜๋ฆฌ [Spring] Spring ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฉ”์‹œ์ง€ ๋‹ค๊ตญ์–ด ๋ฐ ์žฌ๋กœ๋”ฉ ์ฒ˜๋ฆฌ Spring IoC ์ปจํ…Œ์ด๋„ˆ = ApplicationContext๊ฐ€ ๊ฐ–๊ณ ์žˆ๋Š” ๊ธฐ๋Šฅ ์ค‘ MessageSource๋Š” ๊ตญ์ œํ™”(i18n)์™€ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์ฃผ๋Š”๋ฐ ์ด๋ฅผ ์ด์šฉํ•ด์„œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ถœ๋ ฅํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋‹ค๊ตญํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. 1. ๋ฉ”์‹œ์ง€ ํŒŒ์ผ ์ž‘์„ฑ resources ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜์— messages.properties, messages_ko_KR.properties ํŒŒ์ผ์„ ์ƒˆ๋กœ ์ƒ์„ฑํ•œ๋‹ค. ์—ฌ๊ธฐ์— ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ถœ๋ ฅํ•  ๋ฉ”์‹œ์ง€๋ฅผ messages.properties์—๋Š” ์˜์–ด๋กœ, messages_ko_KR.proeprties์—๋Š” ํ•œ๊ตญ์–ด๋กœ ์ž‘์„ฑํ•  ๊ฒƒ์ด๋‹ค. ํŒŒ์ผ๋ช…์— ์˜คํƒ€๊ฐ€ ๋‚˜์ง€ ์•Š๋„๋ก ์กฐ์‹ฌํ•˜์ž. ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ๋‚˜๋ฉด ์ž๋™์œผ๋กœ 'messages.. 2020. 3. 4.
[Spring] EnvironmentCapable - Property ์‚ฌ์šฉํ•˜๊ธฐ ๊ด€๋ จ ๊ธ€ - JAVA ์›น ํ”„๋กœ์ ํŠธ์—์„œ Properties ํŒŒ์ผ ํ™œ์šฉํ•˜๊ธฐ - [Spring] EnvironmentCapable - Profile ์‚ฌ์šฉํ•˜๊ธฐ [Spring] EnvironmentCapable - Property ์‚ฌ์šฉํ•˜๊ธฐ ApplicationContext๋Š” EnvironmentCapable์„ ์ƒ์†๋ฐ›์œผ๋ฉฐ, EnvironmentCapable์ด ์ œ๊ณตํ•˜๋Š” ์ฃผ์š” ๊ธฐ๋Šฅ์—๋Š” profile๊ณผ property๊ฐ€ ์žˆ๋‹ค. ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ทธ ์ค‘ property์— ๋Œ€ํ•ด ์‚ดํŽด๋ณธ๋‹ค. 1. Property ๊ธฐ๋Šฅ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ key, value ์Œ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ํ”„๋กœํผํ‹ฐ์— ๊ฐ„ํŽธํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. Spring์€ ํ”„๋กœํผํ‹ฐ์— '๊ณ„์ธตํ˜•'์œผ๋กœ ์ ‘๊ทผํ•˜๋Š”๋ฐ ๊ณ„์ธตํ˜•์œผ๋กœ ์ ‘๊ทผํ•œ๋‹ค๋Š” ๋ง์€ ํ”„๋กœํผํ‹ฐ์— ์šฐ์„ ์ˆœ์œ„๊ฐ€.. 2020. 3. 4.
[Spring] EnvironmentCapable - Profile ์‚ฌ์šฉํ•˜๊ธฐ [Spring] EnvironmentCapable - Profile ์‚ฌ์šฉํ•˜๊ธฐ Spring์˜ ApplicationContext๋Š” BeanFactory ๊ธฐ๋Šฅ๋งŒ ํ•˜๋Š”๊ฑด ์•„๋‹ˆ๋‹ค. ApplicationContext๊ฐ€ ์ƒ์†๋ฐ›๋Š” ๋‹ค์–‘ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋“ค ์ค‘ EnvironmentCapable ์ธํ„ฐํŽ˜์ด์Šค๋Š” 'Profile(ํ”„๋กœํŒŒ์ผ)' ์ด๋ผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. Profile(ํ”„๋กœํŒŒ์ผ)์˜ ๊ฐœ๋… ํ”„๋กœํŒŒ์ผ = ๋นˆ๋“ค์˜ ๋ฌถ์Œ ํ”„๋กœํŒŒ์ผ์€ ํŠน์ • ์‹คํ–‰ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ๋นˆ๋“ค์˜ ๋ฌถ์Œ์ด๋‹ค. ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ๋นˆ ๋ฌถ์Œ๊ณผ ํ”„๋กœ๋•์…˜(์šด์˜) ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ๋นˆ ๋ฌถ์Œ์ด ์„œ๋กœ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ๋˜ ๊ฐ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ์„œ๋กœ ๋‹ค๋ฅธ ๋นˆ๋“ค์„ ์จ์•ผํ•˜๋Š” ๊ฒฝ์šฐ, ํŠน์ • ํ™˜๊ฒฝ์—์„œ๋งŒ ๋“ฑ๋กํ•ด์•ผํ•˜๋Š” ๋นˆ๋“ค์ด ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœํŒŒ์ผ์€ ๊ทธ๋Ÿฌํ•œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•  ์ˆ˜ ์žˆ๋Š”.. 2020. 3. 4.
[Spring] ๋นˆ์˜ Scope - ์‹ฑ๊ธ€ํ†ค๊ณผ ํ”„๋กœํ† ํƒ€์ž… [Spring] ๋นˆ์˜ Scope - ์‹ฑ๊ธ€ํ†ค๊ณผ ํ”„๋กœํ† ํƒ€์ž… ๋นˆ์„ ๋“ฑ๋กํ•  ๋•Œ ์•„๋ฌด๋Ÿฐ ์„ค์ •์„ ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋นˆ์€ ์‹ฑ๊ธ€ํ†ค scope์„ ๊ฐ–๋Š”๋‹ค. ์‹ฑ๊ธ€ํ†ค scope์ด๋ž€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „๋ฐ˜์— ๊ฑธ์ณ ํ•ด๋‹น ๋นˆ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์˜ค์ง ํ•˜๋‚˜๋งŒ ์ƒ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 1. Singleton Scope Single, Proto ํด๋ž˜์Šค๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค๊ณ  @Component๋ฅผ ๋ถ™์—ฌ ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•œ๋‹ค. Single.java 1 2 3 4 5 6 7 8 9 10 11 12 13 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class Single { @.. 2020. 3. 3.
[Spring] Component Scan๊ณผ Function์„ ์‚ฌ์šฉํ•œ ๋นˆ ๋“ฑ๋ก ๋ฐฉ๋ฒ• [Spring] Component Scan๊ณผ Function์„ ์‚ฌ์šฉํ•œ ๋นˆ ๋“ฑ๋ก ๋ฐฉ๋ฒ• 1. @ComponentScan @ComponentScan ์• ๋…ธํ…Œ์ด์…˜์€ spring 3.1๋ถ€ํ„ฐ ๋„์ž…๋์œผ๋ฉฐ ์„ค์ •๋œ ์‹œ์ž‘ ์ง€์ ๋ถ€ํ„ฐ ์ปดํฌ๋„ŒํŠธ ํด๋ž˜์Šค๋ฅผ scanningํ•˜์—ฌ ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ปดํฌ๋„ŒํŠธ ํด๋ž˜์Šค๋Š” ๋‹ค์Œ ์• ๋…ธํ…Œ์ด์…˜์ด ๋ถ™์€ ํด๋ž˜์Šค๋ฅผ ์˜๋ฏธํ•œ๋‹ค. @Component @Repository @Service @Controller @Configuration @ComponentScan์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋‘ ๊ฐ€์ง€ ์†์„ฑ์€ component๋ฅผ scanํ•  ์‹œ์ž‘ ์ง€์ ์„ ์„ค์ •ํ•˜๋Š” ์†์„ฑ๊ณผ scanํ•œ component ์ค‘ ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•˜์ง€ ์•Š์„ ํด๋ž˜์Šค๋ฅผ ์ œ์™ธํ•˜๋Š” ํ•„ํ„ฐ ์†์„ฑ์ด๋‹ค. 1) Scan ์‹œ์ž‘ ์ง€์  ์„ค์ • - basePackages()์™€.. 2020. 3. 2.
[Spring] @Autowired์˜ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• - required, Primary, Qualifier [Spring] @Autowired์˜ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• - required, Primary, Qualifier 1. ์˜์กด๊ฐ์ฒด ํƒ€์ž…์˜ ๋นˆ์ด ์—†๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด BookService ํด๋ž˜์Šค์™€ BookRepository ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ๋‹ค. import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class BookService { BookRepository bookRepository; @Autowired public BookService(BookRepository bookRepository) { this.bookRepository = boo.. 2020. 3. 1.
[Spring] ๋นˆ์„ ์„ค์ •ํ•˜๋Š” 3๊ฐ€์ง€ ๋ฐฉ๋ฒ• - XML, JAVA, Component Scan [Spring] ๋นˆ์„ ์„ค์ •ํ•˜๋Š” 3๊ฐ€์ง€ ๋ฐฉ๋ฒ• - XML, JAVA, Component Scan ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์˜ˆ์ œ ์ฝ”๋“œ์— ํ•„์š”ํ•œ ์˜์กด์„ฑ์„ ๋ฐ›๊ธฐ ์œ„ํ•ด spring boot ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•  ๊ฒƒ์ด๋‹ค. ์ฐธ๊ณ ๋กœ ์˜ˆ์ œ ์ฝ”๋“œ์—๋Š” ์ด ์˜์กด์„ฑ์ด ํ•„์š”ํ•˜๋‹ค. Spring Initializr๋ฅผ ์„ ํƒํ•˜๊ณ  Next๋ฅผ ํด๋ฆญํ•œ๋‹ค. Group, Artifact, Name์„ ์ž…๋ ฅํ•˜๊ณ  Next๋ฅผ ํด๋ฆญํ•œ๋‹ค. Group์€ ํŒจํ‚ค์ง€๋ช…์„ ์ ์–ด์ค€๋‹ค. (๋ณดํ†ต ๋„๋ฉ”์ธ๋ช…์„ ๋’ค์ง‘์–ด์„œ..) Web - Spring Web์„ ๋„ฃ๊ณ  Next๋ฅผ ํด๋ฆญํ•œ๋‹ค. Finish๋ฅผ ํด๋ฆญํ•ด์„œ ์‹ ๊ทœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์„ ์™„๋ฃŒํ•œ๋‹ค. Spring boot ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. pom.xml์„ ์—ด์–ด๋ณด๋ฉด spring boot 2.2.5 ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์šฐ์ธก์˜.. 2020. 3. 1.
[Spring] ์™œ ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ IoC ์ปจํ…Œ์ด๋„ˆ์˜ ๋นˆ์œผ๋กœ ๋งŒ๋“ค๊นŒ? [Spring] ์™œ ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ IoC ์ปจํ…Œ์ด๋„ˆ์˜ ๋นˆ์œผ๋กœ ๋งŒ๋“ค๊นŒ? IoC๋Š” spring์„ ํ†ตํ•ด์„œ๋งŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๊ฒŒ ์•„๋‹ˆ๋ฉฐ ์ผ๋ฐ˜ ์ž๋ฐ” ๊ฐ์ฒด๋กœ DI๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ• ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ๋„ spring์˜ IoC ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. DI(Dependency Injection, ์˜์กด์„ฑ ์ฃผ์ž…) DI๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค spring์—์„œ ์ œ๊ณตํ•˜๋Š” IoC ์ปจํ…Œ์ด๋„ˆ์˜ DI๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ•˜๊ณ  ํšจ์œจ์ ์ด๋‹ค. ๊ฐ์ฒด์˜ Scope ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ IoC ์ปจํ…Œ์ด๋„ˆ์˜ ๋นˆ์œผ๋กœ ๋งŒ๋“ค๋ฉด ๊ฐ์ฒด์˜ scope๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์šฉ์ดํ•˜๋‹ค. IoC ์ปจํ…Œ์ด๋„ˆ์—์„œ ๊ด€๋ฆฌ๋˜๋Š” ๋นˆ๋“ค์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹ฑ๊ธ€ํ†ค scope๋กœ ๋“ฑ๋ก๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „๋ฐ˜์ ์œผ๋กœ ์˜ค๋กœ์ง€ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ์‚ฌ์šฉํ•ด๋„ ๋˜๋Š” ๊ฐ์ฒด๋ผ๋ฉด IoC ์ปจํ…Œ์ด๋„ˆ์— ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•ด์„œ ์•„.. 2020. 3. 1.