【发布时间】:2020-10-17 07:43:49
【问题描述】:
我的问题是关于接口类的使用。我对 Spring 还很陌生,所以如果这过于简单,请多多包涵。
首先,当您可以在 BoxService 中声明 find all 时,这里有一个 IBoxService 接口有什么意义。其次,在控制器中如何使用 IBoxService。意思是,我们正在调用 IBoxService.findAll()。但是,这如何与 BoxService 类相关联。如果多个服务类实现了 IBoxService 会怎样?这是java的东西还是Spring注入的东西。谢谢。
package com.xyz.service;
import com.xyz.model.Box;
import java.util.Set;
public interface IBoxService {
Set<Box> findAll();
}
package com.xyz.service;
import com.xyz.model.Box;
import com.xyz.repository.BoxRepository;
import java.util.Set;
import org.springframework.stereotype.Service;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
@Service
@AllArgsConstructor
@Slf4j
@Transactional
public class BoxService implements IBoxService {
@Autowired
private BoxRepository boxRepo;
@Override
public Set<City> findAll() {
return (Set<City>) repository.findAll();
}
}
package com.xyz.controller;
import com.xyz.model.Box;
import com.xyz.service.IBoxService;
import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/box")
public class BoxController {
@Autowired
private IBoxService boxService;
@GetMapping
public ResponseEntity<Set<Boxes>> allBoxes() {
return (Set<Box>) boxService.findAll();
}
}
【问题讨论】:
标签: java spring spring-boot model-view-controller dependency-injection