#Spring Boot
19
Java EcoTILSpring Framework
commons-io로 구현하는 Multipart
### 관리 차원에서 후속편 안내 이 글 역시 이 블로그에서 꾸준히 인기가 좋아 commons-io가 아닌 스프링 multipart를 사용한 파일 업로드 기능을 다시 정리해서 올려봤다. 업로드와 다운로드 두편으로 나눠서 올라가고 우선 업로드편 링크를 남긴다. 👉 스프링 부트 Multipart 업로드편 첨부파일의 유효성 검사 파일 전송의 진행률 표시 예외처리 사용자 편의성의 드래그 앤 드롭 기능 → 동일한 이름을 가진 파일이 업로드 될 경우 사용 중인 운영체제에 따라서 저장 되지 않거나 파일명이 바뀌거나 덮어쓰기가 될 수 있다. 이
Java EcoTILSpring Framework
Spring Boot; Exception
아래의 3가지 방법이 있다. 자바의 방법 : try/catch 사용 컨트롤러 단위 : 각각의 컨트롤러에서 @ExceptionHandler 사용 전역 처리 : @ControllerAdvice을 사용한 전역 예외처리 @ExceptionHandler는 중복코드가 발생한다고 한다.. 여기서 나올 중복 코드가 그 중복이 아닐텐데.. 스프링 3.2에서 추가됨. Annotation만으로 추가 설정없이 예외 처리 가능. @ControllerAdvice : 예외처리 객체임을 알림. @org.springframework.web.bind.annotat
Java EcoTILSpring Framework
Spring Boot; AOP
스프링 부트에서의 AOP도 역시 마찬가지로 적용할 수 있다. slf4j 로깅을 aspect로 등록하는 코드. 예제로써 보자.. 모르는 내가 봐도 좋은 코드는 아닌 것같음. 책에 또 코드 빠져있음…. 따로 bean등록을 하지 않았기 때문에 component scan으로 잡는다. AOP를 사용하기 위해 Aspect 어노테이션을 붙인다. Slf4j 어노테이션으로 slf4j 객체를 주입받는다. (log) Around로 aspect가 작동할 범위를 execution 필터 지정한다. execution : 하위 또는 지정된 클래스나 메소드에 필
Java EcoTILSpring Framework
Spring Boot; Interceptor
스프링의 인터셉터는 어떤 URI를 호출했을 때 요청 컨트롤러가 처리되기 전 또는 후 작업을 하기 위해 사용 된다 (프록시 패턴) 이런 역할은 Filter와 Interceptor로 수행할 수 있다. filter는 dispatcher servlet 앞 단에서 동작 interceptor는 handler로 가기 전 동작 filter는 servlet의 일부 기능이다. interceptor는 spring framework내에 있기 때문에 bean을 사용할 수 있다. filter는 웹 전반에 사용되는 기능을 구현 → RESTful interce
Java EcoTILSpring Framework
Spring Boot; Transactional
코드 기반의 트랜잭션, 어노테이션을 통한 선언적 트랜잭션 두가지를 지원한다. @EnableTransactionManagement : 어노테이션 기반의 트랜잭션 활성화. PlatformTransactionManager : 스프링이 제공하는 트랜잭션 매니져 등록. @Transactional : 트랜잭션 빈으로 트랜잭션 처리됨. AOP_TRANSACTION_ 상수 : Aspect의 필터와 지정대상을 상수로 지정한다. transactionAttribute.setName() : 트랜잭션의 이름 transactionAttribute.setRo
Java EcoTILSpring Framework
Spring Boot; Logback, Log4JDBC 개요
Log4j : 자바의 예외를 처리하기 위해 시작된 프로젝트 (종료) fork → Logback slf4j(Simple Logging Facade for Java) 와 함께 사용함 slf4j : 로깅 모듈 Interface slf4j를 이용해 코드를 작성하고 내부적으로 Logback, log4j2로 작동 appender : 로그를 출력할 타겟을 결정함 (console, file, db) encoder : appender에 포함되어 출력할 로그를 지정한 형식으로 변환하는 역할. logger : 로그를 출력하는 요소, level속성을 통
Java EcoTILSpring Framework
Spring Web; MVC
Model : 어플리케이션의 정보, 데이터를 의미한다. View : 사용자 인터페이스, 사용자가 보고 사용하는 화면을 의미한다. Controller : 모델과 뷰의 중계 역할. 사용자의 요청을 파악하고 그에 맞는 결과를 응답한다. 요청당 컨트롤러에 매핑되는 서블릿이 각각 존재했다. 중복코드를 방지하고 일관된 관리를 위해 프론트 컨트롤러가 생겼다. Front controller : 프론트 컨트롤러는 컨트롤러 앞에 존재하는 모든 흐름 제어를 담당한다. 다른 웹 프레임워크에도 존재한다. 스프링 웹 MVC의 dispatcher servle
Java EcoTILSpring Framework
Spring Boot; 훑어보기#5 - Spring Data JPA
구현체 없이 인터페이스만으로 리포지토리에 커밋이 가능한 코드를 만들 수 있다. 반복적으로 개발한 CRUD 기능도 스프링 데이터 JPA가 모두 제공한다. RDB에서 스프링 데이터 JPA는 아주 좋은 기능이다. 이외의 인터페이스 선언이나 구현체는 필요없다. 인터페이스 이름에 규칙이 있다. (JPQL) 예를들어 findByNameAndId 라고 하면 & 연산자를 넣을 수 있다. 간단한 요구사항은 인터페이스 이름만으로 개발이 끝난다. 페이징 기능을 자체적으로 제공한다. 의존주입도 Repository 의존만 받아오면 된다. 스프링 데이터 J