Web/Spring
-
스프링 핵심 원리 (1) - 예제 순수 자바 to 스프링 컨테이너Web/Spring 2023. 8. 16. 18:49
- 객체 지향 프로그래밍의 원리에 맞게 회원 및 주문 서비스를 만들어보자 - 객체 지향 설계에서 협력 - 역할 - 책임의 관계는 매우 중요하다. 역할: 객체가 수행할 책임들을 의미하고, 다형적인 특징을 보여준다. 책임: 객체가 수행해야할 행위 공용인터페이스 - 객체지향- 다형적 특징은 역할과 구현을 분리함으로써 달성할 수 있다. 캡슐화: - 데이터 숨김, 내부 구현 숨김,메시지를 통한 데이터 접근 -> 객체 자율성 부여 - 오류의 범위 캡슐 내부화 -> 유지보수에 유리 타입: 객체를 나누는 기준 -> 할 수 있는 책임(행위)에 따라 객체 분리(classify) 클래스: 객체를 생성할 수 있도록 언어적 차원에서 지원된 정적 객체 생성 방법 - 객체지향적 설계에서 가장 중요한 것은 협력관계를 통해 적절히 책..
-
나프 - 게시판 만들기 (3)Web/Spring 2023. 8. 3. 12:32
1. 등록 및 조회 구현 List.jsp 타이플에 a태그 걸어서 상세보기 페이지로 넘어가도록 함 ${vo.title} @RequestMapping("/get.do") public String get(@RequestParam("bno") int bno, Model model) { BoardVO board=service.get(bno); model.addAttribute("board", board); return "get";//get.jsp } - 처리 컨트롤러, 넘어온 번호를 통해 DB에서 해당 번호에 게시글 찾아서 BoardVO에 담아서 리턴 - model에 이를 담은 다음 get.jsp로 forward Board Read Board Read Page Panel Content BNO Title Text ..
-
나프 - 게시판 만들기(2)Web/Spring 2023. 8. 2. 22:07
1. 게시판 서비스 계층 구현하기 > Service 인터페이스 생성 (책임 정의) public interface BoardService { public List getList();//게시물 가져오기 public void register(BoardVO board); // 게시물 등록 public BoardVO get(int bno); //게시물 상세보기 public int remove (int bno); // 게시물 삭제 public int modify (BoardVO board); } @Service public class BoardServiceimpl implements BoardService{ @Autowired private BoardMapper mapper; - 서비스 구현체는 m..
-
나프 - 게시판 만들기(1)Web/Spring 2023. 8. 2. 21:05
1. 3-Tier 방식의 이해 - Spring에서 DB 작업 간소화로 사용자 요구사항을 반영하고, 컨트롤러 비대해지는 것을 방지하기 위해 - Presentation Tier Persistence Tire의 3개의 Tire로 나누어 요청을 처리한다. Presentation: 웹/화면 계층, Controller(FrontController+POJO),JSP를 이용한 VIEW구성 담당 Business Tire : 비지니스 계층, 고객 요구사항 반영 로직을 기준으로 처리 (메서드 이름은 현실적인 로직의 이름을 붙이는 것이 관례이다.) 등록,회원검색,수정,삭제 등 Presentation 계층을 통해 메시지를 받고 DB와 협력하여 로직을 처리 Persistence Tire: 영속계층, 데이터에 대한 CRUD VO클..
-
Spring MVC02 - 다중파일 업로드Web/Spring 2023. 6. 30. 23:23
1. 파일 업로드를 위한 준비 API, servlet-context.xml설정 다중 파일 업로드를 위해 API를 다운받자. commons-fileupload, commons-io commons-fileupload commons-fileupload 1.2.1 commons-io commons-io 1.4 스프링 컨테이너에 servlet-context.xml 파일 업로드를 위한 클래스와 property를 설정해야한다. - 업로드할 파일의 최대사이즈와, 임시파일사이즈, 인코딩타입 등을 미리 정해두자 1.2 뷰 페이지 만들기 다중파일업로드 스프링 이용한 다중 파일 업로드 구현 Panel Content 아이디: 이름: 파일추가: 업로드 나프2탄고 form에 enctype ="multipart/form-data"로..
-
Spring MVC02 - Ajax MemberListWeb/Spring 2023. 6. 29. 21:49
- Servlet-jsp에서 ajax를 이용해서 회원리스트 보기를 했던 것과 동일한 작업을 할 것이다. 1. 화면 및 javascript 구성 회원리스트 출력 function btnClick(){ $.ajax({ url : "", type : "get", dataType : "json", success : resultHtml. error : function(){alert("error");} }); } function resultHtml(data){ console.log(data); var html = ""; html += " "; html += " 번호"; html += " 아이디"; html += " 비밀번호"; html += " 이름"; html += " 나이"; html += " 이메일"; html..
-
Spring MVC02 - 어노테이션을 이용한 Mapper 인터페이스 사용Web/Spring 2023. 6. 29. 21:19
- 사실 @Mapper 없어도 mybatis-spring scan을 통해 알아서 관리된다. (같은 패키지에 있고, namespace와 인터페이스명 같다면) - 어노테이션 이용방법 - 복잡한 sql아니면, 그냥 어노테이션으로 관리해도 된다. public interface MemberMapper { @Select("select * from member") public List memberList(); // 메서드 이름 sql id매칭 중요 @Insert(" insert into member(id, pass, name, age, email, phone)\r\n" + " values(\r\n" + " #{id},\r\n" + " #{pass},\r\n" + " #{name},\r\n" + " #{age},\r\..
-
Spring MVC02 - Mapper Interface와 XML이용한 CRUDWeb/Spring 2023. 6. 29. 21:10
- 기존 프로젝트에 DAO객체를 없애고 다른 방법으로 DB를 다루는 방식이 존재한다. - 인터페이스를 정의하고, 추상메서드와 sql을 연결하는 방법이다. (인터페이스 메서드명, mapper xml에 id랑 연결) DAO없이 인터페이스를 통해 DB작업을 하고 싶다면, 1. mapper 인터페이스 생성하고, @Mapper 어노테이션 사용 2. root.xml에 어노테이션과 scan등록하기 3. mapper파일 namespace와 인터페이스 이름 맞추기 (되도록 같은 경로에 두기) 4. 메서드 명과 xml에 각 태그에 id가 일치시키기 1. Mapper 인터페이스 생성 kr.bit.mapper 패키지와 MemberMapper 인터페이스를 정의해 두었다. @Mapper // MyBatis(SqlSessionFa..