@ConfigurationProperties @ConfigurationProperties๋ฅผ ์ฌ์ฉํ์ฌ application.yml๋ฑ๊ณผ ๊ฐ์ ์ค์ ์ ๋ณด์ ์์ฑํ ์ค์ ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ๊ฐ๋จํ ์์๋ฅผ ํตํด ํ์ธํด๋ณด๊ฒ ์ต๋๋ค. application.yml myproperty: name: shin ์ค์ ๊ฐ์ ๋ณด๊ดํ ํด๋์ค @ConstructorBinding @ConfigurationProperties("myproperty") data class ApplicationProperties( val name: String, ) { } @ConstructorBinding์ ์ฌ์ฉํ๋ฉด ์์ฑ์ ๋ฐฉ์์ผ๋ก ๊ฐ์ ์ธํ
ํ ์ ์์ด, ๋ถ๋ณ ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๋ฐ ์ฉ์ดํฉ๋๋ค. ๋ง์ฝ ์ด๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด setter๋ฅผ ํตํด ๊ฐ์ ๋ฐ์ธ๋ฉ ์..
๐๏ธ Spring
์ด๋๋ฐ์ด์ค์ ์ข
๋ฅ ๋ํ์ ์ธ ์ด๋๋ฐ์ด์ค๋ก๋ @Around๊ฐ ์ฌ์ฉ๋์ง๋ง, ์ด์ธ์๋ ๋ค๋ฅธ ์ด๋๋ฐ์ด์ค๋ค์ด ์กด์ฌํฉ๋๋ค. @Around @Before @AfterReturning @AfterThrowing @After @Around ๋ฉ์๋ ํธ์ถ ์ ํ์ ์ํ๋๋ ์ด๋๋ฐ์ด์ค๋ก, ๊ฐ์ฅ ๊ฐ๋ ฅํฉ๋๋ค. ์กฐ์ธ ํฌ์ธํธ์ ์คํ ์ฌ๋ถ์, ์คํ ํ์, ๋ฐํ ๊ฐ์ ๋ณํ๊ณผ ์์ธ ๋ณํ ๋ฑ์ ์ฌ๋ฌ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. @Before ์กฐ์ธ ํฌ์ธํธ ์คํ ์ด์ ์ ์คํ๋๋ ์ด๋๋ฐ์ด์ค์
๋๋ค. @AfterReturning ์กฐ์ธ ํฌ์ธํธ๊ฐ ์ ์์ ์ผ๋ก ์๋ฃ๋ ํ ์คํ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ @Around์๋ ๋ฌ๋ฆฌ ๊ฐ์ ๋ฐํ๋๋ ๊ฐ์ฒด๋ฅผ ๋ณ๊ฒฝํ ์๋ ์์ต๋๋ค. (์กฐ์์ ๊ฐ๋ฅํฉ๋๋ค.) @AfterThrowing ์กฐ์ธ ํฌ์ธํธ๊ฐ ์์ธ๋ฅผ ๋์ง๋ ๊ฒฝ์ฐ์ ์คํ๋ฉ๋๋ค. @After ..
๋งค๊ฐ๋ณ์ ์ ๋ฌ this, target, args, @target, @within, @annotation, @args ์์ ํฌ์ธํธ์ปท ์ง์์๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์ด๋๋ฐ์ด์ค์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ ํํ๋ก ์ฌ์ฉํฉ๋๋ค. @Before("allMember() && args(argName, ..)") fun log(argName: String) { println("[log] argName = {${argName}}") } ํฌ์ธํธ์ปท์์์ ์ด๋ฆ๊ณผ ๋งค๊ฐ๋ณ์์ ์ด๋ฆ์ ๋ง์ถ์ด์ผ ํฉ๋๋ค. ์์ ์์์์๋ argName์ผ๋ก ๋ง์ถ์์ต๋๋ค. ์ถ๊ฐ๋ก ํ์
์ด ๋ฉ์๋์ ์ง์ ๋ ํ์
์ผ๋ก ์ง์ ๋ฉ๋๋ค. ์ฆ args(argName, ..)๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋๋ ๊ฒ์
๋๋ค. args(String, ..) ์์ ์ฝ๋ @Target(..
ํฌ์ธํธ์ปท ์ง์์ (Pointcut Designators) ์คํ๋ง์์๋ ํฌ์ธํธ์ปท ํํ์์์ ์ฌ์ฉํ๊ธฐ ์ํด ๋ค์ AspectJ ํฌ์ธํธ์ปท ์ง์์(PCD)๋ฅผ ์ง์ํฉ๋๋ค. execution: ๋ฉ์๋ ์คํ ์กฐ์ธ ํฌ์ธํธ๋ฅผ ๋งค์นญํฉ๋๋ค. ์คํ๋ง AOP์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํฉ๋๋ค. ๋ค์์ ์ฐธ๊ณ - (https://ttl-blog.tistory.com/870) within: ํน์ ํ ํ์
๋ด์ ์กฐ์ธ ํฌ์ธํธ๋ฅผ ๋งค์นญํฉ๋๋ค. ๋ถ๋ชจ ํ์
์ ์ง์ ํ๋ฉด ์ ์ฉ๋์ง ์์ต๋๋ค. ๋ค์์ ์ฐธ๊ณ - (https://ttl-blog.tistory.com/871) this: ์คํ๋ง ๋น ๊ฐ์ฒด(์คํ๋ง AOP ํ๋ก์)๋ฅผ ๋์์ผ๋ก ํ๋ ์กฐ์ธ ํฌ์ธํธ๋ฅผ ๋งค์นญํฉ๋๋ค. ๋ค์์ ์ฐธ๊ณ - (https://ttl-blog.tistory.com/878) target: tar..
ํฌ์ธํธ์ปท ์ง์์ (Pointcut Designators) ์คํ๋ง์์๋ ํฌ์ธํธ์ปท ํํ์์์ ์ฌ์ฉํ๊ธฐ ์ํด ๋ค์ AspectJ ํฌ์ธํธ์ปท ์ง์์(PCD)๋ฅผ ์ง์ํฉ๋๋ค. execution: ๋ฉ์๋ ์คํ ์กฐ์ธ ํฌ์ธํธ๋ฅผ ๋งค์นญํฉ๋๋ค. ์คํ๋ง AOP์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํฉ๋๋ค. ๋ค์์ ์ฐธ๊ณ - (https://ttl-blog.tistory.com/870) within: ํน์ ํ ํ์
๋ด์ ์กฐ์ธ ํฌ์ธํธ๋ฅผ ๋งค์นญํฉ๋๋ค. ๋ถ๋ชจ ํ์
์ ์ง์ ํ๋ฉด ์ ์ฉ๋์ง ์์ต๋๋ค. ๋ค์์ ์ฐธ๊ณ - (https://ttl-blog.tistory.com/871) this: ์คํ๋ง ๋น ๊ฐ์ฒด(์คํ๋ง AOP ํ๋ก์)๋ฅผ ๋์์ผ๋ก ํ๋ ์กฐ์ธ ํฌ์ธํธ๋ฅผ ๋งค์นญํฉ๋๋ค. target: target ๊ฐ์ฒด(์คํ๋ง AOP ํ๋ก์๊ฐ ๊ฐ๋ฆฌํค๋ ์ค์ ๋์)๋ฅผ ๋์์ผ๋ก ํ๋ ์กฐ์ธ ..
ํฌ์ธํธ์ปท ์ง์์ (Pointcut Designators) ์คํ๋ง์์๋ ํฌ์ธํธ์ปท ํํ์์์ ์ฌ์ฉํ๊ธฐ ์ํด ๋ค์ AspectJ ํฌ์ธํธ์ปท ์ง์์(PCD)๋ฅผ ์ง์ํฉ๋๋ค. execution: ๋ฉ์๋ ์คํ ์กฐ์ธ ํฌ์ธํธ๋ฅผ ๋งค์นญํฉ๋๋ค. ์คํ๋ง AOP์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํฉ๋๋ค. ๋ค์์ ์ฐธ๊ณ - (https://ttl-blog.tistory.com/870) within: ํน์ ํ ํ์
๋ด์ ์กฐ์ธ ํฌ์ธํธ๋ฅผ ๋งค์นญํฉ๋๋ค. ๋ถ๋ชจ ํ์
์ ์ง์ ํ๋ฉด ์ ์ฉ๋์ง ์์ต๋๋ค. ๋ค์์ ์ฐธ๊ณ - (https://ttl-blog.tistory.com/871) this: ์คํ๋ง ๋น ๊ฐ์ฒด(์คํ๋ง AOP ํ๋ก์)๋ฅผ ๋์์ผ๋ก ํ๋ ์กฐ์ธ ํฌ์ธํธ๋ฅผ ๋งค์นญํฉ๋๋ค. ๋ค์์ ์ฐธ๊ณ - (https://ttl-blog.tistory.com/878) target: tar..
ํฌ์ธํธ์ปท ์ง์์ (Pointcut Designators) ์คํ๋ง์์๋ ํฌ์ธํธ์ปท ํํ์์์ ์ฌ์ฉํ๊ธฐ ์ํด ๋ค์ AspectJ ํฌ์ธํธ์ปท ์ง์์(PCD)๋ฅผ ์ง์ํฉ๋๋ค. execution: ๋ฉ์๋ ์คํ ์กฐ์ธ ํฌ์ธํธ๋ฅผ ๋งค์นญํฉ๋๋ค. ์คํ๋ง AOP์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํฉ๋๋ค. ๋ค์์ ์ฐธ๊ณ - (https://ttl-blog.tistory.com/870) within: ํน์ ํ ํ์
๋ด์ ์กฐ์ธ ํฌ์ธํธ๋ฅผ ๋งค์นญํฉ๋๋ค. ๋ถ๋ชจ ํ์
์ ์ง์ ํ๋ฉด ์ ์ฉ๋์ง ์์ต๋๋ค. ๋ค์์ ์ฐธ๊ณ - (https://ttl-blog.tistory.com/871) this: ์คํ๋ง ๋น ๊ฐ์ฒด(์คํ๋ง AOP ํ๋ก์)๋ฅผ ๋์์ผ๋ก ํ๋ ์กฐ์ธ ํฌ์ธํธ๋ฅผ ๋งค์นญํฉ๋๋ค. ๋ค์์ ์ฐธ๊ณ - (https://ttl-blog.tistory.com/878) target: tar..
ํฌ์ธํธ์ปท ์ง์์ (Pointcut Designators) ์คํ๋ง์์๋ ํฌ์ธํธ์ปท ํํ์์์ ์ฌ์ฉํ๊ธฐ ์ํด ๋ค์ AspectJ ํฌ์ธํธ์ปท ์ง์์(PCD)๋ฅผ ์ง์ํฉ๋๋ค. execution: ๋ฉ์๋ ์คํ ์กฐ์ธ ํฌ์ธํธ๋ฅผ ๋งค์นญํฉ๋๋ค. ์คํ๋ง AOP์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํฉ๋๋ค. ๋ค์์ ์ฐธ๊ณ - (https://ttl-blog.tistory.com/870) within: ํน์ ํ ํ์
๋ด์ ์กฐ์ธ ํฌ์ธํธ๋ฅผ ๋งค์นญํฉ๋๋ค. ๋ถ๋ชจ ํ์
์ ์ง์ ํ๋ฉด ์ ์ฉ๋์ง ์์ต๋๋ค. ๋ค์์ ์ฐธ๊ณ - (https://ttl-blog.tistory.com/871) this: ์คํ๋ง ๋น ๊ฐ์ฒด(์คํ๋ง AOP ํ๋ก์)๋ฅผ ๋์์ผ๋ก ํ๋ ์กฐ์ธ ํฌ์ธํธ๋ฅผ ๋งค์นญํฉ๋๋ค. ๋ค์์ ์ฐธ๊ณ - (https://ttl-blog.tistory.com/878) target: tar..