목록spring (16)
today_is
오늘의 목표 투표 기능을 추가한 설문지를 만들어보자SurveyDTOpackage com.itbank.model;import org.springframework.web.multipart.MultipartFile;// TABLE : SURVEY// IDX NOT NULL NUMBER // TITLE NOT NULL VARCHAR2(500) // WRITER VARCHAR2(500) // OPTION1 NOT NULL VARCHAR2(500) // OPTION2 NOT NULL VARCHAR2(500) // IMAGE1 NOT NULL VARCHAR2(500) // IMAGE2 NOT NULL VARCHAR2(500) public class SurveyDTO { ..
오늘의 목표FileComponent 를 이용하여, 다중 파일업로드를 해보자 FileComponent 유의할 점 @component 어노테이션 붙이고 나서 이 클래스에 s 가 붙는지 꼭 확인하자-> 스프링빈으로 등록되었는지 확인 jsp 프로젝트때처럼 saveDirectory 지정해두기package com.itbank.component;import java.io.File;import java.io.IOException;import java.util.UUID;import org.springframework.stereotype.Component;import org.springframework.web.multipart.MultipartFile;@Componentpublic class FileComponent..
스프링에서 자주 등장하는 어노테이션(@)입니다. 생소한 어노테이션이 많아서 정리해보았습니다 !! 스프링 빈 등록@Controller지정한 클래스를 스프링 빈으로 등록하고, MVC구조의 컨트롤러 역할을 수행하도록 한다@Service지정한 클래스를 스프링 빈으로 등록하고, MVC구조의 서비스 역할을 수행하도록 한다@Repository지정한 클래스를 스프링 빈으로 등록하고, MVC구조의 DAO 역할을 수행하도록 한다해당 클래스에서 발생하는 예외는 SQLException 형식으로 변경하여 throws 한다@Component지정한 클래스를 스프링 빈으로 등록한다. 주로 특정 요소에 대한 작업을 전담하는 모듈로 구성한다.@ControllerAdvice지정한 클래스를 스프링 빈으로 등록하고, 컨트롤러에서 발생하..
오늘의 목표Interceptor 를 만들어서 일부 기능은 조건에 부합하는 사용자만 이용할 수 있도록 제한을 걸어보자 인터셉터가 필요한 이유ex) 로그인 필요한 컨트롤러 함수에는 같은 코드를 일괄 적용 가능 if(session.getAttribute("login") == null) { return "redirect:/member/login"; } 그러나, 컨트롤러 함수마다 반환형이 서로 다르고 HttpSession 을 매개변수로 추가해줘야 하기 때문에 번거롭다 메뉴의 개수가 늘어날수록 작업은 점점 더 번거로워지기 때문에이 부분을 담당할 인터셉터가 필요하다. Handle컨트롤러의 실행함수PreHandle컨트롤러 실행하기 전에 작동하는 것PostHandle컨트롤러가 끝나고 jsp로 넘어가기 전에 실행..
오늘의 목표 jsp 프로젝트에서 많은 실습을 해봤던 게시판 기능을이번에는 spring 프로젝트로도 구현해보자 ! BoardDTO IDXNOT NULLNUMBERTITLENOT NULLVARCHAR2(500)WRITER VARCHAR2(100)CONTENTNOT NULLVARCHAR2(4000)WRITEDATE DATEISNOTICE CHAR(1) BoardController유의할 점[ 게시글을 삭제할 수 있는 조건 ]1) 로그인이 되어있는 상태일 때 2) 내가 작성한 게시글일 때 [ 추가 코드 ]컨트롤러에 들어오는 요청을 가로채서 특정 작업(예를 들어 로그인 여부 파악)을 수행하고기존 경로로 계속 안내하거나, 처리를 중단하고 새로운 응답을 반환하는 스프링 빈이 필요하다 로그인이 되..
오늘의 목표HashComponent 를 이용하여, 비밀번호에 해시함수를 적용시켜보자 HashComponent : userpw 를 sha-512 해시 알고리즘이 적용된 상태로 바꿔주기 위한 컴포넌트 (보안을 위해서) @Component: Controller, Service, Repository 에 해당하지 않지만, 특정 내용에 대한 코드를 수행하기 위해 작동하는 스프링 빈package com.itbank.component;import java.math.BigInteger;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import org.springframework.stereotype.Component;@..
오늘의 목표스프링 legacy maven 프로젝트를 실행시켜보자 기본 설정파일 root-context.xml: 스캔 / bean 등록 .. classpath:mybatis/test2-mapper.xml classpath:mybatis/test3-mapper.xml pom.xml: 의존성 추가 4.0.0 com.itbank day01 day01 war 1.0.0-BUILD-SNAPSHOT 11 5.3.30 1.6.10 1.6.6 org.springframework spring-context ${org.springframework-version} ..
오늘의 목표model 1과 model 2의 형식적 차이를 세부적으로 알아보자 구조파악 : JSP 웹사이트의 구조는 크게 모델 1 방식과 모델 2 방식으로 나뉜다. JSP Model 1: 사용자의 요청을 jsp가 모두 처리하고 출력까지함 [ 장점 ] html 안에 java 와 태그들을 전부 넣었기 때문에 빠른 개발을 도모한다[ 단점 ] 유지보수가 어려움. 가독성이 나쁨 Model 2: 사용자의 요청을 servlet 이 받아서view(jsp)로 보여줄 것인지, model로 값을 보낼 것인지 정해서 전송함 -> 대부분의 웹은 model 2의 형식을 따른다 View는 사용자에게 보여주는 역할만 담당Model은 실질적인 기능을 담당 [ 장점 ] 유지보수 쉬움 , 다양한 서비스를 모듈화 할 수 있음[..