내용

글번호 1129
작성자 허진경
작성일 2022-07-15 09:19:53
제목 정리
내용 스프링 프레임워크 - DI - Spring Web MVC - Spring JDBC - AOP - DI : 의존성주입, 필요한 객체를 직접 만들어 사용하는 것이 아니고, 객체를 만들어 전달해 주는 것 . 생성자를 이용한 의존성 주입 Foo ---> Bar class Foo { //Bar bar = new Bar(); // 직접 만들어 사용하는 것 IBar bar; public Foo(IBar bar) { this.bar = bar; } } . setter 메서드를 이용한 의존성 주입 class Foo { IBar bar; public void setBar(IBar bar) { this.bar = bar; } } 프락시 클래스를 만들어 위빙 -: Target object를 상속받고, Pointcut을 재정의 -> 메서드 호출 조인포인트만 지원 - Spring JDBC . 설정 - pom.xml(Maven) : spring-jdbc, connection pool(dbcp2), jdbc driver(ojdbc) - application-config.xml -> root-context.xml : 공통 빈 설정, dataSource(driverClassName, url, username, password), jdbcTemplate(dataSource), Repository 빈, Service 빈, transactionManager, AOP - Repository는 jdbcTemplate 빈을 주입받아 jdbcTempate의 query(), queryForObject(), update() 등의 메서드 실행 데이터베이스 행 정보를 VO에 저장하려면 RowMapper인터페이스를 구현한 클래스를 작성 - Service는 Repository 빈을 주입받아 Repository의 메서드를 실행 : 관계의 복잡도를 줄이고, 트랜잭션 처리를 서비스에서 함 - Spring Web MVC . M : 데이터를 저장하는 객체, V : 뷰페이지, C : 요청을 받아 처리하는 컨트롤러 . 설정 - servlet-context.xml : 컨트롤러 빈생성, 의존성 주입, 뷰리졸버 설정, 리소스설정 * 리소스 설정을 하는 이유는 web.xml 파일에 모든 리소스는(url-pattern이 /) DispatcherServlet이 처리하도록 설정되어 있음 그래서 리소스 설정한 파일들은 특정한 이름의 경로를 통해서 접근하도록 함 HTML에서 사용할 경로 프로젝트의 이미지, JS, CSS 파일들이 있을 경로 . Web 요청과 응답 흐름 클라이언트(브라우저) 요청 -> DispatcherServlet(Front controller) -> Controller -> Service -> Repository <--> DB biz()실행결과를 model에 저장 <- <- 그 후 뷰를 리턴 . 컨트롤러 작성 @Controller public class EmpController { @Autowired IEmpService empService; @RequestMapping("/emp/count") <-- URL을 설정 public String getEmpCount(Model model) { model.addAttribute("cnt", empService.getEmpCount(50)); return "emp/count"; // servlet-context.xml파일 뷰리졸버 설정 때문에 WEB-INF/views/emp/count.jsp } . 뷰 작성(JSP) : Java Server Page : HTML 태그에 자바코드를 사용할 수 있도록 만든 Spec Servlet : 자바 클래스 안에 문자열을 이용해서 HTML 태그를 포함 JSP : HTML 문서에 자바 코드 사용 컨트롤러에서 모델에 저장한 데이터를 출력 -> ${ } : Expression Language ${cnt}