JAVA 28

JDBC / Maven

스프링 데이터 생성시 SPRING DATA JDBC 의존성 추가해야함 !  데이터 테이블 초기 설정을 위해 resources/schemas.sql 작성create table course( id bigint not null , name varchar(255) not null, author varchar(255) not null , primary key (id)); application.properties를 다음과 같이 수정spring.application.name=learn-jap-hibernatespring.h2.console.enabled=true // 콘솔 접근 허용spring.datasource.url=jdbc:h2:mem:testdb // 접속 url 명시적으로 고정!  C..

JAVA 2024.05.04

@ConfigurationProperties

@ConfigurationProperties 어노테이션은 외부 설정 파일에서 속성 값을 가져와서 Java 객체의 필드에 주입할 수 있다. 아래의 코드를 보자package com.hyukjin.practicespringboot;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;@ConfigurationProperties(prefix = "currency-service")@Componentpublic class CurrencyServiceConfiguration { private String url; private String u..

JAVA 2024.05.03

@Lazy

@Lazy 지연 초기화 옵션 이다. 아래의 코드를 보자@Componentclass ClassA {}@Component@Lazyclass ClassB { private ClassA classA; public ClassB(ClassA classA){ System.out.println("Some Initialize logic"); this.classA = classA; } public void doSomething() { System.out.println("Do Something"); }} classB 의 생성자 주입은 애플리케이션이 시작할때 이루어지지 않는다 .@Lazy 어노테이션은 Bean 의 초기화를 지연 한다. 아래의 코드를 실행해보자@C..

JAVA 2024.05.01

HTTP 요청 메시지 - 단순 텍스트

HttpEntity - requestBodyStringV3 @PostMapping("/request-body-string-v3")public ResponseEntity requestBodyStringV3(RequestEntity requestEntity) { String messageBody = requestEntity.getBody(); log.info("messageBody={}", messageBody); return new ResponseEntity("ok",HttpStatus.CREATED);}스프링 MVC는 다음 파라미터를 지원한다.HttpEntity: HTTP header, body 정보를 편리하게 조회메시지 바디 정보를 직접 조회요청 파라미터를 조회하는 기능과 관계 없음 @..

JAVA 2024.04.30

HTTP 요청 파라미터 - @ModelAttribute

실제 개발을 하면 요청 파라미터를 받아서 필요한 객체를 만들고 그 객체에 값을 넣어주어야 한다.보통 다음과 같이 코드를 작성할 것이다. @RequestParam String username;@RequestParam int age;HelloData data = new HelloData();data.setUsername(username);data.setAge(age);  스프링은 이 과정을 완전히 자동화해주는 @ModelAttribute 기능을 제공한다. 먼저 요청 파라미터를 바인딩 받을 객체를 만들자.  HelloDatapackage hello.springmvc.basic;import lombok.Data;@Datapublic class HelloData { private String username; p..

JAVA 2024.04.30

HTTP 요청 파라미터 - @RequestParam

쿼리스트링, form-data, x-www-form-urlencoded  메시지 바디가 텍스트 형태면 받지 못함! 위의 3가지 데이터는 @RequestParam 어노테이션으로 데이터를 받을 수 있다 package hello.springmvc.basic.requestmapping;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.an..

JAVA 2024.04.30

@Slf4j

로깅 간단히 알아보기 System.out.println() 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용해서 로그를 출력해보자. 스프링 부트를 사용하면 스프링 부트 로깅 라이브러리( spring-boot-starter-logging )가 함께 포함된다. 로그 라이브러리는 Logback, Log4J, Log4J2 등등 수 많은 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는 것이 바로 SLF4J 라이브러리다. 쉽게 이야기해서 SLF4J는 인터페이스이고, 그 구현체로 Logback 같은 로그 라이브러리를 선택하면 된다. 로그 선언 방법private Logger log = LoggerFactory.getLogger(getClass());private sta..

JAVA 2024.04.29