4장 스프링 시큐리티 💻 실습 : https://github.com/cusbert/spring-in-action-5th 책과는 달리 일부 코드 수정. 권한 관련 테이블을 sql로 생성하지 않고 spring.jpa.hibernate.ddl-auto 로 생성하도록 변경. 🎯 이 장에서 배우는 내용 스프링 시큐리티(Spring Security) 자동-구성하기 커스텀 사용자 스토리지 정의하기 커스텀 로그인 페이지 만들기 CSRF 공격으로부터 방어하기 사용자 파악하기 4.1 스프링 시큐리티 활성화 하기 스프링 부트 보안 스타터 의존성 추가 org.springframework.boot spring-boot-starter-security org.springframework.security spring-security..
No identifier specified for entity 에러 해결 이슈 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: 엔티티명 a..
3장 데이터로 작업하기 - JPA 💻 실습 : https://github.com/cusbert/spring-in-action-5th 🎯 이 장에서 배우는 내용 스프링 데이터 (Spring Data) 를 사용해서 JPA 선언하고 사용하기 3.2 JPA 를 사용해서 데이터 저장하고 사용하기 대표적인 스프링 데이터 프로젝트 스프링 데이터 JPA : 관계형 데이터베이스 JPA 퍼시스턴스 스프링 데이터 MongoDB: 몽고 문서형 데이터베이스의 퍼시스턴스 스프링 데이터 Neo4: Neo4j 그래프 데이터베이스의 퍼시스턴스 스프링 데이터 Redis: 레디스 Key-value 스토어 퍼시스턴스 스프링 데이터 cassandra: 카산드라 퍼시스턴스 3.2.1 스프링 데이터 JPA 프로젝트에 추가하기 JPA 스타터는 J..
하이버네이트 자동 키 에러 해결 이슈 java.sql.SQLException: Table 'dbschema.hibernate_sequence' doesn't exist at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readErrorPacket(AbstractQueryProtocol.java:1694) ~[mariadb-java-client-2.7.3.jar:na] at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readPacket(AbstractQueryProtocol.java:1556) ~[mariadb-java-client-2.7.3.jar:na] 해결 개발용 스키마에 sql 로 직..
3장 데이터로 작업하기 - JDBC 💻 실습 : https://github.com/cusbert/spring-in-action-5th 🎯 이 장에서 배우는 내용 스프링 JdbcTemplate 사용하기 SimpleJdbcInsert 사용해서 데이터 추가하기 3.1 JDBC를 사용해서 데이터 읽고 쓰기 관계형 데이터를 사용할 때 선택지는 JDBC, JPA 두 개다 스프링의 JDBC 지원은 JdbcTemplate 템플릿에 기반을 둔다 JdbcTemplate 를 사용해서 데이터베이스 쿼리하기 명령문이나 데이터베이스 연결 객체를 생성하는 코드가 없다. 메서드의 실행이 끝난 후 그런 객체들을 클린업하는 코드 또한 없다. catch 블록에서 올바르게 처리할 수 없는 예외를 처리하는 코드도 없다. @Override p..
@ControllerAdvice 를 이용한 예외 처리 이슈 회사에서는 내려줘야 할 Response 에러 포맷이 정해져 있다. 에러를 아름답게 형식화하여 json으로 내려주고 싶다 해결 @ControllerAdvice 로 커스터마이징하여 특정 컨트롤러, 예외 타입에 대해 반환할 응답 JSON 을 정의 할 수 있다. 주요 예외 처리는 다음과 같다. @ControllerAdvice public class CustomRestExceptionHandler { @ExceptionHandler(HttpMessageNotReadableException.class) public ResponseEntity handleHttpMessageNotReadableException( HttpMessageNotReadableExce..
2장 웹 애플리케이션 개발하기 💻 실습 : https://github.com/cusbert/spring-in-action-5th 🎯 이 장에서 배우는 내용 모델 데이터를 브라우저에 보여주기 폼 입력 처리하고 검사하기 뷰 템플릿 라이브러리 선택하기 2.1 정보 보여주기 도메인 클래스 : 타코 식자재의 속성을 정의 컨트롤러 클래스 : 식자재 정보를 가져와 뷰에 전달 뷰 템플릿 : 식자재 내역을 브라우저에 노출 2.1.1 도메인 설정하기 Lombok 를 사용하여 코드량을 줄일 수 있다 Lombok 주요 기능 @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor Constructors made to order: @NoArgsConstructo..
1장 스프링 시작하기 💻 실습 : https://github.com/cusbert/spring-in-action-5th 1.1 스프링이란 스프링은 스프링 애플리케이션 컨텍스트 이라는 컨테이너 제공하는데 이는 애플리케이션 컴포넌트들을 생성하고 관리한다 애플리케이션 컴포넌트 또는 빈bean들은 스프링 애플리케이션 컨텍스트 내부에서 서로 연결되어 완전한 애플리케이션을 만든다. 빈의 상호 연결은 DI(의존성 주입) 기반으로 수행된다 즉 애플리케이션 컴포넌트는 스프링 컨텍스트에 의해 관리되고 상호 주입된다 @Configuration 최신 버전의 스프링에서는 xml 보다는 자바 기반 configuration 을 사용하여 빈을 상호연결한다 @Configuration public class ServiceConfigur..
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.