본문 바로가기
Spring Framework

스프링 부트 코딩 공작소 / 첫번째 애플리케이션(프로그램) 개발하기 2

by 자유코딩 2018. 3. 12.

스프링 부트 코딩 공작소 / 첫번째 애플리케이션(프로그램) 개발하기 2

 

스프링 부트에서 테스트 코드를 어떻게 작성하는지 먼저 살펴보도록 하겠습니다.

 

 

테스트 코드는 src/test/java 안에 들어있습니다.

 

이 코드를 실행해보도록 하겠습니다.

 

 

테스트 코드가 실행되었습니다.

 

스프링부트에서는 @Test 애너테이션 안의 함수에 코드를 작성하고 동작을 미리 테스트 해볼 수 있습니다.

 

그럼 이제 도서 목록을 출력하는 프로그램을 만들어보도록 하겠습니다.

 

먼저 Book 클래스를 생성합니다.

 

 

그림처럼 작성하면 되는데 import 되는 파일에 주의해주시기 바랍니다.

 

 

그림처럼 작성하시면 됩니다.

 

현재 src/main/java 폴더 안에는 3개의 파일이 더 있습니다.

 

각각의 파일의 소스코드는 다음과 같습니다.

 

Book.java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.example;
 
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
 
@Entity
public class Book {
    
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Long id;
    private String reader;
    private String isbn;
    private String title;
    private String author;
    private String description;
    
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getReader() {
        return reader;
    }
    public void setReader(String reader) {
        this.reader = reader;
    }
    public String getIsbn() {
        return isbn;
    }
    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
 
}
cs

 

ReadingListController.java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package com.example;
 
import java.util.List;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
 
 
@Controller
@RequestMapping("/")
public class ReadingListController {
 
    private static final String reader = "craig";
    
    private ReadingListRepository readingListRepository;
    
    @Autowired
    public ReadingListController(ReadingListRepository readingListRepository) {
        this.readingListRepository = readingListRepository;
    }
    
    @RequestMapping(method=RequestMethod.GET)
    public String readerBooks(Model model) {
        List<Book> readingList = readingListRepository.findByReader(reader);
        if (readingList!=null) {
            model.addAttribute("books",readingList);
        }
        return "readingList";
    }
    
    @RequestMapping(method=RequestMethod.POST)
    public String addToReadingList(Book book) {
        book.setReader(reader);
        readingListRepository.save(book);
        return "redirect:/";
    }
        
}
 
cs

 

ReadingListRepository.java

 

1
2
3
4
5
6
7
8
9
package com.example;
 
import java.util.List;
 
import org.springframework.data.jpa.repository.JpaRepository;
 
public interface ReadingListRepository extends JpaRepository<Book, Long>{
    List<Book> findByReader(String reader);
}
cs

 

Demo1Application.java 는 지금 작성하는 프로젝트와 상관없이 그냥 맨 처음 생성된 java 파일입니다.

 

그래서 소스코드 첨부를 생략하도록 하겠습니다.

 

 

 

 

-----------현재 작성중인 글입니다.-----------

 

댓글