IT Study/Spring19 Spring - MyBatis 스프링 JDBC 연동하기 Mybatis 에서 Spring에게 연동에 필요한 API를 제공한다. 1. pom.xml에 추가(ibatis dependency 제외함) org.mybatis mybatis 3.3.1 org.mybatis mybatis-spring 1.2.4 2. db.properties 파일 삭제 + sql-map-config.xml 파일에서 사용하지 않는 설정제거 (이미 DataSource가 스프링 설정파일(applicationContext)에 존재하기 때문에) applicationContext(스프링 설정파일) dataSource로 등록되어있다. 3. SqlSessionFactory 클래스를 스프링 설정파일에 bean 등록을 해야 객체로 사용 가능함 => SqlSessionFactory 객체로부터 DB연동에.. 2023. 1. 3. Spring - Mybatis DB 직접 연동하기 및 insert 적용 Mybatis란? Mybatis는 자바 오브젝트와 SQL사이의 자동 매핑 기능을 지원하는 프레임워크이다. SQL을 별도의 파일로 분리해서 관리하게 해준다. Mybatis 특징 쉬운 접근성과 코드의 간결함(가독성) JDBC의 모든 기능을 Mybatis가 대부분 제공한다. 복잡한 JDBC코드를 걷어내며 깔끔한 소스코드를 유지할 수 있다. 수동적인 파라미터 설정과 쿼리 결과에 대한 맵핑 구문을 제거할 수 있다. SQL문과 프로그래밍 코드의 분리 SQL에 변경이 있을 때마다 자바 코드를 수정하거나 컴파일하지 않아도 된다. 동작방법 1) XML 파일에 저장된 SQL문을 실행 2) 실행의 결과를 VO(Java객체)에 자동으로 매핑까지 수행함 1. 플러그인 설치 Eclipse 마켓에서 mybatis 검.. 2023. 1. 3. Spring - lombok 설치 및 적용하기 lombok Lombok이란 Java의 라이브러리로 반복되는 함수를 Annotation을 사용하여 자동으로 작성해주는 라이브러리이다. 통상적으로 VO를 만들면 각 변수에 대해서 getter, setter를 엄청나게 만들어야 한다. 물론 이클립스(Eclipse)에 getter, setter생성을 지원해주고 있지만 VO를 만들때마다 해당 기능을 실행해서 getter, setter를 만들어줘야 한다는것이 개발자 입장에서는 불편할 수 있다. 이러한 불편함을 해결해주는 라이브러리가 lombok이다. @Data 어노테이션 @Gettet/@Setter/@ToString/@EqualsAndHashCode/@RequiredArgsConstructor을 합쳐놓은 어노테이션이다. POJO와 bean과 관련된 모든 보일러.. 2023. 1. 3. Spring - 다국어 처리(국제화) 하나의 페이지를 여러가지의 언어로 서비스하는 것을 말한다. 과거에는 언어별로 페이지를 다르게 제작했었다. 하지만 Spring 프레임워크의 다국어 처리 기능을 사용하게 되면서 별도 페이지 제작을 할 필요가 없어졌다. 실습을 통해 영어와 한글 처리를 진행해보았다. 1. 메세지 파일 제작 1) 다국어 처리 관련 파일 message 폴더 생성 메세지 파일의 위치는 src/main/resources 에 message 폴더로 생성 2) 일반 파일로 선택하여 파일 확장자를 .properties로 생성 => 스프링에서 인지하여 사용해야 하기 때문이다. 3) 언어 선택을 Locale 코드 정보로 수행 Locale 코드란? 사용자의 언어, 국가뿐 아니라 사용자 인터페이스에서 사용자가 선호하는 사항을 지정한 .. 2023. 1. 3. Spring - 예외 페이지 설정(@ 설정 / .xml설정) Spring에서 예외페이지를 설정하여 특정 예외 발생 시, 해당 에러페이지가 나올 수 있도록 구현해보았다. 웹 사이트를 이용하다보면 아래와 같은 에러페이지를 마주칠 수 있다. 에러 종류는 매우 다양하다. 대표적으로 404/500 에러 페이지가 있으며, 400대/500대 등의 여러 에러가 있다. 이번엔 에러 페이지를 직접 제작/설정하여 사용자의 편의성을 증가시킬 수 있도록 해보았다. 예외가 언제 발생? 존재하지 않는 데이터, null 값, 맞지 않는 데이터형식 등이 전달 되었을 때 에러 발생 에러처리 vs 에러페이지 1) 에러 처리 1-1) 에러 자체가 발생되지 않게 선처리(유효성 검사) 1-2) 에러가 발생하더라도, 넘어갈 수 있게(try-catch) 2) 에러 페이지 설정 에러 발생은.. 2023. 1. 3. Spring - MultipartFile 인터페이스를 이용한 파일 업로드 기능 구현 이번 기능은 스프링에서 제공하는 MultipartFile 인터페이스를 이용해서 파일 업로드를 구현해보았다. MultipartFile - 사용자가 업로드한 File을 핸들러에서 손쉽게 다룰 수 있게 도와주는 매개변수 중 하나이다. - 매개변수를 사용하기 위해서는 MultipartResolver Bean이 등록되어 있어야 한다. - MultipartFile 인터페이스는 스프링에서 업로드 한 파일을 표현할 때 사용되는 인터페이스이다. - MultipartFile 인터페이스를 이용해서 업로드한 파일의 이름, 실제 데이터, 파일 크기 등을 구할 수 있다. 메서드 설명 String getName() 파라미터 이름을 구한다. String getOriginalFilename() 업로드한 파일의 이름을 구한다. St.. 2023. 1. 3. Spring - 2 Layered 아키텍처 사용자의 요청 과정 1. xxx.do 요청 2. 서블릿컨테이너 구동 dispatcherServlet을 생성 dispatcherServlet-servlet.xml을 로드해서 생성 현재의 계층(layer)을 "프레젠테이션 레이어"라고 한다. 3. 스프링 컨테이너가 구동 Controller 객체들 생성 Controller 객체들이 Command 객체로 DAO 객체를 사용함 >>DAO2를 사용하고 싶었으나 잘 안됨. @Autowired DI(의존성 주입)를 해주어야 한다. 기존 Controller의 모든 메서드는 사진과 같이 DAO 객체를 직접 이용하고 있다. Spring에서는 DAO 객체를 직접 이용하지 않고, 반드시 "비즈니스 컴포넌트(ServiceImpl)"를 이용해서 DAO 객체를 다룰 수 있.. 2023. 1. 3. Spring - SpringBoot 스타일로 정형화 해보기 이전의 내용들을 보면 View에 데이터를 보낼 필요가 있을 때 ModelAndView 객체를 통하여 데이터 전달을 했었다. 전달할 데이터가 존재하지 않으면 String 객체를 통해 경로를 설정하였다. 이번엔 SpringBoot 스타일로 코드를 작성해보았다. SpringBoot는 반환값을 String 객체로 정형화 시키는데, 전달할 데이터가 존재할 때는 Model 객체를 활용하였다. 데이터를 전달할 때의 기존의 코드 - mav 객체를 통한 전달하기 @RequestMapping(value="/board.do",method=RequestMethod.GET) public ModelAndView board(BoardVO bVO,BoardDAO bDAO, ModelAndView mav) { bVO=bDAO... 2023. 1. 3. Spring - @RequestParam/@ModelAttribute/@SessionAttribute @RequestParam - 기존의 스코프를 통한 request.getParameter()와 같은 기능이다. - 단일 파라미터를 쉽게 가져올 수 있는 방법 중 하나이다. - 구조를 바꾸기 힘들 때 사용하는 경우가 있다.(VO에서 멤버변수를 추가하는 등의 구조변경) - Command 객체에는 없는 파라미터를 Controller 클래스에게 전달해주기 위해 사용한다. @RequestParam(value="searchCondition",defaultValue="TITLE",required=false)String searchCondition 구조 @RequestParam(value="value", defaultValue="default Value", required=boolean type)[데이터 타입][값을 담.. 2023. 1. 3. 이전 1 2 3 다음