전체 글 (205) 썸네일형 리스트형 [에러] <Spring> java.lang.IllegalArgumentException: Name for argument of type [java.lang.String]..... 코드 @RequestMapping(value = "/insertCart", method = RequestMethod.POST) public @ResponseBody boolean insertCart(CartDTO cartDTO, ProductDTO productDTO, Model model, HttpSession session, @RequestParam String productID, @RequestParam String productQuantity) { 내용 ◎ java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not avail.. [에러] <MySQL> Error Code: 1052 쿼리 SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_DETAIL, SALE_PRICE, INGREDIENT, DOSAGE, EXPIRATION_DATE, c.CATEGORY_NAME, i.IMAGE_PATH FROM PRODUCT p JOIN PRODUCT_CATEGORY pc ON p.PRODUCT_ID = pc.PRODUCT_ID JOIN CATEGORY c ON pc.CATEGORY_ID = c.CATEGORY_ID JOIN PRODUCT_IMAGE pi ON p.PRODUCT_ID = pi.PRODUCT_ID JOIN IMAGE i ON pi.IMAGE_ID = i.IMAGE_ID WHERE PRODUCT_ID = 245; 내용 ◎ Column 'PRODUCT_ID' i.. [에러] <MySQL> Incorrect result size : 에러 원인 ◎ 데이터베이스 쿼리를 실행했을 때 예상한 행의 수와 실제로 반환된 행의 수가 일치하지 않을 때 발생한다. 해결 ◎ 중간에 들어오는 null값을 방지해서 해결 [에러] <Spring> JdbcTemplate null pointer exception 에러 원인 ◎ 데이터 크롤링을 리스너로 움직이도록 설정해 놓았다. ◎ JdbcTemplate 초기화 타이밍 보다 크롤링이 움직이는 타이밍이 빠르다. ◎ JdbcTemplate 초기화되어 있지 않기에 쿼리문 수행이 불가능하다. 해결 ◎ 크롤링 리스너 맨 위에 DAO를 먼저 Autowired하도록 해준다. @Component public class CrawlingListener implements ApplicationListener { @Autowired private ProductDAO pDAO; @Override public void onApplicationEvent(ContextRefreshedEvent event) { crawling(); } @Repository("productDAO") public.. [라이브러리] <Spirng>〈Gradle〉Lombok Lombok 라이브러리 다운로드 ◎ 외부 라이브러리 파일이다. ⇨ 사용할 개발도구에 연결(설치) ⇨ 설치 이전의 프로젝트에는 적용되지 않는다. ◎ https://projectlombok.org/download Download projectlombok.org 설치 ◎ Specify location..을 눌러 STS를 지정해준다. ◎ 지정이 되었다면 인스톨한다. 사용 ◎ DTO에 @Data를 추가한다. import lombok.Data; @Data public class MemberDTO { private String memberID; // 아이디 private String memberPassword;// 비밀번호 private String memberName;// 이름 private String dayOf.. [프레임워크] <Spring>〈Gradle〉@PathVairalble @PathVairalble ◎ Command 객체 외에 해당 Contoller 메서드에서 필요한 데이터를 View측에서 전송한 경우 요청 경로에 보낸다. ◎ View측에서 전송한 데이터를 Controller 메서드에서 받기 위해 사용하는 @어노테이션이다. ⇨ 메서드 인자에서 받는다. [프레임워크] <Spring>〈Gradle〉프로젝트 특징 MC ◎ 컨트롤러 ◎ 모델 정적웹 리소스 ◎ html ◎ 이미지 ◎ 템플릿 동적웹 리소스 ◎ jsp 의존성 설정 plugins { id 'java' id 'war' id 'org.springframework.boot' version '3.2.3' id 'io.spring.dependency-management' version '1.1.4' } group = 'com.koreait' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' provide.. [프레임워크] <Spring>〈Maven〉Command객체를 활용한 Controller Command 객체 ◎ 사용자의 입력을 나타내는 객체이다. ◎ 사용자가 웹 페이지에서 양식을 작성하고 제출할 때, 이 양식에 입력된 데이터를 수집하고 처리하기 위해 사용된다. @Controller에서의 활용 ◎ 인터페이스가 아니므로 메서드 시그니쳐 강제성이 사라진다. ◎ 이전에는 req, res를 인자로 가지므로 완전한 POJO는 아니었다. ◎ 바로 DTO로 받아올 수 있다. ⇨ Spring 컨테이너 ➔ DTO(Command 객체)를 new ➔ req에 저장된 정보중에 DTO 멤버변수와 같은 파라미터명이 있다면 해당 값 추출 가능하다. ➔ 추출한 값을 DTO 멤버변수에 set 가능 : setter 활용 ⇨ DAO,MAV ➠ Model,JSP 내장객체(Session)도 Command 객체가 될 수 있다. .. [프레임워크] <Spirng>〈Maven〉Spring에서의 MVC2 구조 기본 MVC2 구조의 흐름 ◎ 브라우저 ⇩ ◎ 요청 ⇩ ◎ 요청정보를 FrontController==Dispatcher에서 받아서 요청을 확인 ⇩ ◎ HandlerMapping으로 해당 요청에 대해서 어떤 Controller가 필요한지 확인 ◎ 팩토리 패턴을 활용하여 요청(String)을 받으면 Controller(객체)를 반환 ⇩ ◎ Controller는 메서드를 수행 ➠ Service ➠ DAO String을 반환 ⇩ ◎ Action을 수행하면 ActionForward==ViewResolver를 사용하여 응답 ◎ ViewResolver가 Controller에서 반환된 String을 보고 사용자에게 VEIW 페이지를 응답 의존관계 ◎ Dispathcer-Servlet ⇨ HandlerMapping, V.. [프레임워크] <Spring>〈Maven〉Transaction Transaction ◎ 더 이상 쪼갤 수 없는 최소 작업 단위를 의미한다. ◎ 비즈니스 메서드의 실행 중 문제가 생겼을 경우 이전 상태로 롤백하기 위해 사용되는 것이다. Transaction을 사용하기 위한 추가 스키마 ◎ xmlns:tx="http://www.springframework.org/schema/tx" ◎ http://www.springframework.org/schema/tx ◎ http://www.springframework.org/schema/tx/spring-tx-4.2.xsd 트랜잭션을 하기 위한 설정 ◎ advisor ⇨ == aspect == 위빙 // 모든 문에 대해 트랜잭션 //SELECT문에 대해 트랜잭션 // 위빙/결합 처리 이전 1 ··· 4 5 6 7 8 9 10 ··· 21 다음