전체 글 (92) 썸네일형 리스트형 AOP 끝 21. 03. 31. ProxyFactoryBean package site.levinni.aop3; MyDependency.java package site.levinni.aop3; public class MyDependency { public void hello() { System.out.println("hello"); } public void goodbye() { System.out.println("bye"); } } advice가 적용될 곳. advisor는 hello()만 특정 되게 할 것. MyBean.java package site.levinni.aop3; import lombok.Setter; @Setter public class MyBean { private MyDependency dependency; publi.. AOP 21. 03. 30. AOP 목적 - 횡단관심사와 이에 영향을 받는 객체간 결합도를 떨어뜨리는 것. 결합도와 응집도란? 모듈의 독립성을 판단하는 지표 결합도 : 모듈과 모듈간의 상호 의존 정도 응집도 : 모듈 내부의 기능적인 집중 정도 모듈화 : 소프트웨어를 각 기능별로 나누는 것. 횡단관심사 : 주 로직은 아닌데 어떤 특정 파트에서 필요한 것들 (Logging이나 Filter 같은 것들) Aspect - 관점 : 부가기능을 정의한 코드인 Advice와 어드바이스를 어디에 적용할지를 결정하는 PointCut을 합친 개념 ※ Advisor도 어드바이스 + 포인트컷. 같은 거라고 봐도 됨. 어드바이저는 Spring AOP에서만 사용됨. 로깅작업 그 자체 - Advice package site.levinni.proxy; Hello.. IoC 21. 03. 29. c: construct p: property tx: 트랜잭션 c랑 p는 주입 방법으로 쓸 수 있음. (생성자, 세터) Setter Injection (Anno tation 기반) Audi.java package site.levinni.ioc4; import javax.annotation.Resource; import javax.inject.Inject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class Audi { @Inject private Car car; public Car getCar() { return ca.. Spring IoC 및 DI 21. 03. 26. 모델1 방식 예) 그누보드 문제점 - 프레젠테이션 로직과 비지니스 로직의 혼재로 JSP 복잡성 증가 - 비즈니스 로직과 화면 로직은 분리되어야 함. - JSP의 목적은 VIEW에 있는데 너무 많은 일을 함 - 유지보수의 어려움 Spring IoC 및 DI 전통적으로 각 객체는 협업할 객체의 참조를 취득해야 하는 책임이 있음. 이것이 의존성. (예. BoardServiceImpl은 BoardDao가 없으면 혼자 일을 못 함.) 이는 결합도가 높으며 테스트하기 어려운 코드를 만들어 냄. 빌더 만든 소스파일들을 컴파일 할 때, 의존한 외부 jar 파일들도 포함해야 하는데 이 것을 자동화하는 도구. 어플리케이션을 빌드하는 자동화 도구. 종류 : 아파치 앤트(최근엔 사용 少), gradle, 메이븐 스프링의 기본.. 회원제 게시판 마무리(댓글 수정, 열고 닫기) 21. 03. 26. 댓글 수정 detail.jsp 제목 ${board.title} 작성자 ${board.username} 작성일 ${board.regdate} 조회수 ${board.hitcount} ${attach.fileName} ${board.content} 댓글 ${fn:length(replies)} 댓글 열기 ${reply.username} ${reply.regdate} ${reply.content} ${reply.content} 댓글등록 수정 삭제 댓글등록 글수정 글삭제 목록으로 수정 버튼을 button type="button로 하면 더이상 삭제 기능을 하지 않음 -> 이벤트 걸어서 수정으로 만들기. input hidden은 폼 안에 있어야 제 기능 하는 것 .btn-modify (수정버튼 태그!!)의 부모()의 .. 회원제 게시판(06)- 댓글 작성, 삭제 21. 03. 25. 작성자 아이디 대신 이름 나오도록 변경 -> 서브쿼리 이용 쿼리문 작성 -- 목록조회 SELECT BOARDNO, TITLE, CONTENT, USERID, CASE WHEN SYSDATE - REGDATE 0 ORDER BY 1 DESC; - USERNAME이라는 열을 하나 만드는 것. - 조인으로 해도 .. 화면구현에 서블릿 적용 - 카테고리 21. 03. 24. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setAttribute("title", "온라인상담"); req.getRequestDispatcher("../WEB-INF/jsp/board/write.jsp").forward(req, resp); } - setAttribute가 .jsp에 ${title} 회원제 게시판(05)첨부 파일 보이도록, 파일 다운로드, 글삭제, 댓글(css까지만) 21. 03. 24. BoardServiceImpl.java package board.service; import java.util.List; import board.dao.BoardDao; import board.vo.Attach; import board.vo.Board; public class BoardServiceImpl implements BoardService{ private BoardDao boardDao = new BoardDao(); /* 생략 */ @Override public Board findBy(Integer boardno) { Board board = boardDao.findBy(boardno); List attachs = boardDao.getAttachs(boardno); board.setAttac.. 이전 1 2 3 4 5 6 7 ··· 12 다음 목록 더보기