본문 바로가기
728x90

Spring7

[Spring]Application Layer 퀴즈를 CRUD하고 문제를 풀 수 있는 어플리케이션 레이어를 구현한다. //QuizForm package com.example.quiz.form; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import javax.validation.constraints.NotBlank; @Data @NoArgsConstructor @AllArgsConstructor public class QuizForm { private Integer id; @NotBlank private String question; private Boolean answer; @NotBlank private String author; pr.. 2023. 5. 16.
[Spring]Service 비즈니스 로직을 처리하는 서비스 컴포넌트 구현 // QuizService package com.example.quiz.service; import com.example.quiz.entity.Quiz; import java.util.Optional; public interface QuizService { Iterable selectAll(); Optional selectOneRandomQuiz(); Boolean checkQuiz(Integer id, Boolean myAnswer); void insertQuiz(Quiz quiz); void updateQuiz(Quiz quiz); void deleteQuizById(Integer id); } package com.example.quiz.service; .. 2023. 5. 15.
[Spring]Application-CRUD 퀴즈 애플리케이션을 만들 때 레이어를 3개로 나누어 개발. 애플리케이션 레이어: 클라의 요청을 제어하고 도메인 레이어를 사용해 애플리케이션 제어 Controller: 요청을 처리에 매핑, 결과를 뷰에 넘김. 주요 처리는 도메인 레이어의 서비스를 호출 Form: 화면의 폼을 표현, 화면의 입력값을 컨트롤러에 넘기고 컨트롤러에서 화면을 출력할 때도 사용. View: 화면 표시 도메인 레이어: 도메인 객체에 대해 애플리케이션 서비스 처리 실행 Domain Object: 서비스 처리에 필요한 자원(Entity 등) Service: 애플리케이션의 서비스 처리 Repository: 인터페이스. 데이터베이스의 데이터 조작 내용 정의 인프라스트럭쳐 레이어: 도메인 객체에 대해 CRUD 조작을 통해 데이터의 영속화 담당.. 2023. 5. 12.
[Spring]Request Parameter/Validation Request Parameter request parameter로 속성을 담아서 /confirm url로 전송. 입력 부분을 Form으로 대체 가능 package com.example.demo.controller; import com.example.demo.form.Form; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind... 2023. 5. 11.
[Spring]Thymeleaf 문법, Layout Thymeleaf 문법 package com.example.demo.controller; import com.example.demo.entity.Member; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Controller public class ThymeleafController { @GetMapping("show.. 2023. 5. 10.
[Spring]JDBC/MVC Model JDBC ORM: Object/RDB Maper, 애플리케이션의 객체와 RDB의 데이터 매핑 스프링 데이터의 메서드를 상속해 사용 가능 application.properties에서 스프링 부트 프로젝트 환경 설정 // application.properties spring.datasource.driver-class0name=org.postgresql.Driver spring.datasource.url=jdbc:postgresql://localhost:5432/postgres spring.datasource.username=qwer spring.datasource.password=qwer 엔터티 생성 // ㅡ package entity; import lombok.AllArgsConstructor; impor.. 2023. 5. 9.
[Spring]DI/AOP 인터페이스 클래스에 포함하는 메서드의 구체적인 내용을 작성하지 않고 상수와 메서드 타입만 정의한 것. 다른 클래스에서 구현하는 것을 전제로 만들어짐 의존성 주입(DI) 의존하는 부분을 외부에서 주입하는 것(Dependency Injection) '사용하는 객체' 클래스에서 '사용되는 객체' 클래스에 의존하거나 인터페이스에 의존할 수 있음. 스프링에서는 DI 컨테이너가 임의의 클래스를 인스턴스로 생성해 클래스에 주입 인터페이스를 이용해 의존성을 만듦 - 인스턴스를 명시적으로 생성(new)하지 않음 - 어노테이션을 클래스에 부여 - 스프링이 인스턴스 생성(시작 시 모든 패키지를 스캔하는 컴포넌트 스캔을 통해) - 인스턴스를 이용하는 곳에 어노테이션 부여(@Autowired) 인스턴스 생성 어노테이션: @Co.. 2023. 5. 4.
728x90