JAVA 28

data.sql 파일로 데이터 초기화 하기/ MAVEN

resource/data.sql 작성 insert into todo(ID, USERNAME, DESCRIPTION, TARGET_DATE,DONE)values (1, 'hyukjin', 'Example Description', CURRENT_DATE(),false);  스프링부트가 시작될때 자동으로 data.sql 실행 하지만 todo 테이블이 생성되기 전에 위의 쿼리를 실행하기 때문에 오류가 날 수 있음  application.properties 에 다음의 속성 추가spring.jpa.defer-datasource-initialization=true 이제 스프링 부트가 시작될때 더미 데이터 값을 data.sql 에서 입력 할 수 있다!

JAVA 2024.05.10

Spring Security + H2 데이터 베이스 접속 / MAVEN

다음의 의존성 추가 org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 runtimeh2database 의존성은 jar 파일 압축에 포함되면 안됨. scope 를 runtime 으로 설정. application.properties 다음 추가spring.datasource.url=jdbc:h2:mem:testdbIn memory db 를 사용하고, 접속 url 을 fix 하겠다. 하지만 이것만으론 h2-console 에 접속할 수 없다.  filterChain 메서드를 SpringSecurityConfiguration 에 추가해주자@Beanpublic SecurityFilterChain filterCha..

JAVA 2024.05.09

Predicate

다음의 코드를 보자TodoService.javapublic void deleteById(int id) { Predicate predicate = todo -> todo.getId() == id; todos.removeIf(predicate);}id 를 넘겨받아 특정 todos 목록을 삭제하는 서비스 이다.removeIf 는 모든 todos 를 순회하며 탐색한다. public Todo findById(int id) { Predicate predicate = todo -> todo.getId() == id; Todo todo = todos.stream().filter(predicate).findFirst().get(); return todo;}같은 predicate 문법을사용하여..

JAVA 2024.05.08

@SessionAttributes

스프링 부트에서 각 브라우저마다 세션 ID를 확인하는 것은 일반적으로 HTTP 세션을 통해 이루어진다.브라우저가 서버에 요청을 보낼 때마다 서버는 각 요청에 대해 세션 ID를 생성하거나 사용한다. 세션 ID는 브라우저와 서버 간의 연결을 유지하고 해당 세션에 저장된 데이터에 접근하는 데 사용된다. @SessionAttributes특정 브라우저의 세션에 값을 저장하고 사용하고 싶을땐 어떻게 할까 ? @SessionAttributes 를 사용하면 된다. 이 어노테이션은 클래스레벨 어노테이션이다 아래의 코드를 보자package com.hyukjin.springboot.myfirstwebapp.login;import org.springframework.beans.factory.annotation.Autowire..

JAVA 2024.05.05