Spring

Spring Java 8의 기능 인터페이스에서 서비스 클래스 메소드에 액세스 할 수 있습니까?

기록만이살길 2021. 3. 10. 03:03
반응형

Spring Java 8의 기능 인터페이스에서 서비스 클래스 메소드에 액세스 할 수 있습니까?

1. 질문(문제점):

Spring Java 8의 기능 인터페이스에서 서비스 클래스 메소드에 액세스하고 싶습니다. 가능합니까?

public interface UserProfile extends Supplier<UserProfileDto> {

//  This is working
    static UserProfile getMyId() {
        return () ->
                new UserProfileDto(
                        SecurityContextHolder.getContext().getAuthentication().getName(),
                        "", "", "");
    }

    static UserProfile getMyProfile() {
        return () -> 
    }
}

@Service("userProfileService")
public class UserProfileServiceImpl implements UserProfileService {

    private final UserProfileRepo userProfileRepo;

    @Autowired
    public UserProfileServiceImpl(@Qualifier("userProfileSql") UserProfileRepo userProfileRepo) {
        this.userProfileRepo = userProfileRepo;
    }

    @Override
    public Optional<UserProfileDto> getUserProfileById(String userId) {
        return userProfileRepo.selectUserProfileById(userId);
    }
}

UserProfile의 getMyProfile ()에서 서비스 클래스 메서드 "getUserProfileById (SecurityContextHolder.getContext (). getAuthentication (). getName ())"를 호출하고 싶습니다. 가능합니까?

2. 해결방안:

아니요, 기능 인터페이스에서 서비스 클래스 메서드에 액세스 할 수 없습니다.

65701188
반응형