Spring
-
@Component @Autowired란?Spring/이론 정리 2023. 8. 7. 00:47
@Component란? - 개발자가 직접 작성한 Class를 @Bean으로 등록하는 것이다 - 기본값으로 싱글톤 클래스 빈을 생성하고 @Scope(“protoype") 변경이 가능하다 >> 클래스에 @Component @Scope(“protoype")로 변경 @Bean란? - 개발자가 직접 제어가 불가능한 외부 라이브러리등을 Bean으로 만들려할 때 사용된다 @Bean과 @Commponent - @Bean과 @Commpent는 Spring(IOC) container에 Bean을 등록하도록하는 메타데이터를 기입하는 어노테이션이다 차이점은 @Commponent는 개발자가 직접 작성한 Class를 @Bean으로 등록하는 것 @Autowired - @Component를 사용한 Bean의 의존성 주입은 @Auto..
-
DTO DAO VO란?Spring/이론 정리 2023. 8. 6. 12:27
계층(Layer)의 분리 @Controller @Service @Repository 계층이 분리되어있다 DTO (Data Transfer Object) DTO란 프로세스 간에 데이터를 전달하는 객체이다 DAO (Data Access Object) DAO란 영속성(Persistence) 계층에 인터페이스를 전송하는 패턴이다 서로에 대해 알 필요가 없는 두 계층을 엄격하게 분리할 수 있다 DTO와 DAO의 차이점? - 데이터 전송(Data Transfer)과 데이터 접근(Data Access)이라는 부분에서 차이점이 있다 - DTO는 데이터와 getter and setter 메서드로 이루어져 있는데(데이터 전송), DAO는 데이터 CRUD(Create, Read, Update, Delete) 메서드로 이루어..
-
12 댓글 기능 구현(4) 쓰기,수정 버튼 만들기Spring/03 MyBatis로 게시판 만들기 2023. 8. 1. 22:54
댓글 기능 구현(4) ⑥ 뷰(UI) 작성 & 테스트 - 댓글 쓰기 버튼 만들기 test.jsp(쓰기 버튼 만들기) >> 임시로 입력 받을 태그를 만들어 주었다 >> 기존의 SEND버튼이 쓰기 버튼의 역할도 한다 결과 확인 >> 쓰기가 생성되었다 >> stringify로 문자열로 변환하여 CommentController.java의 @RequestBody CommentDto commentDto에 전달된다 - 댓글 수정 버튼 만들기 test.jsp(수정 버튼 만들기) >> 주의할점은 class=modBtn 과 id=modBtn 다르다는 것에 유의하자 >> 여기서 this는 “.modBtn"을 의미 >> 참고 결과 확인 >> 수정 버튼을 누르면 ① comment의 내용이 comment: 에 전달된다 ② 수정(“..
-
12 댓글 기능 구현(3) 출력, 삭제 버튼 만들기Spring/03 MyBatis로 게시판 만들기 2023. 8. 1. 00:01
댓글 기능 구현(3) ⑥ 뷰(UI) 작성 & 테스트 - 댓글 화면에 출력하기 test.jsp (출력 버튼 만들기) >> json으로 전달하기 위해 주석처리하였다 SimpleRestController.java CommentController.java >> List 메서드를 사용해서 출력해볼 예정 결과 확인 >> Preview로 봤을 때 값이 들어온걸 확인할 수 있다 >> 문제는 http의 body에 출력되지 않는다 >> Sources에서 해당 $(“#commentList").html(result);에 중단점을 걸었다 >> Console에서 result의 값을 찍어보았다 정상적으로 값은 들어왔다 >> 버튼 동작과 임의 값 "asdf" 넣어봤다 이상없이 동작하고 "asdf“ 화면에 출력된다 >> 문자열이 아니..
-
11 댓글 기능 구현(2)Spring/03 MyBatis로 게시판 만들기 2023. 7. 28. 18:23
댓글 기능 구현(2) ⑤ 컨트롤러 작성 & 테스트 CommentController.java (List 메서드 생성) >> @ResponseBody를 써서 views에 출력하지 않고 HTTP의 Body에 문자 내용을 직접 반환한다 결과 확인 MySQL >> 각각의 테이블에 데이터를 넣었다 >> 데이터가 들어온걸 확인 할 수 있다 >> json으로 데이터가 들어왔다 - 예외가 발생한다면? CommentServiceImpl.java 결과 확인 >> HTTP의 Body에는 아무것도 출력되지 않고, 응답헤더는 200번대가 출력된다 - 해결책 ResoponseEntity( ) CommentController.java >> Entity는 응답이나 요청할 때, 전송할 대상을 Entity라고 한다 >> 원래는 En..
-
10 댓글 기능 구현(1)Spring/03 MyBatis로 게시판 만들기 2023. 7. 27. 22:02
10 댓글 기능 구현(1) 1) DAO와 Service의 작성 - 댓글 기능 구현 순서 ① DB테이블 생성 ② Mapper XML 작성 ③ DAO 작성 & 테스트 ④ Service 작성 & 테스트 ⑤ 컨트롤러 작성 & 테스트 ⑥ 뷰(UI) 작성 & 테스트 >> 한번에 만들고 테스트X, 순서대로 만들면서 테스트 OK 2) 실습 ① DB테이블 생성 MySQL 테이블 생성 ② Mapper XML 작성 commentMapper.xml ③ DAO 작성 & 테스트 CommentDaoImpl.java >> 매퍼에 대한 메서드를 생성했다 >> CommentDao 추출(마우스 오른쪽→ Refactor → Extract interface) CommentDao.java CommentDto.java >> 기본생성자, 생성자 ..
-
09 REST_API와 AjaxSpring/03 MyBatis로 게시판 만들기 2023. 7. 25. 18:27
REST_API와 Ajax 1) JSON이란? - Java Script Object Notation - 자바 스크립트 객체 표기법 >> XML이 복잡하고 실제 데이터보다 Tag가 더 많다 좀더 간단하게 가자 → JSON { 속성명1 : 속성값1, 속성명2: 속성값2, ...} - 자바스크립트에서 객체 표기 [{속성명: 속성값, ...}, {속성명:속성값, ...}, ...] // 객체배열 {키1:{속성명:속성값, ...}, 키2:{속성명:속성값, ...}, ...} // Map 2) stringify( )와 parse( ) - JS를 객체를 서버로 전송하려면, 직렬화(문자열로 변환)가 필요 ①객체를 생성하면 메모리에 저장됨 Q. 생성된 객체를 저장하려면? ②값을 순서대로 하나씩 저장하는 수 밖에 없다 (..