Spring ๊ธฐ์ด(31)
-
Spring AOP [2] Advice, AOP ์ค์ ๋ฐ ํ ์คํธ, PointCut ํํ์
1. Spring AOP ๊ตฌํ ๋ฐฉ๋ฒ 1๏ธโฃ XML ๊ธฐ๋ฐ์ POJO ํด๋์ค๋ฅผ ์ด์ฉํ AOP ๊ตฌํ : ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Advice ํด๋์ค๋ฅผ ์์ฑํ๊ณ , XML ์ค์ ํ์ผ์ ์ ์ด์ฉํด์ Aspect๋ฅผ ์ค์ ํ๋ค. (Advice์ Pointcut์ ์ค์ ํจ.) 2๏ธโฃ @Aspect ์ด๋ ธํ ์ด์ ์ ์ด์ฉํ AOP ๊ตฌํ : @Aspect ์ด๋ ธํ ์ด์ ์ ์ด์ฉํด์ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Aspect ํด๋์ค๋ฅผ ์์ฑํ๋ค. Aspect ํด๋์ค์๋ Advice๋ฅผ ๊ตฌํํ๋ ๋ฉ์๋์ Pointcut์ ํฌํจํ๋ค. ๊ทธ๋ฆฌ๊ณ XML ์ค์ ํ์ผ์ ์ ์ค์ ํ๋ค. 2. Advice ์ข ๋ฅ 1๏ธโฃ Aroud Advice : Target์ ๋ฉ์๋๊ฐ ํธ์ถ๋๊ธฐ ์ด์ (Before) ์์ ๊ณผ ์ดํ (After) ์์ ์ ๋ชจ๋ ์ฒ๋ฆฌํด์ผํ ํ์๊ฐ ์๋ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ์ํ..
2021.11.15 -
Spring JDBC [3] ๊ฐ๋จํ ์ฌ์ฉ์ ๊ด๋ฆฌ ํ๋ก์ ํธ
https://hyejin.tistory.com/250 Spring JDBC [1] DAO ํจํด์ด๋?, DataSource, JDBC, jdbcTemplate ํด๋์ค 1. DAO(Data Access Object) ํจํด ๋ฐ์ดํฐ ์ก์ธ์ค ๊ณ์ธต์ DAO ํจํด์ ์ ์ฉํ์ฌ ๋น์ง๋์ค ๋ก์ง๊ณผ ๋ฐ์ดํฐ ์ก์ธ์ค ๋ก์ง์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์์น์ด๋ผ๊ณ ํ๋ค. DAO ํจํด์ ์๋น์ค ๊ณ์ธต์ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉด์ ๋ฐ hyejin.tistory.com https://hyejin.tistory.com/251 Spring JDBC [2] SPRING JDBC ํ๊ฒฝ์ค์ ํ๊ธฐ (Oracle JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น, Spring JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น, DataSour 1. DB ๊ณ์ ๋ฐ ํ ์ด๋ธ ์์ฑํ๊ธฐ 1๏ธโฃ ๊ด๋ฆฌ์๋ก ๋ก๊ทธ์ธํ์ฌ scott์ด๋ผ..
2021.11.12 -
Spring JDBC [2] SPRING JDBC ํ๊ฒฝ์ค์ ํ๊ธฐ (Oracle JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น, Spring JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น, DataSource ์์ฑ)
1. DB ๊ณ์ ๋ฐ ํ ์ด๋ธ ์์ฑํ๊ธฐ 1๏ธโฃ ๊ด๋ฆฌ์๋ก ๋ก๊ทธ์ธํ์ฌ scott์ด๋ผ๋ ๊ณ์ ์์ฑํ๊ธฐ 2๏ธโฃ scott์ด๋ผ๋ ๊ณ์ ์ ๊ถํ ๋ถ์ฌํด์ฃผ๊ธฐ 3๏ธโฃ ํ ์ด๋ธ ์์ฑํ๊ธฐ 4๏ธโฃ ํ ์ด๋ธ์ ๋ฐ์ดํฐ ์ฝ์ ํ commit ํ๊ธฐ 5๏ธโฃ USERS ํ ์ด๋ธ ๋ฐ์ดํฐ ์กฐํํด๋ณด๊ธฐ 2. Oracle JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ pom.xml์ ์ค์นํ๊ธฐ ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ Oracle ์ฌ์ฉํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ Oracle ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ ๊ฒ์ด๋ค. https://mvnrepository.com/artifact/oracle/ojdbc6/11.2.0.3 pom.xml ์ ์ถ๊ฐํ๋ค. 3. Spring JDBC ์ค์นํ๊ธฐ https://mvnrepository.com/artifact/org.springframework/spring-jdbc/5.2.17..
2021.11.11 -
Spring JDBC [1] DAO ํจํด์ด๋?, DataSource, JDBC, jdbcTemplate ํด๋์ค
1. DAO(Data Access Object) ํจํด ๋ฐ์ดํฐ ์ก์ธ์ค ๊ณ์ธต์ DAO ํจํด์ ์ ์ฉํ์ฌ ๋น์ง๋์ค ๋ก์ง๊ณผ ๋ฐ์ดํฐ ์ก์ธ์ค ๋ก์ง์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์์น์ด๋ผ๊ณ ํ๋ค. DAO ํจํด์ ์๋น์ค ๊ณ์ธต์ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉด์ ๋ฐ์ดํฐ ์ก์ธ์ค ๊ธฐ์ ์ ๋ณ๊ฒฝํ ์ ์๋ค๋ ์ฅ์ ์ ๊ฐ์ง๊ณ ์๋ค. 2. DataSource DataSource๋ ์ปจ๋ฅ์ ํ๋ง์ ์ง์ํ๋ค. ๋ค์ค ์ฌ์ฉ์๋ฅผ ๊ฐ๋ ์ํฐํ๋ผ์ด์ฆ ์์คํ ์ด๋ผ๋ฉด ๋ฐ๋์ DB ์ปค๋ฅ์ ํ๋ง ๊ธฐ๋ฅ์ ์ง์ํ๋ DataSource๋ฅผ ์ฌ์ฉํด์ผํ๋ค. -> Spring ์์๋ DataSource๋ฅผ ๊ณต์ ๊ฐ๋ฅํ Spring Bean์ผ๋ก ๋ฑ๋กํด์ฃผ์ด ์ฌ์ฉํ ์ ์๋๋ก ํด์ค๋ค. โ ์ปจ๋ฅ์ ํ๋ง์ด๋? ์ปจ๋ฅ์ ํ๋ง์ ๋ฏธ๋ฆฌ ์ ํด์ง ๊ฐ์๋งํผ์ DB์ปค๋ฅ์ ํ(pool)์ ์ค๋นํด๋๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ฒญํ ..
2021.11.11 -
Spring Bean๋ฑ๋ก ๋ฉํ์ ๋ณด ์ค์ , Bean ๋ฑ๋ก annotation(@Component, @Repository, @Service, @Controller) , Bean ์์กด๊ด๊ณ ์ฃผ์ annotation (@Autowired, @Resource, @Value, @Quailfier), ํ๋กํผํฐ ํ์ผ์ ์ด์ฉํ ์ค์
1. Bean ๋ฑ๋ก ๋ฉํ์ ๋ณด ๊ตฌ์ฑ 1๏ธโฃ XML ๋จ๋ ์ฌ์ฉ ์ง๊ธ๊น์ง ์ฌ์ฉํด์๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ชจ๋ Bean์ XML์ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ์ด๋ค. -> ์ด ๋ฐฉ๋ฒ์ ๋ชจ๋ Bean์ XML ์์ ํ์ธํ ์ ์์ง๋ง Bean ๊ฐ์๊ฐ ๋ง์์ง๋ฉด xml ํ์ผ์ ๊ด๋ฆฌํ๊ธฐ ์ ์ ์ด๋ ค์์ง๋ค. -> ๋ค๋ฅธ ๊ฐ๋ฐ์๋ค๊ณผ ๊ณตํต์ผ๋ก ํด๋น ์ค์ ํ์ผ์ ๊ณต์ ํด์ ๊ฐ๋ฐํ๋ค๋ฉด ์ค์ ํ์ผ์ ๋์์ ์์ ํ๋ค๊ฐ ์ถฉ๋์ด ์ผ์ด๋๋ ์ํ์ด ์๊ธธ ์๋ ์๋ค. -> DI ์ ํ์ํ Setter ๋ฉ์๋์ Constructor ๊ฐ ์ฝ๋ ๋ด์ ๋ฐ๋์ ์กด์ฌํด์ผํ๋ค. 2๏ธโฃ XML๊ณผ ๋น ์ค์บ๋(Bean Scanning) ์ ํผ์ฉ Bean์ผ๋ก ์ฌ์ฉ๋ ํด๋์ค์ ํน๋ณํ annotation์ ๋ถ์ฌํด์ฃผ๋ฉด ์ด๋ฐ ํด๋์ค๋ฅผ ์๋์ผ๋ก ์ฐพ์์ Bean์ผ๋ก ๋ฑ๋กํด์ค๋ค. ํน์ annotation์ด..
2021.11.09 -
Spring Bean ์์กด๊ด๊ณ, ํ๋กํผํฐ ๊ฐ ์ค์ , ํ๋กํผํฐ ํ์ผ์ ์ด์ฉํ ๊ฐ ์ค์ ํ๊ธฐ
1. Bean ์์กด๊ด๊ณ ์ค์ 1๏ธโฃ Setter Injection Setter ๋ฉ์๋๋ฅผ ํตํด ์์กด๊ด๊ณ๊ฐ ์๋ Bean์ ์ฃผ์ ํ๊ธฐ ์ํด์๋ ํ๊ทธ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ์ด๋ ref ์์ฑ์ Bean ์ด๋ฆ์ ์ด์ฉํด ์ฃผ์ ํ Bean์ ์ฐพ๊ณ , value ์์ฑ์ ๋จ์ ๊ฐ ๋๋ Bean์ด ์๋ ๊ฐ์ฒด๋ฅผ ์ฃผ์ ํ ๋ ์ฌ์ฉํ๋ค. Hello ํด๋์ค์ setter ๋ฉ์๋๋ฅผ ํตํด Bean ์ฃผ์ ํ ๋ property ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ค. ์ด๋ setName์ String์ด๊ธฐ ๋๋ฌธ์ ๋จ์ ๊ฐ์ ๋ฃ์ด์ฃผ๊ธฐ ์ํด value์์ฑ์ผ๋ก ์ค์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ setPrinter์ Printer๋ผ๋ Bean์ ์ฃผ์ ํด์ค์ผํ๊ธฐ ๋๋ฌธ์ ref ์์ฑ์ผ๋ก ์ค์ ํ๋ค. 2๏ธโฃ Constructor Injection Constructor(์์ฑ์)๋ฅผ ํตํด ์์กด๊ด๊ณ๊ฐ ์๋ ..
2021.11.09 -
Spring DI ์ ํ๋ฆฌ์ผ์ด์ Junit ํ ์คํธ ํด๋์ค ์์ฑํ๊ธฐ
1. Junit Junit์ ๋จ์ํ ์คํธ ํ๋ ์์ํฌ์ด๋ค. Junit์ @Test ๋ฉ์๋๊ฐ ๊ฐ๊ฐ ํธ์ถ๋ ๋ ๋ง๋ค ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ฑํ์ฌ ๋ ๋ฆฝ์ ์ธ ํ ์คํธ๊ฐ ์ด๋ฃจ์ด์ง๋๋ก ํ๋ค. โ ๋จ์ํ ์คํธ๋? ๋ชจ๋ ํจ์์ ๋ฉ์๋์ ๋ํ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๋ ์ ์ฐจ๋ฅผ ์๋ฏธํ๋ค. 2. Junit ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น https://mvnrepository.com/artifact/junit/junit ์ฌ๊ธฐ์ ๋๋ 4.12 ๋ฒ์ ์ pom.xml ์ ์ถ๊ฐํด์คฌ๋ค. ๊ทผ๋ฐ ์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์ pom.xml์ ์ ๋ณด๋ฉด ์ด๋ฏธ junit ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์๋ค. ์ด๊ฑธ ํ์ธ๋ ์ํ๊ณ ๊ทธ๋ฅ ์ถ๊ฐ๋ฅผ ํด์คฌ๋๋ SpringJUnit4ClassRunner requires JUnit 4.12 or higher ์ด๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํด์ ํ์ฐธ ํค๋งค๋ค๊ฐ ๊ฒจ์ฐ ๋ฐ๊ฒฌํ๋ค ใ ..
2021.11.09