728x90
반응형

타임리프는 스프링 부트에서 공식적으로 지원하는 View 템플릿입니다. JSP와 달리 Thymeleaf 문서는 html 확장자를 갖고 있어 JSP처럼 Servlet이 문서를 표현하는 방식이 아니기 때문에 서버 없이도 동작 가능합니다.

 

Spring Boot 타임리프 기본 설정

 

1. Spring Boot에서 타임리프를 사용하기 위해서는 라이브러리를 추가해야 합니다.

 

MVNRepository Spring Boot Starter Thymeleaf

 

2. 타임리프를 적용할 HTML 문서를 작성하고 상단 <html> 태그 내부에 다음과 같이 작성합니다.

 

<!DOCTYPE html>


<html xmlns:th="http://www.thymeleaf.org">


<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
</html>

 

타임리프 사용법

 

타임리프에서는 JSP처럼 서버에서 받아온 데이터를 ${ } 을 이용하여 표기합니다.

 

 

컨트롤러 부분

 

컨트롤러에서 Model을 통해 'name'이란 이름에 'Rooney'를 넣어 View 부분으로 보냅니다.

 

@RequestMapping("/article")
public class ArticleController {
    
    
    @GetMapping("/list")
    public String articleList(Model model) {
    
        model.addAttribute("name", "Rooney");
        
        return "article/list";
    }
}

 

View(타임리프) 부분

 

타임리프 문법 중 글씨를 출력하는 th:text=""에 넘긴 데이터 ${name}을 넣어주면 위에 컨트롤러에서 매핑한 /article/list로 접속했을 때 화면에 Rooney가 출력됩니다.

 

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div th:text="${name}"></div>

</body>
</html>

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


타임리프 문법

 

타임리프 문법은 공식 홈페이지를 참고해주세요.

 

 

Tutorial: Using Thymeleaf

1 Introducing Thymeleaf 1.1 What is Thymeleaf? Thymeleaf is a modern server-side Java template engine for both web and standalone environments, capable of processing HTML, XML, JavaScript, CSS and even plain text. The main goal of Thymeleaf is to provide a

www.thymeleaf.org

 

타임리프 자주 사용하는 문법

 

문법 역할 예제
th:text 문자열 생성 th:text=" ${data} "
th:each 반복문 th:each="article : ${articleList}"
th:if if 조건문 th:if=${data != null}
th:href 이동 경로 th:href=" @{/article/list(id= ${data} )} "

 

728x90
반응형

Spring에서 테스트 클래스 사용을 위한 두 가지 어노테이션들에 대해 알아봅시다.

 

우선, Mokito를 사용하기 위해서는 아래와 같은 코드 작성을 해줘야 합니다. 테스트클래스 위에 @RunWith 어노테이션을 작성하여 Mock 객체를 사용하거나, @RunWith 어노테이션을 작성하지 않을 경우 setUp() 메소드를 아래처럼 만들어줍니다. 

 

@RunWith(MokitoJunitRunner.class)
public class TestClass {

}

public class TestClass {

    @BeforeEach
    public void setUp() {
        MokitoAnnotations.initMocks(this);
    }
}

 

@Mock

 

실제 인스턴스가 없는 가상의 Mock 인스턴스를 만들어 반환합니다.

 

@MockBean

 

ApplicationContext에 Mock 객체를 추가합니다.

 

@InjectMock

 

@Mock이나 @Spy 객체를 자신의 멤버 클래스와 일치하면 주입합니다.

 

@SpyBean

 

ApplicationContext에 Spy 객체를 추가합니다.

 

 

@Mock, @MockBean의 차이

 

@MockBean은 @Mock과 달리 spring-boot-test에서 제공하는 어노테이션으로, Spring이 관리하는 Bean들 중에서 하나 이상을 Mock 객체로 사용하고 싶을 때 사용합니다.

728x90
반응형

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

 

728x90
반응형

REST(REpresentational State Transfer) API

 

리소스를 처리하는 방식, 즉, CRUD를 처리하는 방식을 말한다.

'ETC > IT' 카테고리의 다른 글

Multi-tier Architecture, Test Driven Development  (0) 2021.08.10
로딩을 하는 이유는?  (0) 2021.04.19
컴퓨터의 데이터 단위(Bit, Byte, KB, MB, GB, TB)  (0) 2021.04.19

+ Recent posts