Dependency Injection

 

의존성 주입이란 말 그대로 A가 B에 의존할 때 A에 B를 주입한다는 것을 의미합니다. 즉, A가 B에 의존한다는 말은 A가 B를 사용한다는 의미와 같습니다.

 

이러한 의존 관계에서 A가 B에 의존하고 있을 때, B에 변화가 생기면 A가 영향을 받게 되고 B를 효과적으로 관리하기 위한 코드 생성이 필요합니다.

 

Spring 주입에 관한 글

 

[Spring] 생성자(Constructor) 주입, 필드(Field) 주입, 수정자(Setter) 주입

생성자 주입(Constructor Injection) 스프링에서 가장 권장하는 방식입니다. 단일 생성자인 경우에는 @Autowired 어노테이션을 붙이지 않아도 되지만 생성자가 2개 이상인 경우에는 생성자에 어노테이션

developer-rooney.tistory.com

 

 

스프링부트 게시판 무작정 따라하기!

 

이 강의는 자바를 이용한 웹 개발 기초 지식, 프레임워크에 관한 지식이 없으신 분도 따라하기만 하면 게시판을 만들 수 있게 구성하였습니다. 물론 완벽하게 이해하시기는 힘드시겠지만 강의 통해 웹 개발에 흥미를 가지셨으면 좋겠습니다.

 

스프링 부트와 JPA, Thymeleaf를 이용한 게시판 개발

 

본 개발에서 프레임워크는 스프링 부트(Spring Boot)를 사용할 것이고, DB 접근 기술로는 Mybatis 가 아닌 JPA(Java Persistence API)를 사용할 것이며, View를 담당하는 View 템플릿은 타임리프(Thymeleaf)를 사용할 것입니다. 스프링 부트를 통해 MVC 구조를 파악할 수 있고, JPA를 통해 Mybatis와는 다른 DB 접근 방법을 익힐 수 있으며, 타임리프를 통해 사용자에게 데이터를 어떻게 보여줄 수 있는가 학습해 봅시다.

 

이 부분도 너무 어렵게 받아들이지 마시고 이런 것들이 쓰였구나 정도로 이해해주시면 됩니다.

 

개발환경

 

IDE(통합개발환경) : 인텔리제이 커뮤니티

 

개발 언어 : Java 1.8.0

 

프레임워크 : Spring Boot 2.5.3

 

빌드 : Gradle

 

DB(데이터베이스) : MariaDB 10.3.30

 

DB 접근 기술 : JPA

 

View 템플릿 : Thymeleaf

 

 

강의 영상

1) 강의 소개

 

 

2) 인텔리제이 설치

 

 

3) MariaDB 설치

 

 

4) MySQL Workbench 설치

 

 

5) 프로젝트 생성

 

 

6) DB에 테이블 생성

 

 

7) 게시글 작성폼 생성

 

 

8) 글 작성 처리

 

 

9) 게시글 리스트

 

 

10) 게시글 상세페이지

 

 

11) 게시글 삭제

 

 

12) 게시글 수정

 

 

13) 메시지 띄우기

 

 

14) 파일 업로드

 

 

강의자료

application.properties 설정

spring.datasource.driverClassName=org.mariadb.jdbc.Driver

spring.datasource.url=jdbc:mariadb://localhost:3306/board

spring.datasource.username=스키마계정

spring.datasource.password=비밀번호

 

테스트 데이터 프로시저 생성

DELIMITER $$

CREATE PROCEDURE testDataInsert()
BEGIN
    DECLARE i INT DEFAULT 1;

    WHILE i <= 120 DO
        INSERT INTO board(title, content)
          VALUES(concat('제목',i), concat('내용',i));
        SET i = i + 1;
    END WHILE;
END$$
DELIMITER $$

1) 프로젝트 생성

다음 순서로 Spring Boot 프로젝트를 생성합니다.

 

 

2) main 밑에 디렉토리 생성

webapp/WEB-INF/jsp

 

3) application.properties 설정

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

 

4) build.gradle 설정

implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl'

findAll의 매개변수로 Sort.by(Sort.Direction.DESC, "id")

 

이런 식으로 넘겨주면 id 컬럼을 기준으로 내림차순 정렬해줍니다. 

public List<Article> articleList() {
        List<Article> list = articleRepository.findAll(Sort.by(Sort.Direction.DESC, "id"));
        return list;
}

'Java Web > JPA' 카테고리의 다른 글

[JPA] persistence.xml 작성 예시  (0) 2022.03.02
[JPA] 연관 관계 편의 메소드  (0) 2022.02.28
[JPA] 양방향 관계 매핑 @OneToMany, @ManyToOne 그리고 mappedby  (1) 2022.02.16
[JPA] Auditing 정리  (0) 2022.02.14
[JPA] JPA란?  (0) 2021.05.13

+ Recent posts