본문 바로가기

STUDY/Spring

(79)
Spring Boot | AOP(Aspect Oriented Programming) AOP(Aspect Oriented Programming) 공통 관심 사항(croos-sutting concern)과 핵심 관심 사항(core concern)을 분리하기 위해 사용 @Pointcut이나 advice의 다양한 애노테이션을 사용해 원하는 적용 대상만 선택해 적용할 수 있다 AOP가 적용되면 프록시로 해당 타겟을 실행하게 된다 -> 프록시가 실제 메서드나 클래스를 호출하는 방식으로 의존관계가 변경 됨 AOP 활성화 스프링 부트 메인 클래스에 @EnableAspectJAutoProxy 애노테이션을 추가한다. Aspect 작성 @Aspect 애노테이션을 추가 @Aspect public class TimeTractApp { }Pointcut Pointcut은 Advice의 실행 시기를 제어한다. @..
Spring Boot | @ConfigurationProperties 알아보기 profiles 설정과 함께라면 완벽하게 환경별로 설정값을 나눌 수 있게된다..! @ConfigurationProperties 스프링 부트는 properties파일이나 YAML파일, 환경변수를 통해 애플리케이션에서 사용하는 설정 값을 정의할 수 있다. properties나 YAML에 정의된 속성들은 @Value 애노테이션으로 필드(변수)에 직접 주입할 수도 있지만 @ConfigurationProperties애노테이션을 사용하면 속성들을 객체화 하여 사용할 수 있다. (Java Bean 형식으로 만든다) @Value는 단순한 속성값을 사용할 때는 편리할 수 있지만, 속성값이 계층 구조를 가지거나 사용해야 할 속성의 개수가 많아지면 번거로워진다. 어떻게 사용하나 우선 application.properties..
Spring Boot | JPA 사용해보기 (1) + H2데이터베이스 설치 이 글은 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의를 매우 많이 참고했습니다. H2 데이터베이스 간단한 테스트만 할 것이므로 H2데이터베이스로 진행해 보겠섬니다..! MacOS는 brew로 휘리리릭 다른 운영체제는 위에 링크 걸어놓았으니.. 링크로 다운로드 혹은 뭐 초콜라테이,,,이런거로 설치하면 된다. h2설치 $ brew install h2h2 실행!! 중요! $ h2아래처럼 콘솔이 뜨면 잘 실행된 것이에요.. sessionid는 지우면 안됩니다! JDBC URL을 아래와 같이 변경하고 연결해서 성공하면 끝 스프링 부트 스타터로 프로젝트 생성 build.gradle참고 (lombok은 꼭 사용하지 않아도 된다) plugins { id 'org.springfr..
Spring Boot | profile설정 ( + 2.4이상 버전 변경내용 추가 ) Spring Profiles는 애플리케이션 설정을 특정 환경에서만 적용되게 하거나, 환경 별(local, test, production 등)로 다르게 적용할 때 사용된다. properties를 사용하면, 환경별로 각각 다른 파일을 만들어 설정한다 application-dev.properties라는 파일을 만들고, 이 파일은 개발 환경에서만 사용할 설정값을 작성한다. # application-dev.properties spring.datasource.url=mysql://[개발환경IP]:3306/[개발DB] spring.datasource.username=[DB접속 USER NAME] spring.datasource.password=[DB접속 PASSWORD] 그리고 application-productio..
Spring Boot | Exception만들기 1. CustomException 부모 클래스 생성 RuntimeException을 상속받아 작성한다. ErrorCode를 입력받는 생성자를 생성, super(errorCode.getMessage())는 아래와 같이 exception발생 시 메시지를 설정한다. public class CustomException extends RuntimeException implements Serializable { private ErrorCode errorCode; public CustomException(ErrorCode errorCode) { super(errorCode.getMessage()); this.errorCode = errorCode; } public ErrorCode getErrorCode() { re..
Spring Boot | Spring Security @PreAuthorize사용하기 의존성 참고! // Sprint Security implementation 'org.springframework.boot:spring-boot-starter-security' // OAuth2 implementation group: 'org.springframework.security.oauth', name: 'spring-security-oauth2', version: '2.3.5.RELEASE' // JWT implementation group: 'org.springframework.security', name: 'spring-security-jwt', version: '1.1.1.RELEASE' 1. @EnableGlobalMethodSecurity 설정 MethodSecurity는 말그대로 메소드..
Spring Boot | REST API 파일 업로드 / 다운로드 Spring Boot File Upload / Download Rest API Example Uploading and downloading files are very common tasks for which developers need to write code in their applications. In this article, You'll learn how to upload and download files in a RESTful spring boot web service. We'll first build the REST APIs for up www.callicoder.com 1. multipart관련 사용 설정 application.properties나 application.yml에 multipar..
Spring Boot | @ControllerAdvice로 Exception 처리하기 참고! Spring Guide - Exception 전략 - Yun Blog | 기술 블로그 Spring Guide - Exception 전략 - Yun Blog | 기술 블로그 cheese10yun.github.io 0. Controller /messages URI로 POST요청을 하면, @Valid 어노테이션이 설정되어 있기 때문에 MesseageParam에 설정된 검증 항목(?)들을 검사한다. 만약 검증을 통과하지 못하면..! (더 큰 값을 보낸다거나 필수값을 보내지 않는 등..) Exception이 발생한다.. @RestController public class MessageController { @PostMapping(value = "/messages", produces = "applicatio..