Spring(47)
-
Spring Error ์์ธ ์ฒ๋ฆฌ ํ๋ ๋ฒ
Spring์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ ์ด๋ค ์ด์ ๋ก ์๋ฌ๊ฐ ๋ฐ์ํ ์๋ ์๋ค. ๊ทผ๋ฐ ๊ทธ๋ ๋ฐ๋ก ์๋ฌ ํ์ด์ง๋ฅผ ๋ง๋ค์ง ์๊ณ ๋ธ๋ผ์ฐ์ ์ ์๋ฌ ํ์ด์ง๋ฅผ ๋ํ๋ด๋ฉด ์ฌ์ฉ์๋ ๋นํฉ์ค๋ฌ์ธ ์ ์๋ค. ๋ฐ๋ผ์ ์์ธ ํ์ด์ง๋ฅผ ์์ฑํด์ฃผ๋ ๊ฒ์ด ์ข๋ค. ์ด๋ @ExceptionHandler ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํด์ ์ปจํธ๋กค๋ฌ์ ๋ฉ์๋์์ ์์ธ๊ฐ ๋ฐ์ํ์ ๋ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ค. ์์ฒญ ์ฒ๋ฆฌ ๊ณผ์ ์์ ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋. ๋น ๋ฅธ ์๊ฐ ๋ด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ก ํ๊ฒ ์ต๋๋ค. ์๋ฌ ํ์ : ์๋ฌ ๋ฉ์์ง : Home ์ด๋ฐ์์ผ๋ก ์์ฑํ๊ณ ์ ๋ฒ์ ๋ง๋ค์๋ Spring mvc ์ฌ์ฉ์ ๊ด๋ฆฌ ํ๋ก์ ํธ์์ ์ผ๋ถ๋ฌ ์๋ฌ๋ฅผ ๋ง๋ค์ด๋ดค๋ค. ์ผ๋ถ๋ฌ ์ฌ๊ธฐ๋ฅผ 1 ์ถ๊ฐํด์ sql๋ฌธ์์ ์๋ฌ๋ฅผ ๋ผ ์์ ์ด๋ค. ๊ทธ๋ฌ๋ฉด viewErrorํ์ด์ง์์ ์๋ฌ ํ์ ๊ณผ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํด์ค ๊ฒ..
2021.11.24 -
Spring MVC, Mybatis [2] ๊ฐ๋จํ ์ฌ์ฉ์ ๊ฒ์ํ ๋ง๋ค๊ธฐ
๊ทธ๋์ Spring ๊ณต๋ถ๋ฅผ ํ๋ฉด์ ํด์๋ ์ฌ์ฉ์ ๊ด๋ฆฌ ํ๋ก์ ํธ๋ฅผ ์ด์ ๊ฐ๋จํ์ง๋ง ํ๋ฉด ๊ตฌํ๊น์ง ํด์ ๋ง๋ค์ด ๋ณผ ์์ ์ด๋ค. Spring MVC Model2 ๋ฅผ ํ์ฉํด์ ํ ์์ ์ด๋ค. 1. Users ํ ์ด๋ธ Users ํ ์ด๋ธ์ userid, name, gender, city๋ก ๊ตฌ์ฑ๋์ด ์๋ค. 2. ์๋น์ค ๊ณ์ธต UserService ์ธํฐํ์ด์ค์ ์ด๋ฅผ ๊ตฌํํ UserServiceImple๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. 1๏ธโฃ UserService 2๏ธโฃ UserServicImple 3. ๋ฐ์ดํฐ ์ก์ธ์ค ๊ณ์ธต UserDAO ์ธํฐํ์ด์ค์ ์ด๋ฅผ ๊ตฌํํ UserDAOJDBC 1๏ธโฃ UserDAO 2๏ธโฃ UserDAOJDBC 4. Mapping ํ์ผ 5. MyBatis-Config ํ์ผ 6. Mapper ์ธํฐํ์ด์ค 7. ๋น ์ค์ ํ์ผ..
2021.11.24 -
Spring EL(Expression Language) ๊ณผ JSTL (Java Standard Tag Library)
1. EL (Expression Language) : EL ํํ์์ {} ๋ก ๋ฌถ๊ณ $ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. EL์ ์ ์ฅ ๊ฐ์ฒด์ ์ถ๋ ฅ์ ๋จ์ํ ํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋์ด ์ ์ฅ ๊ฐ์ฒด๋ฅผ ์ถ๋ ฅํ ๋ ์ด๋ฐ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค. - EL ํน์ง EL์ ๊ธฐ๋ณธ์ ์ผ๋ก 4๊ฐ์ง Scope(page, request, session, application)์ผ๋ก ๊ตฌ์ฑ๋์ด ๊ฐ์ฒด์ ์ ๊ทผํ์ฌ ์ถ๋ ฅ์ ์ฒ๋ฆฌํ๋ค. EL์์๋ ํด๋น๊ฐ์ด NULL์ด๊ฑฐ๋ ๊ณต๋ฐฑ์ผ ๊ฒฝ์ฐ์๋ ์๋ฌด ๋ด์ฉ๋ ํ์ํ์ง์๊ณ ์๋ฌ๋ ๋ฐ์ํ์ง ์๋๋ค. 2. EL๊ณผ ์คํฌ๋ฆฌํ ๋น๊ต -> ${param.name} -> ${greet} -> ${user} -> ${user.name} -> ${sessionScope.user.name} 2. JSTL(Java Standard Tag Li..
2021.11.23 -
Spring MVC [1] Spring MVC ๊ฐ๋ ๋ฐ ํ๊ฒฝ์ค์
1. MVC (Model-View-Controller) ํจํด MVC ํจํด์ ์ํํธ์จ์ด ๊ณตํ์์ ์ฌ์ฉ๋๋ ์ํคํ ์ฒ ํจํด์ผ๋ก MVC ํจํด์ ์ฃผ ๋ชฉ์ ์ business logic๊ณผ presentation logic์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด๋ค. -> MVC ํจํด์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ก๋ถํฐ ๋น์ง๋์ค ๋ก์ง์ ๋ถ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์๋ก ์ํฅ์ด ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋๋ฐ ํจ์จ์ ์ด๋ค. Model : ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด (๋ฐ์ดํฐ, business logic ํฌํจ) View : ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ ํ๋ฉด (Presentation logic) Controller : Model ๊ณผ View ์ฌ์ด์ ์ํธ์์ฉ์ ๊ด๋ฆฌํ๋ค. 1๏ธโฃ Model ์ปดํฌ๋ํธ : ๋ฐ์ดํฐ ์ ์ฅ์(๋ฐ์ดํฐ๋ฒ ์ด์ค) ์ ์ฐ๋ํ์ฌ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ฐ์ดํฐ๋ ์ฌ์ฉ์์๊ฒ ์ถ๋ ฅํ ๋ฐ์ด..
2021.11.23 -
[Error] cvc-id.3: A field of identity constraint 'web-app-servlet-name-uniqueness' matched element 'web-app', but this element does not have a simple type. ์๋ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ
Spring ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ web.xml์ DispatcherServlet์ ์ค์ ํด์ฃผ๋ ค๋๋ฐ ์ด๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ๊ทธ๋ฅ ๊ตฌ๊ธ๋ง ํด๋ณด๋ ์ ๋ง ๊ฐ๋จํ๊ฒ http://java.sun.com ์ http://Java.sun.com์ผ๋ก ๋ก ๋ฐ๊ฟ์ฃผ๋ ํด๊ฒฐ๋๋คใ ใ ใ ใ ใ
2021.11.23 -
Spring MyBatis [2] Mapper ์ธํฐํ์ด์ค ๊ฐ๋ , ์ค์
1. Mapper ์ธํฐํ์ด์ค : Mapper ์ธํฐํ์ด์ค๋ Mapping ํ์ผ์ ๊ธฐ์ฌ๋ SQL์ ํธ์ถํ๊ธฐ ์ํ ์ธํฐํ์ด์ค์ด๋ค. ๋ฐ๋ผ์ Mapping ํ์ผ์ ์๋ SQL์ ์๋ฐ ์ธํฐํ์ด์ค๋ฅผ ํตํด ํธ์ถํ ์ ์๋๋ก ํด์ค๋ค. 1๏ธโฃ Mapper ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ง ์์์ ๋ -> Mapper ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด, SQL์ ํธ์ถํ๋ ํ๋ก๊ทธ๋จ์ SqlSession์ ๋ฉ์๋์ ์๊ท๋จผํธ์ ๋ฌธ์์ด๋ก ์ง์ ํด์ผํ๋๋ฐ ์ด๋ ๋ฌธ์์ด๋ก ์ง์ ํ๊ธฐ ๋๋ฌธ์ ์คํ๋๋ฌธ์ ์๋ฌ๊ฐ ๋ฐ์ํ ์ ๋ ์๋ค. 2๏ธโฃ Mapper ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ ๋ -> UserMapper ์ธํฐํ์ด์ค๋ ๊ฐ๋ฐ์๊ฐ ์์ฑํ๋ฉด ๋๋ค. 2. Mapper ์ธํฐํ์ด์ค ์์ฑ 1๏ธโฃ Mapper ์ธํฐํ์ด์ค๋ฅผ ์์ฑํ๋ค. 2๏ธโฃ Mapping ํ์ผ์ namespace๋ฅผ..
2021.11.18 -
Spring MyBatis [1] MyBatis ๊ฐ๋ , MyBatis-Spring ์ปดํฌ๋ํธ ์ญํ , MyBatis-Spring ๊ฐ๋จํ ์ฌ์ฉ์ ๊ด๋ฆฌ ์์
1. MyBatis : MyBatis๋ ์๋ฐ ์ค๋ธ์ ํธ์ SQL๋ฌธ ์ฌ์ด์ ์๋ Mapping ๊ธฐ๋ฅ์ ์ง์ํ๋ ORM ํ๋ ์์ํฌ์ด๋ค. - ํน์ง 1๏ธโฃ ์ฌ์ด ์ ๊ทผ์ฑ๊ณผ ์ฝ๋์ ๊ฐ๊ฒฐํจ 2๏ธโฃ SQL๋ฌธ๊ณผ ํ๋ก๊ทธ๋๋ฐ ์ฝ๋์ ๋ถ๋ฆฌ 3๏ธโฃ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ตฌํ ๊ฐ๋ฅ (JAVA, C#, NET, RUBY) 2. MyBatis ์ฃผ์ ์ปดํฌ๋ํธ -MyBatis3์ ์ฃผ์ ์ปดํฌ๋ํธ์ ์ญํ 1๏ธโฃ MyBatis ์ค์ ํ์ผ : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ ์ฃผ์ ์ ๋ณด๋ Mapping ํ์ผ์ ๊ฒฝ๋ก ๋ฑ ๊ณ ์ ๋ ํ๊ฒฝ์ ๋ณด๋ฅผ ์ค์ ํ๋ค. 2๏ธโฃ SqlSessionFactoryBuilder : MyBatis ์ค์ ํ์ผ์ ๋ฐํ์ผ๋ก SqlSessionFactory๋ฅผ ์์ฑํ๋ค. 3๏ธโฃ SqlSessionFactory : SqlSession์ ์์ฑํ๋ค. 4๏ธ..
2021.11.17 -
Spring AOP[3] @Aspect ์ด๋ ธํ ์ด์ ์ ์ด์ฉํ AOP ๊ตฌํ, Advice ์ ์ํ๋ ์ด๋ ธํ ์ด์ ์ข ๋ฅ, Aspect ํด๋์ค ์์ฑ ๋ฐ ํ ์คํธ
1. Spring AOP ๊ตฌํ ๋ฐฉ๋ฒ 1๏ธโฃ XML ๊ธฐ๋ฐ์ POJO ํด๋์ค๋ฅผ ์ด์ฉํ AOP ๊ตฌํ : ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Advice ํด๋์ค๋ฅผ ์์ฑํ๊ณ , XML ์ค์ ํ์ผ์ ์ ์ด์ฉํด์ Aspect๋ฅผ ์ค์ ํ๋ค. (Advice์ Pointcut์ ์ค์ ํจ.) 2๏ธโฃ @Aspect ์ด๋ ธํ ์ด์ ์ ์ด์ฉํ AOP ๊ตฌํ โ : @Aspect ์ด๋ ธํ ์ด์ ์ ์ด์ฉํด์ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Aspect ํด๋์ค๋ฅผ ์์ฑํ๋ค. Aspect ํด๋์ค์๋ Advice๋ฅผ ๊ตฌํํ๋ ๋ฉ์๋์ Pointcut์ ํฌํจํ๋ค. ๊ทธ๋ฆฌ๊ณ XML ์ค์ ํ์ผ์ ์ ์ค์ ํ๋ค. 2. Aspect ํด๋์ค ์ ์ธ ๋ฐ ์ค์ ํ๊ธฐ : Aspect ํด๋์ค์๋ 4๊ฐ์ง ์ ํ(Before, AfterReturning, AfterThrowing, After)์ Advice์ Poi..
2021.11.15 -
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 AOP(Aspect Oriented Programming) ๊ฐ๋ ๋ฐ ์ฉ์ด, AspectJ, Spring AOP ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
1. Spring AOP 1๏ธโฃ ํต์ฌ๊ธฐ๋ฅ๊ณผ ๋ถ๊ฐ๊ธฐ๋ฅ ํต์ฌ ๊ธฐ๋ฅ์ ์ ๋ฌด ๋ก์ง์ ํฌํจํ๋ ๊ธฐ๋ฅ์ด๊ณ , ๋ถ๊ฐ ๊ฐ๋ฅ์ ํต์ฌ ๊ธฐ๋ฅ์ ๋์์ฃผ๋ ๋ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ(๋ก๊น , ๋ณด์ ๋ฑ)์ ๋ถ๊ฐ๊ธฐ๋ฅ(cross-cutting Concerns)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. 2๏ธโฃ AOP(Aspect Oriented Programming) AOP๋ ์ ํ๋ฆฌ์ผ์ด์ ์์์ ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ, ์ฆ ํต์ฌ์ ์ธ ๊ธฐ๋ฅ์์ ๋ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ๋ค. ๋ฐ๋ผ์ AOP์ ๋ชฉ์ ์ ํ๋ก๊ทธ๋๋จธ๋ค์ ์ผ๋ ์ฌํญ์ ๋ณ๋์ ๊ด์ฌ์ฌ(Aspect)๋ก ๋ถ๋ฆฌํ์ฌ ์ฝ๋ ๊ฐ๋ฐํ ๋ ํต์ฌ ๊ธฐ๋ฅ์ ๋ ์ง์คํ ์ ์๋๋ก ํด์ฃผ๋ ๊ฒ์ด๋ค! => Separation of Cross-Cutting Concern 2. Spring AOP ์ฉ์ด 1๏ธโฃ Aspect : Aspect๋ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ์ํ ์ฝ๋์ธ Ad..
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