@Value 애노테이션이 필드나 메서드(혹은 생성자)의 파라미터 수준에서 표현식 기반으로 값을 주입해주는 애노테이션. 환경에 따라 유연한 값 설정: 데이터베이스 접속 정보, 보안에 중요한 비밀번호와 같은 민감한 정보나 변경할 가능성이 높은 값에 대해서는 별도의 파일(properties, yaml, .dot, ...)으로 분리해서 소스코드에서는 환경 정보에 맞는 설정 값을 불러오는 것이 좋다. @RequestParam("가져올 데이터의 이름") [데이터타입] [가져온 데이터를 담는 변수] @RequestParam(value = "contentid", required=true) Long contentid model.addAttribute("contentid"); //model 객체를 이용하여 view로 값을..
@ExceptionHandler controller 계층에서 발생하는 에러를 잡아서 메서드로 처리해주는 기능이다. Service와 Repository에서 발생하는 에러는 제외한다. @ControllerAdvice @Controller와 handler에서 발생하는 에러들을 모두 잡아주는 역할을 한다. @ControllerAdvice 안에 @ExceptionHandler가 있어서 에러를 잡는다. @ControllerAdvice는 모든 에러를 잡기 때문에 일부 에러만 처리하고 싶을 경우에는 따로 설정을 해준다. // 1. @ControllerAdvice(annotations = RestController.class) public class ExampleAdvice1 {} // 2. @ControllerAdvi..
ResponseEntity 1) Spring에서 제공하는 클래스 중 HttpEntity라는 클래스가 존재하는데 이것은 HttpHeader와 HttpBody를 포함하는 클래스이다. 2) HttpEntity 클래스를 상속받아 구현한 클래스가 RequestEntity와 ResponseEntity 클래이다. 3) ResponseEntity는 사용자의 HttpRequest에 대한 응답 데이터를 포함하는 클래스이다. Custom Exception - 상세한 예외 정보를 제공할 수 있다. - Enum과 함께 사용하여 예외에 대한 응집도를 높을 수 있다.
Logback이란? - 자바 오픈소스 로깅 프레임워크로 slf4j의 구현체 - 스프링 부트 기본으로 설정되어 있어서 사용시 별도의 라이브러리를 추가하지 않아도 된다. - spring-boot-start-web 안에 spring-boot-starter-logging 구현체가 있다. - 로깅을 수행하기 위해 필요한 주요 설정 요소 3가지는 Logger, Appender, Encdoer가 있다. Logback 기본 설정 logback-spring.xml을 resources 디렉토리에 만들어서 참조 1) classpath에 logback-spring.xml이 있으면 설정파일을 읽어간다. 2) logback-spring.xml이 없으면 .yml의 설정을 읽어간다. 3) logback-spring.xml과 .yml..
Entity(엔티티) 데이터베이스에 쓰일 필드와 여러 엔티티간 연관관계를 정의하는 역할을 한다. 테이블에 대응하는 하나의 클래스 Repository(저장소) Entity에 의해 생성된 DB에 접근하는 메소드들을 사용하기 위한 인터페이스 MVC 패턴에서 Model에 해당하는 부분으로 Persistence Layer와 1:1 매칭이 가능하다. 기본 storage에 접근하기 위해 DAO를 사용할 수 있고 도메인 개체에 가까운 상위 개념이다. Controller(컨트롤러) View에서 Client의 요청을 받아 흐름 제어를 통해 Model에서 필요한 데이터를 호출하여 View에 다시 반환한다. Service(서비스) DAO가 DB에서 받아온 데이터를 전달받아 가공하는 비즈니스 로직으로 Controller의 부담..
@RequestParam spring MVC에서 쿼리 스트링 정보를 쉽게 가져올 수 있음 - required = false와 같이 required 속성을 추가하면 해당 필드가 쿼리스트링에 존재하지 않아도 예외가 발생하지 않는다. - required = true와 같은 속성을 추가하면 해당 필드가 쿼리스트링에 존재하지 않을 때 예외가 발생하도록 한다. - defaultValue는 파라미터 값이 없을 경우 기본으로 들어갈 값을 지정해주는 것이다. User Agent HTTP 요청을 보내는 디바이스와 브라우저 등 사용자 s/w의 식별 정보를 담고 있는 request header의 한 종류이다. 임의로 수정될 수 없는 값이고 보통 HTTP 요청 에러가 발생했을 때 요청을 보낸 사용자 환경을 알아보기 위해 사용한..
* JAVA Beans: 재사용 가능한 컴포넌트, 상태, getter&setter * Servlet & JSP bean: MVC의 Model, EL, scope, JSP Container가 관리 * EJB(Enterprise Java Beans): 복잡한 규칙, EJB container가 관리 * Spring Bean: POJO(Plain Old Java Object), 단순, 독립적, Spring Container가 관리 * Bean: Spring Container가 관리하는 객체 * Spring Container: Bean 저장소, Bean을 저장, 관리(생성, 소멸, 연결) BeanFactory: Bean을 생성, 연결 등의 기본 기능을 정의 ApplicationContext: BeanFactory..