본문 바로가기

Back-end78

Spring boot - blog application (REST API) : Securing REST APIs REST API 에서 스프링 시큐리티는 어떻게 적용이 될까? Dependency org.springframework.boot spring-boot-starter-security application.properties logging.level.org.springframework.security=DEBUG spring.security.user.name=kjh spring.security.user.password=password spring.security.user.roles=ADMIN 실행을 하면 시큐리티 자체 로그인 페이지로 넘어가게 되는데 application.properties 에서 user name, password 를 설정하여 시큐리티에 로그인 할 수 있다. Postman 에서 시큐리티 적용된 서.. 2022. 7. 20.
Spring boot - blog application (REST API) : Validation @Valid 스프링 부트에서 유효성 검사를 해보려고 합니다. Create, Update Post REST API 요청에 대해 유효성 검사 dependency 추가 org.springframework.boot spring-boot-starter-validation 2.7.0 PostDto 에 애노테이션 추가 package com.springboot.blog.payload; @Data public class PostDto { private long id; @NotEmpty @Size(min =2, message="Post title should have at least 2 characters") private String title; @NotEmpty @Size(min= 10, message="Post descripti.. 2022. 7. 6.
Spring boot - blog application (REST API) : Global Exception Handling REST API 에서 a custom error response를 생성하기 Create ErrorDetails Class Create GlobalExceptionHandler Class Test using Postman Client Create ErrorDetails Class package com.springboot.blog.payload; import java.util.Date; import lombok.Getter; @Getter public class ErrorDetails { private Date timestamp; private String message; private String details; public ErrorDetails(Date timestamp, String message, .. 2022. 7. 5.
Spring boot - blog application (REST API) : ModelMapper ModelMapper map an object from one object to another object ! 1. Add ModelMapper Library dependency Maven Repository: org.modelmapper » modelmapper mvnrepository.com org.modelmapper modelmapper 3.1.0 2. define the ModelMapper bean in our Spring configuration @SpringBootApplication indicates that configuration class that declares one or more bean methods and also triggers a auto configuration and.. 2022. 7. 4.
Spring boot - blog application (REST API) : Comment Creating JPA "Comment" Entity Comment @Data @NoArgsConstructor @AllArgsConstructor @Entity @Table(name = "comments") public class Comment { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String body; private String email; private String name; @ManyToOne(fetch =FetchType.LAZY) @JoinColumn(name="post_id", nullable=false) private Post post; } @ManyToOne(fetch =Fetc.. 2022. 7. 3.
Spring boot - blog application (REST API) : Pagination and Sorting Support 기존 포스트 리스트에서 페이지네이션을 적용시키려고 합니다. 페이지네이션을 사용자가 쉽게 설정할 수 있도록 따로 클래스 작성 AppConstants package com.springboot.blog.utils; public class AppConstants { // page elements public static final String DEFAULT_PAGE_NUMBER = "0"; public static final String DEFAULT_PAGE_SIZE= "10"; public static final String DEFAULT_SORT_BY= "id"; public static final String DEFAULT_SORT_DIRECTION= "ASC"; } payload PostResponse.. 2022. 6. 30.
Spring boot - blog application (REST API) : Post CRUD REST API 를 통해 게시물을 CRUD - Create(생성), Read(읽기), Update(갱신), Delete(삭제) 적용 패키지 구조 application.properties spring.datasource.dbcp2.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/myblog?userSSL=false&serverTimezone=Asia/Seoul&characterEncoding=UTF-8 spring.datasource.username = root spring.datasource.password = root # hibernate properties spring.jpa.prop.. 2022. 6. 29.
Spring boot - blog application (REST API) What is REST? The REST stands for REpresentational State Transfer ➢ State means data ➢ REpresentational means formats (such as XML, JSON, YAML, HTML, etc) ➢ Transfer means carry data between consumer and provider using the HTTP protocol Key points about REST - REpresentational State Transfer: • REST was originally coined by Roy Fielding, who was also the inventor of the HTTP protocol. • A REST A.. 2022. 6. 28.
Spring Boot 컨트롤러에서 데이터 받는 방법(@RequestBody, @RequestParam, @PathVariable) @RequestBody HttpMessageConverter에 의해 Json 포맷의 데이터 java 객체로 자동으로 역직렬화 예시) Controller.java @PostMapping("register") @ResponseBody // return data public String register(@RequestBody Member member) { ... } JSP에서 ajax를 통해 통신 var data={ "name": $("#name").val(), "nickName": $("#nickname").val(), "password": $("#password").val(), "gender": $("#gender").val(), "email":$("#email").val(), "phone":$("#pho.. 2022. 6. 27.
SpringBoot 개념정리 스프링 자바 기반의 웹 어플리케이션을 만들 수 있는 프레임워크 IoC (Inversion of Control) 제어의 역전 -> 주도권이 스프링에 있다. 객체 생성 및 의존성 설정을 스프링에 위임 IoC컨테이너 객체 생성, 라이프사이클 관리, 의존성 설정을 담당하는 컨테이너 IoC컨테이너를 DI 컨테이너, 스프링 컨테이너라고 부름 @Component 계열 class - 설계도 object - 실체화가 가능한 것 instance - 실체화 된 것 DI (Dependency Injection) 의존성 주입 스프링은 싱글톤 패턴으로 객체 생성 비용 문제 해결 @Autowired MessageConverter 스프링은 메시지컨버터를 가지고 있고 기본값은 json . @ResponseBody -> Buffered.. 2022. 6. 22.
spring framework 트랜잭션, @Transactional 처리 트랜잭션 트랜잭션은 두 개 이상의 쿼리를 한 작업으로 실행해야할 때 사용합니다. @Override @Transactional // db 동시에 public void insert(CommentDTO comment) { // 댓글 추가 mapper.insert(comment); // 댓글 수 증감 bmapper.updateReplyCnt(comment.getBnum(), 1); } 이와 같은 메소드를 처리하기 위해 어떻게 해야 될까요? root-context.xml Check Namespaces tx를 체크해줍니다. 으로 트랜잭션 동작을 활성화시킵니다. DataSourceTransactionManager : JDBC 및 mybatis 등의 JDBC 기반 라이브러리로 데이터베이스에 접근하는 경우에 이용합니다... 2022. 5. 9.
spring lagacy project / 생성, 설정, 오류 처리, maven, mybatis | 히카리 cp STS4 JAVA EE Tool 및 여러 Tools 설치 STS4 utf-8 설정 spring legacy project STS 플러그인 설치 및 스프링 프로젝트 생성 [Spring] Spring Legacy Project 초기 설정 Java Build Path, Project Facets --> set java version pom.xml 11 5.3.2.RELEASE 1.6.10 1.6.6 메이븐 업데이트 하기 가끔 경로 이탈 할 경우 있음. https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api javax.servlet javax.servlet-api 4.0.1 provided https://mvnrepository.com/artifa.. 2022. 5. 6.