MVC設定(7):WebMvcConfigure-ドメインクラス変換器
8.WebMvcConfigure—ドメインクラス変換器
public class Person {
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@RestController
public class SampleController {
@GetMapping("/hello")
public String hello(@RequestParam("id") Person person){
return "hello " + person.getName();
}
idを入力したときにオブジェクトの名前を返す場合は、次のようにフォームまたはConverterを作成する必要はありません.この場合、Spring Data JPAのサポートを受けることができます.Spring Data JPAはSpring MVCにドメインクラス変換器を提供します.
ドメインクラス変換器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
ドメインクラス@Entity
public class Person {
@Id @GeneratedValue // 아이디를 DB에 들어갈 때 자동생성한다.
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
研究するpublic interface PersonRepository extends JpaRepository<Person, Long> {
}
<エンティティ、キー値に対応するタイプ>テストコード
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class SampleControllerTest {
@Autowired
MockMvc mockMvc;
@Autowired
PersonRepository personRepository;
@Test
public void hello() throws Exception{
Person person = new Person();
person.setName("spring");
Person savedPerson = personRepository.save(person);
this.mockMvc.perform(get("/hello")
.param("id", savedPerson.getId().toString()))
.andDo(print())
.andExpect(content().string("hello spring"));
}
}
リファレンスReference
この問題について(MVC設定(7):WebMvcConfigure-ドメインクラス変換器), 我々は、より多くの情報をここで見つけました https://velog.io/@jsj3282/스프링-MVC-설정7-WebMvcConfigure-도메인-클래스-컨버터テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol