본문 바로가기

Spring 프레임워크/메모19

IntelliJ를 사용한 Spring Framework Project 생성 및 설정 구글링을 해보니, 2023년도 초반 까지만 해도 스프링 프레임워크 프로젝트를 생성 하고, 프로젝트를 우클릭 하면 Add Framework Support 라는 기능이 있었던 것 같다. (이 기능을 통해 편하게 pom.xml 설정 파일에 필요한 라이브러리들을 추가 할 수 있었다) 더이상 이 기능을 인텔리제이가 지원을 하지 않는듯 해서, 인텔리제이로 스프링 프레임워크 프로젝트를 생성 하고 설정 하는 방법을 정리 하려고 한다. (maven 프로젝트) (인텔리제이 정보 : IntelliJ IDEA 2023.2.3 (Ultimate Edition) 1. 필요한 것들 1) Java JDK 2) Apache Tomcat 본인의 자바 버전은 11.0.20 이고, 아파치 톰캣 버전은 9.0.76 이다. 자바는 아래의 링크.. 2023. 10. 21.
[ Spring ] MyBatis 연결 하기 02 이 게시글은 Spring 프로젝트 ( Maven ) 에서 매퍼 인터페이스와 매퍼 XML 파일을 연결하는 방식을 정리 한다. 아래의 링크 에서는 Spring 프로젝트 에서 SQLSessionTemplate 템플릿 패턴을 활용 하여, SQLSessionTemplate 을 사용하는 DAO 클래스와 매퍼 XML 파일을 연결하는 방식의 MyBatis 설정 방법 이였다. https://hwanii96.tistory.com/425 [ Spring ] MyBatis 연결 하기 01 개요 지난 프로젝트 에서, 처음에는 JDBC 인터페이스의 preparedStatement 를 사용한 방식의 DAO 였고, 두번째는 JdbcTemplate 템플릿 패턴을 활용한 방식의 DAO 였다. SpringBoot 에서 MyBatis 프레.. 2023. 10. 2.
MyBatis 와 Spring (Boot) 연결 요약 첫번째 방법 참고 : https://hwanii96.tistory.com/423 [ SpringBoot ] MyBatis 프레임워크MyBatis 프레임워크란 ? 데이터베이스와 상호작용하며, 쿼리문을 쉽게 작성하고 실행할 수 있도록 도와주는 프레임워크 이다. MyBatis는 데이터베이스와 자바 객체 간의 매핑을 간단하게 처리 할 수hwanii96.tistory.com [ SpringBoot ] @Mapper 어노테이션을 사용해서 Spring의 루트 컨테이너가 매퍼 인터페이스를 Spring의 빈으로 등록 한다. 그리고, 매퍼 인터페이스와 매퍼 XML 파일과의 연결을 위한 설정을 통해, SQL 작업을 수행 할 수 있도록 하는 방식으로 연결 했다. SpringBoot 에서는 application.properti.. 2023. 9. 29.
[ Spring ] MyBatis 연결 하기 01 개요 지난 프로젝트 에서, 처음에는 JDBC 인터페이스의 preparedStatement 를 사용한 방식의 DAO 였고, 두번째는 JdbcTemplate 템플릿 패턴을 활용한 방식의 DAO 였다. SpringBoot 에서 MyBatis 프레임워크 적용 방법을 공부했기에, 프로젝트에 이를 적용해 보기로 했다. 이 게시글은 SQLSessionTemplate 템플릿 패턴을 활용한 방식으로 MyBatis 와의 연결 하는 방식 이다. 설정 방법1. maven 설정 파일을 사용하는 프로젝트 여서, pom.xml 에 MyBatis 프레임워크 관련 라이브러리를 추가. 본인은 각각 3.5.13 버전과 2.0.7 버전을 사용 했다. 아래의 더보기 에서 다양한 버전을 확인 할 수 있다. 본인에 환경에 맞는 버전을 적용 하면.. 2023. 9. 27.
인터페이스 개념 메모 1. FrontController 패턴 기존 FrontController 패턴으로 개발을 했을 때는 (스프링 프레임워크 사용 이전) 필요한 DAO를 직접 이용 했었다. 이것의 단점은 결합도가 높기 때문에 유지 보수에 불리하다는것 이였다. 따라서, Controller 와 DAO 사이에 Service Interface 를 생성 하면, Controller 가 직접적으로 DAO를 사용하는게 아니라, Service가 DAO를 사용하는 방식으로 변경 되므로, 결합도가 낮아지고 유지보수가 유리해진다. 왜그럴까 ? Service 가 Interface 를 멤버 변수 (의존 관계) 로 가지고 있으면, (인터페이스의 다형성) @ 어노테이션으로 어떤 클래스에 설정하는지에 따라서 객체화된 특정 객체를 주입 받을 수 있다. 즉,.. 2023. 9. 21.
의존 주입 class Apple { private Banana banana; public void hello() { banana.hello(); } }//Apple class Banana { public void hello() { .. } }//Banana ============================= main() { Apple apple = new Apple(); apple.hello();//NPE 발생. } apple을 주체로 해서 Banana 클래스의 인스턴스 메서드를 사용 할 수 있을까 ? 정답은 X 이다. NPE 가 발생 한다. 왜냐하면, Banana 클래스가 객체화 되지 않았기 때문 이다. 스프링 프레임워크를 사용한다고 가정하고, Banana 클래스를 객체화 시켜보자. 원래 객체화는 new 키워드.. 2023. 9. 19.
파일 업로드시, 비동기처리를 통해, 썸네일 기능을 구현 하기 https://hwanii96.tistory.com/338 Spring 프레임워크 MultipartFile 인터페이스 1. MultipartFile ? MultipartFile은 Spring 프레임워크 에서 제공하는 인터페이스 이다. HTTP 요청으로 전송된 파일 데이터를 처리하기 위한 방법을 추상화 했다. 주로, 파일 업로드 기능을 구현할 때 사용 hwanii96.tistory.com 위의 게시글에서 Spring 프레임워크에서 제공하는 MultipartFile 인터페이스를 사용해서, 파일 업로드를 쉽고 간단하게 처리 할 수 있었다. 파일을 업로드 할 경우, 서버를 방문 하지 않고, 무언가 페이지의 변경사항이 생기는 것을 원한다면 ? >> JavaScript 를 사용 한다. (JS) 예시) 1) 아이디 .. 2023. 8. 18.
throws 와 try-catch 메모 Spring 에서 간단하고 쉬운 파일 업로드를 위해 기본 제공 해주는 인터페이스. == MultipartFile 이다. 이때, MultipartFile 자료형인 참조변수로 메서드를 사용 할 때, 예시) fileUpload.transferTo(new File("C:\\Users\\dhfg0\\Desktop\\spring\\springWS\\day60\\src\\main\\webapp\\images\\" + fileName)); 예외 처리를 하라고 안내를 해준다. 따라서, 이곳에서 바로 try-catch를 사용 하면 해결 된다. 그런데, 위의 메서드 시그니쳐에 throws 키워드를 명시해서, 예외를 던져버릴 수 있다. throws 는 예외를 말 그대로 던져버리는 기능을 한다. 그러면 예외를 던졌으면, 어디서.. 2023. 8. 17.
Spring 프레임워크 JoinPoint 인터페이스 JoinPoint 인터페이스는, 스프링 프레임워크 에서 AOP를 구현할 때 사용되는 인터페이스 이다. JoinPoint는 AOP 어드바이스 메서드가 실행되는 시점에 관련된 정보를 제공 한다. JoinPoint의 주요 메서드는 아래와 같다. 1) Signature getSignature() : JoinPoint를 통해 호출된 메서드의 시그니쳐 정보를 가져 온다. 시그니쳐에는 메서드명, 매개변수 타입 등의 정보를 포함 한다. 2) Object[] getArgs() : JoinPoint를 통해 호출된 메서드의 인자들을 배열 형태로 가져올 수 있다. 3) Object getTarget() : JoinPoint를 통해 호출된 메서드의 대상 객체를 가져올 수 있다. 4) Object getThis() : JoinP.. 2023. 8. 12.