728x90 Spring153 Spring MVC (스프링 웹 MVC) 강의 27 - Annotation으로 URL 매핑하기 주석 @Controller 아직 못 찾는다. 13행 주석 14행 추가 및 @Controller를 찾으려면 base-package="com.newlecture.web.service" 가 아니라 base-package="com.newlecture.web.controller" 라고 해주어야 한다. 그리고 base-package="com.newlecture.web" 이라고 해주면 service와 controller 다 찾을 수 있지만 성능상의 문제가 있으니 특정 해주는 편이 낫다. (영상 4분30초..이부분 이해하기 어려워서 그냥 다 받아 적어둠..) 어노테이션은 클래스를 찾는 것. 함수를 찾아서 실행하면 되는 것.. @컴포넌트나 @콘트롤러다 라면 객체를 생성하면 된다. 그러니깐 어노테이션이 붙어있으면 뭔가 해.. 2022. 1. 7. Spring MVC (스프링 웹 MVC) 강의 26 - Annotation으로 서비스 객체 생성하기 이번 시간은 서비스 객체 자체를 어노테이션 설정 지난 시간에는 인젝션만 주석했으나 22~24행 통채로 주석하면 객체도 컨테이너에서 사라진다. 그러면 컨트롤러에서 오류가 발생할 것이다. 얘가 객체가 되도록 설정이 필요하다. 이렇게 13행 삭제 혹은 주석하고 14행 추가 성공 하지만 @Component는 구성원이라는 넓은 의미이고 @Service라는 더 구체적 의미의 어노테이션이 있으니 이걸 써주자 바꾼 뒤에도 잘 된다. 출처: https://www.youtube.com/watch?v=Gpv_uilj3C4&list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T&index=52 2022. 1. 7. Spring MVC (스프링 웹 MVC) 강의 25 - 객체 DI를 Annotaion으로 변경하기 이부분 어노테이션으로 해보자. 4, 10, 11, 13, 17행에 추가 및 변경 xmlns:context="http://www.springframework.org/schema/context" http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd 18행 @Autowired .xml 로 하던 인젝션을 어노테이션으로 변경 성공 16, 18행 중 기능을 구현하면서 인젝션하고 싶을때는 18행이 세터 메서드를 실행하는것이므로 18행이 더 바람직하겠다. 기능이 더 필요하지 않다면 16행이 간편할 수 있다. 블럭 삭제 후 기본 생성자에 바인딩하는 방식으로 강의에선 진행함. .. 2022. 1. 7. Spring MVC (스프링 웹 MVC) 강의 24 - 스프링 설정파일 분리하기 폴더 생성 dispatcher-servlet.xml을 spring폴더에 복붙 내용 지우기 그상태로 복사 x3 디스패치.xml 내용을 3개로 나눌 예정 m.newlecture.web.controller.IndexController"/> m.newlecture.web.controller.notice.ListController"> m.newlecture.web.controller.notice.DetailController"/> m.newlecture.web.service.jdbc.JDBCNoticeService" > 아직 보안 관련 설정은 없으므로 서비스와 서블릿(껍데기 역할)로 나누고 디스패처는 삭제해도 되지만 확장자명을 backup으로 바꿔 임시로 냅둠 여기 내용을 org.springframework.we.. 2022. 1. 7. Spring MVC (스프링 웹 MVC) 강의 23 - 연결정보 분리하기 이렇게 자바에 적어 놓으면 나중에 배포 후 비밀번호 변경시 변경시마다 재배포해야하는 문제가 있다. 객체화 후 DI하여 배포하자 DB접속 주석처리 DataSource추가 세터추가 Class.~주석 커넥션 추가 package com.newlecture.web.service.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.Date; import java... 2022. 1. 7. Spring MVC (스프링 웹 MVC) 강의 22 - 서비스 객체 분리하기 기존에 JDBC로 구현 갑자기 JPA로 구현해야 한다면? 이럴때 인터페이스로 결합시켜놨다면 바꾸기 어렵지 않아진다. 인터페이스로 구현 해보자 패키지명 바꾸기 NoticeService.java 패키지 위치 옮기기 JDBC붙여서 이름 변경 이렇게 JPA패키지 추가를 위해 에서 finish 인터페이스 추가 JDBCNoticeService -> NoticeService Create~ 그러면 인터페이스에 메소드 생성된다. JDBC 가서 NoticeService implements한다 전체 복사 시작지점 완전 끝까지 복사 커서 블록에 커서내용 지우면서 복사한 부분 붙여넣기 내용 삭제 정리 완성 package com.newlecture.web.service; import java.sql.SQLException; im.. 2022. 1. 7. Request processing failed; nested exception is java.sql.SQLSyntaxErrorException: ORA-00904: "NUM": 부적합한 식별자 원인 String sql = "SELECT * FROM NOTICE WHERE "+field+" LIKE ? AND NUM BETWEEN ? AND ?"; 해결 String sql = "SELECT * FROM NOTICE WHERE "+field+" LIKE ? AND ID BETWEEN ? AND ?"; HTTP 상태 500 – 내부 서버 오류 타입 예외 보고 메시지 Request processing failed; nested exception is java.sql.SQLSyntaxErrorException: ORA-00904: "NUM": 부적합한 식별자 설명 서버가, 해당 요청을 충족시키지 못하게 하는 예기치 않은 조건을 맞닥뜨렸습니다. 예외 org.springframework.web.util.N.. 2022. 1. 6. 이전 1 ··· 12 13 14 15 16 17 18 ··· 22 다음 728x90