---
# System prepended metadata

title: Lưu ý

---

# Lưu ý

1. Swagger document

    Thay thế spring-fox bằng
    ```xmlhttps://hackmd.io/new
   <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-ui</artifactId>
            <version>1.5.9</version>
    </dependency>
    ```
    
    Xem thêm về chuyển đổi từ spring-fox sang spring-doc: https://springdoc.org/#migrating-from-springfox
   
   Link vào swagger ui: http://localhost:8080/swagger-ui.html
   
   Link vào swagger: http://localhost:8080/v3/api-docs
2. Hal

    ```xml
   <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-rest-hal-explorer</artifactId>
    </dependency>
    ```

4. Validation

    Thay thế javax.validation bằng

    ```xml
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
    ```
   
5. H2 JPA

   Thêm vào file `application.properties`
    ```
    spring.jpa.show-sql=true
   spring.h2.console.enabled=true
   spring.datasource.driver-class-name=org.h2.Driver
   spring.datasource.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1
   spring.datasource.username=sa
   spring.datasource.password=sa
    ```

   Vào h2-console(http://localhost:8080/h2-console) lưu ý thay đổi

   - URL: jdbc:h2:mem:db
   - Username: sa
   - Password: sa

6. Hateoas

    Trong video họ dùng class Resource để hateoas, để hoạt động với spring mới sử dụng class EntityModel để thay thế.

   Thay thế code trong video bằng
    ```java 
   @GetMapping("/users/{id}")
	public EntityModel<User> retrieveUser(@PathVariable int id) {
		User user = service.findOne(id);
		
		if(user==null)
			throw new UserNotFoundException("id-"+ id);

		EntityModel<User> resource = EntityModel.of(user);
		
		WebMvcLinkBuilder linkTo = 
				linkTo(methodOn(this.getClass()).retrieveAllUsers());
		
		resource.add(linkTo.withRel("all-users"));
		
		return resource;
	}
   ```
   