springcloudfeign 원격 호출 서비스 실천
1. 다음 단계는feign 원격 서비스 호출을 실현하는 것이다
1. 서버 - 공급자
// - (provider), ID:user-service
@RestController
@RequestMapping("user")
class UserController implements UserFacade{
@Autowired
@Qualifier("userServiceImpl")
UserService userService;
@RequestMapping("getUserById")
@Override
public User getUserById(@RequestParam("userId") String userId) {
return userService.getUserById(userId);
}
@RequestMapping("saveUser")
@Override
public User saveUser(@RequestBody User user) {
return userService.saveUser(user);
}
}
interface UserService {
User getUserById(String userId);
User getUserByUserName(String userName);
User saveUser(User user);
}
@Service
class UserServiceImpl implements UserService {
@Override
public User getUserById(String userId) {
System.out.println(" ID ");
return null;
}
@Override
public User getUserByUserName(String userName) {
System.out.println(" ");
return null;
}
@Override
public User saveUser(User user) {
System.out.println(" ");
return null;
}
}
2. 클라이언트 - 소비자
주석: 제품-서비스는 이곳에서 소비자 역할을 하고 대외적으로 서비스를 제공할 때도 공급자를 충당할 수 있습니다.모든 서비스는 제공자일 수도 있고 소비자일 수도 있다.공급자와 소비자는 서로 호출할 수 있다
// - (consumer), ID:product-service
//
/**
* @ClassName ProductController
* @Description feign
* @Author Neal
* @Date 2019/4/29 14:47
* @Version 1.0
*/
@RestController
@RequestMapping("product")
class ProductController{
@Autowired
private UserFeign userFeign;
@RequestMapping("getUserProduct")
public String getUserProduct(@RequestParam("userId") String userId) {
//
User user = userFeign.getUserById(userId);
// ....
return null;
}
}
//
@FeignClient(name = "user-service")
interface UserFeign extends UserFacade{
// ,
@GetMapping(value = "/user/getUserById",consumes = MediaType.APPLICATION_JSON_VALUE)
User getUserById(String userId);
// ,
@PostMapping(value = "/user/saveUser",consumes = MediaType.APPLICATION_JSON_VALUE)
User saveUser(@RequestBody User user);
}
3. 공통 인터페이스 섹션
// ( )
interface UserFacade {
@GetMapping(value = "/user/getUserById",consumes = MediaType.APPLICATION_JSON_VALUE)
User getUserById(String userId);
@PostMapping(value = "/user/saveUser",consumes = MediaType.APPLICATION_JSON_VALUE)
User saveUser(@RequestBody User user);
}
4, 구성
4.1, 클라이언트pom.xml 의존jar 추가
pom.xml ,
org.springframework.cloud
spring-cloud-starter-openfeign
5. 테스트 단계
:register( ) -> provider( :user-service) -> consumer( :product-service)
:http://localhost:9090
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.