SPRING 20

SPRING 기본설정 (XML, JAVA 공통부분)

0. 필수 프로그램 설치 JDK11 Tomcat9 STS3 오라클(Oracle11g, SQLDeveloper(ojdbc8)) 또는 MySQL 1. STS3 설정 : 스프링에서 관리되는 객체(Bean)에 대한 설정은 XML이나 Java Configuration을 이용해 처리한다. 둘 중 한 방법을 선택한 후 프로젝트 내에서 동일한 방식을 사용한다. (SpringBoot는 Java설정만 가능) 1.1 톰캣 설정 : window -> preference -> server선택 1.2. PRING MVC 프로젝트 생성 방법 : File -> New -> Spring Legacy Project -> Spring MVC Project 생성 (XML 방식)(기본 spring버전 : 3.X, servlet버전 2.5) ..

SPRING 2022.11.24

SPRING Database 연동과 Jdbc 지원

1. SPRING의 Database 연동 지원 : JDBC, Hibernate, iBatis 등을 이용해 DAO Class를 구현할 수 있도록 한다. 1.1 Template Class : 데이터에 접근하는 Code는 거의 동일한 구성을 갖는데, spring은 Template Class를 제공해 중복된 Code를 줄인다. ex) Jdbc Template Class 1.2 예외 지원 : Spring에서는 Database 처리과정에서 발생한 예외를 구체적으로 확인할 수 있는 예외 Class를 제공한다. (JDBC Database 처리 과정에서 발생하는 SQLException은 예외 발생 원인을 찾기 위해 SQLException의 실제 타입과 에러 Code를 확인해야 하는 번거로움이 있다.) Template C..

SPRING 2022.11.18

HTML 이외의 View 구현

1. 파일 Download 구현을 위한 커스텀 View : (JSP 대신) Download를 위한 커스텀 View Class를 구현한다. 컨트롤러 클래스는 Download 파일 관련 정보를 생성해 View에 전달한다. BeanNameViewResolver나 XmlViewResolver를 이용해 커스텀 View Class를 설정한다. Download를 위한 컨텐츠 타입을 설정한다. (ex. "application/octet-stream") public DownloadView() { setContentType("application/download; charset=utf-8"); } Content-Disposition 헤더의 값을 지정해 Download File 이름을 설정한다. response.setHea..

SPRING 2022.11.17

SPRING tiles2

1. Tiles 2 연동을 이용한 레이아웃 템플릿 처리 : 레이아웃이 같고 동일한 내용일 들어가는 영역이 많을 때 템플릿 Library(ex. Tiles)를 사용해 레이아웃을 처리해 View와 관련한 Code 중복을 제거할 수 있다. Tiles2 연동방법 1) jar 파일 추가 - tiles-api-2.1.x.jar, tiles-core-2.1.x.jar, tiles-jsp-2.1.x.jar - commons-beanutils.jar, commons-digester.jar, commons-logging.jar - SPRING webmvc Module 2) spring 설정파일 - TilesConfigurer Class를 이용해 Tiles2 레이아웃 설정파일 명시 /WEB-INF/tiles2def/tile..

SPRING 2022.11.16

SPRING View 영역 구현

1. ViewResolver 설정 : springMVC의 화면 설정은 ViewResolver 객체를 통해 이뤄진다. DispatcherServlet은 ViewResolver를 사용해 Controller가 지정한 View 이름으로부터 응답 결과를 출력할 View 객체를 구한다. 브라우저에서 직접 접근할 수 없는 '/WEB-INF/views' 폴더를 경로로 지정한다. ServletConfig.java - ViewResolver와 static 자원 경로 지정 @Override public void configureViewResolvers(ViewResolverRegistry registry) { InternalResourceViewResolver bean = new InternalResourceViewReso..

SPRING 2022.11.14

SPRING Controller Model

: 데이터 전달자. 파라미터(request)로 데이터를 받아 추가적으로 처리한 후 결과를 View로 전달할 때 주로 사용한다. 파라미터를 Model 타입으로 선언하면 SpringMVC에서 자동으로 Model타입의 객체를 만들어준다. 필요한 데이터를 Model 객체에 담아주면 된다. @RequestMapping가 적용된 메서드에서 controller에서 처리한 데이터를 Model 객체에 담아서 View(화면, jsp)에 전달한다. ex) @Controller public class GameSearchController { @ModelAttribute("searchTypeList") public List referenceSearchTypeList() { List options = new ArrayList()..

SPRING 2022.11.13

SPRING View 지정

View 이름을 명시적으로 지정하려면 ModelAndView나 String을 리턴해야 한다. ModelAndView를 리턴하는 경우, ModelAndView Class의 생성자나 setViewName() 메서드를 이용해 View이름을 지정한다. @RequestMapping("/index.do") public ModelAndView index(){ ModelAndView mav = new ModelAndView("index"); ... return mav; } ModelAndView mav = new ModelAndView("index"); mav.setViewName("search/game"); String 타입을 리턴할 경우, 문자열 값을 View 이름으로 사용한다. @RequestMapping("/h..

SPRING 2022.11.12

SPRING Controller 구현

: 클라이언트의 요청을 처리한다. 직간접적으로 뷰 이름과 모델 정보를 설정하는 ModelAndView 객체를 생성한다. 파라미터가 자동으로 수집(binding)되어 request.getParameter()를 사용하지 않아도 된다. 상속/인터페이스/전송 방식에 대한 처리를 어노테이션만으로 설정할 수 있다. DispatcherServlet이 사용하는 설정 파일인 servlet-context.xml에 Controller Class를 Bean으로 등록해야한다. 태그를 이용해 해당 패키지를 스캔하도록 설정하면 자동으로 어노테이션을 파악해 객체를 생성해준다. 1. 어노테이션 @Controller : 해당 Class가 spring mvc의 컨트롤러를 구현한 Class라는 것을 지정한다. @RequestMapping ..

SPRING 2022.11.11

SPRING MVC 구조, 처리 흐름, 개발 과정

: 스프링 MVC는 스프링의 sub project이다. 따라서 별도의 설정이 존재할 수 있다. : 일반 Java 영역(root-context.xml)과 web영역(servlet-context.xml)을 함께 연동해서 구동한다. 로딩 구조 1) 프로젝트 구동 2) web.xml - ContextLodaderListener 구동 3) root-context.xml 처리 : 객체(Bean)을 스프링 영역(context)안에 생성하고 의존성 처리 4) DispatcherServlet - servlet-context.xml 처리 : 객체(Bean)을 스프링 영역(context)안에 생성하고 의존성 처리 웹 프로젝트 3-tier 방식과 Spring MVC Presentation Tier Business Tier P..

SPRING 2022.11.10

SPRING Framework 개념, 기능, 특징

SPRING Framework란? : Enterprise Application에서 필요로 하는 기능을 제공하는 Framework다. JEE(Java Enterprise Edition)가 제공하는 다양한 기능을 제공하며 DI(Dependency Injection), AOP(Aspect Oriented Programming)과 같은 기능도 지원한다. + Famework란? : 뼈대나 근간을 이루는 코드들의 묶음 : 프로그램의 기본 흐름이나 구조를 정하고, 팀원들이 이 구조에 자신의 코드를 추가하는 방식의 개발 spring의 주요기능 Lightweight Container (경량 컨테이너) : Spring Container는 Java 객체의 라이프 사이클을 관리하며 Spring Container로부터 필요한 ..

SPRING 2022.11.09