λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

TIL/Spring5

[Error] IllegalStateException: @Order on WebSecurityConfigurers must be unique μ—λŸ¬ Git Branch Merge κ³Όμ • ν›„ Application μ‹€ν–‰ μ‹œ λ§ˆμ£Όν•œ μ—λŸ¬λ‹€. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration': Injection of autowired dependencies failed; nested exception is java.lang.IllegalStateException: @Order on WebSecurityConfigurers must be unique. Order of 100 was already.. 2022. 7. 28.
[Error] application.yml 에 μ •μ˜ν•œ κ°’ μΈμ‹ν•˜μ§€ λͺ»ν•  경우 @Valueλž€? μŠ€ν”„λ§μ΄ κ΄€λ¦¬ν•˜λŠ” Bean 에 값듀을 μ£Όμž…ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” μ–΄λ…Έν…Œμ΄μ…˜μ΄λ‹€. μƒμ„±μž, λ©”μ†Œλ“œ νŒŒλΌλ―Έν„° λ ˆλ²¨μ—μ„œ μ‚¬μš© κ°€λŠ₯ν•˜λ‹€. Lombok λΌμ΄λΈŒλŸ¬λ¦¬μ—λ„ @Valueκ°€ μ‘΄μž¬ν•œλ‹€. μ—¬κΈ°μ„œ μ–ΈκΈ‰λœ @ValueλŠ” springframework의 annotationμ—μ„œ μ°Έμ‘°ν•œ Value 이닀. Lombok의 @ValueλŠ” immutable classλ₯Ό λ§Œλ“€ λ•Œ μ‚¬μš©ν•œλ‹€. - Lombok의 @ValueλŠ” λͺ¨λ“  ν•„λ“œλ₯Ό final, private type으둜 μ„€μ •ν•˜κ³  setter ν•¨μˆ˜λ₯Ό λ§Œλ“€μ§€ μ•ŠλŠ”λ‹€. application.yml에 μ •μ˜ν•œ 킀와 값을 μ½μ–΄μ˜€κΈ° μœ„ν•΄ @Value μ‚¬μš© application.ymlμ—μ„œ jwt의 secretμ΄λΌλŠ” ν‚€λ₯Ό @Value μ–΄λ…Έν…Œμ΄μ…˜μ„ μ΄μš©ν•˜μ—¬ μ‚¬μš©ν•˜κ³ μž ν–ˆλ‹€ κ·ΈλŸ¬λ‚˜ .. 2022. 7. 23.
.properties와 .yml 차이 λ‹€λ₯Έ ν™˜κ²½μ—μ„œλ„ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ λ™μž‘ν•  수 μžˆλ„λ‘ μ„€μ • κ΄€λ ¨ 정보가 λ“€μ–΄μžˆλŠ” ν•˜λ‚˜μ˜ νŒŒμΌμ΄λ‹€. 포트 μ„€μ •, μ–΄λ–€ λ°μ΄ν„°λ² μ΄μŠ€μ™€ 연결해쀄 것인지와 κ΄€λ ¨ν•œ 정보 등을 μ €μž₯ν•  수 μžˆλ‹€. μŠ€ν”„λ§ λΆ€νŠΈμ˜ μ„œλ²„λ²ˆν˜ΈλŠ” 8080이 default μ΄μ§€λ§Œ, λ‹€λ₯Έ 포트λ₯Ό μ‚¬μš©ν•˜κ³  μ‹Άλ‹€λ©΄ μ„€μ • νŒŒμΌμ— 선언해쀄 수 μžˆλ‹€. server.port = 9090 두 파일 λͺ¨λ‘ μ„€μ • νŒŒμΌμ΄λΌλŠ” 곡톡점을 κ°€μ§€κ³  μžˆμ§€λ§Œ, μ„œμˆ ν•˜λŠ” 방식은 λ‹€λ₯΄λ‹€. Elastric Searchλ‚˜ MongoDB databaseλŠ” YAML(.yml)을 default configuration format으둜 μ‚¬μš©ν•œλ‹€. Javaμ—μ„œλŠ” 주둜 .propertiesλ₯Ό 많이 μ΄μš©ν•œλ‹€. ***.yml # κ΅¬λΆ„μž: spacebar, (XX tab) somemap: key:val.. 2022. 7. 19.
SpringBoot - build.gradle의 이해 * μ½”λ“œμ˜ 이해 buildscript { /* * ext: μ „μ—­λ³€μˆ˜λ₯Ό μ„€μ •ν•˜κ² λ‹€. * 'springBootVersion' μ΄λΌλŠ” μ „μ—­λ³€μˆ˜μ˜ 값은 '2.1.7 RELEASE' 이닀. * */ ext { springBootVersion = '2.1.7.RELEASE' } repositories { mavenCentral() /* * jcenter(): 라이브러리 μ—…λ‘œλ“œ λ•Œλ¬Έμ— μ‚¬μš©ν•œλ‹€. * mavenCenteral에 올린 라이브러리의 버전 μ—…λ‘œλ“œκ°€ ν•„μš”ν•  λ•Œ, jcenter()이 ν•„μš”ν•˜λ‹€. * 2022λ…„ 1μ›”λΆ€ν„° 결함 해결을 μœ„ν•΄ 더이상 μ‚¬μš©ν•  수 μ—†λ‹€. * jcenter()을 maven으둜 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ ν•΄μ•Όν•œλ‹€. * */ // jcenter() } dependencies { classpath("org.sp.. 2022. 6. 23.
Gradle vs. Maven Gradleκ³Ό Maven λͺ¨λ‘ λΉŒλ“œ μžλ™ν™” 도ꡬ닀. Maven은 Apacheμ—μ„œ λ°°ν¬ν•˜μ˜€μœΌλ©°, ν”„λ‘œμ νŠΈ ν™˜κ²½ 섀정을 μœ„ν•΄ pom.xml μ΄λΌλŠ” XML νŒŒμΌμ„ μ‚¬μš©ν•œλ‹€. Gradle은 Googleμ—μ„œ μ•ˆλ“œλ‘œμ΄λ“œ ν”„λ‘œμ νŠΈλ₯Ό μœ„ν•œ λΉŒλ“œ μžλ™ν™” λ„κ΅¬λ‘œ 2007λ…„ 처음 λ°°ν¬ν•˜μ˜€λ‹€. gradle.buildλΌλŠ” νŒŒμΌμ— ν”„λ‘œμ νŠΈ ν™˜κ²½ 정보가 λ“€μ–΄μžˆλ‹€. κ²°λ‘  Gradle Maven 도메인 νŠΉν™” μ–Έμ–΄ ν”„λ‘œμ νŠΈλ₯Ό κ°œλ°œν•˜λŠ”λ° 기반 μžλ°”λ‘œ λ§Œλ“€μ–΄μ§€λŠ” μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ— 기반 Groovy 기반의 도메인 νŠΉν™” μ–Έμ–΄ μ‚¬μš© (λΉŒλ“œλ₯Ό μžλ™ν™”ν•˜κΈ° μœ„ν•œ λͺ©μ μœΌλ‘œ μž‘μ„±) * Groovy: Java κ°€μƒλ¨Έμ‹ μ—μ„œ μ‹€ν–‰λ˜λŠ” 동적 νƒ€μž… 슀크립트 μ–Έμ–΄ ν”„λ‘œμ νŠΈ ꡬ쑰λ₯Ό κ΅¬μ„±ν•˜κΈ° μœ„ν•΄ XML μ‚¬μš© ν”„λ‘œμ νŠΈμ— μƒˆλ‘œμš΄ λΌμ΄λΈŒλŸ¬λ¦¬λ“±μ„ μ£Όμž…ν•˜λŠ” 것이 쉬움 μƒˆλ‘œμš΄.. 2022. 6. 23.