Контроллер Spring GraphQL не видит службу SpringJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Контроллер Spring GraphQL не видит службу Spring

Сообщение Anonymous »

У меня было прекрасно работающее приложение Spring Boot с Java 21. Проблема в том, что теперь я пытаюсь добавить в смесь GraphQL. Библиотеки GraphQL находятся в pom.xml, включая тест Spring GraphQL.
Проблема в том, что когда я пытаюсь запустить GraphQLController и GraphQLControllerTest, он говорит, что для моей CompanyService нет NoSuchBeanDefinition. Без GraphQL все работает нормально.
Во-первых, свойства приложения:
spring.graphql.graphiql.enabled=true

The CompanyService всегда работал и отлично тестировался:
@Service
public class CompanyServiceImpl implements CompanyService {
private CompanyRepository companyRepo;
private CompanyMapper companyMapper;

public CompanyServiceImpl(CompanyRepository companyRepo,
CompanyMapper companyMapper) {
this.companyRepo = companyRepo;
this.companyMapper = companyMapper;
}

Теперь контроллер GraphQL:
@Controller
public class GraphQLCompanyController {

private final CompanyService companyService;

@Autowired
public GraphQLCompanyController(CompanyService companyService) {
this.companyService = companyService;
}

@QueryMapping
public CompanyDTO companyById(@Argument long id) {
return companyService.findDtoById(id);
}
}

Как видите, и в ComnpanyService, и в контроллере GraphQL я использую внедрение через конструктор. Однако в этом контроллере невозможно найти «CompanyService».
Src/main/resources/graphql/schema.graphql определяется следующим образом:
type Query {
companyById(id: ID): Company
}

type Company {
companyId: ID
active: Boolean
companyCode: String
companyName: String
description: String
address1: String
address2: String
city: String
state: String
zip: String
}

Как вы можете видеть из GraphQLCompanyController, когда запрос GraphQL выполняется с простым идентификатором (длинным), я должен вызвать бизнес-службу, которая, в свою очередь, запрашивает базу данных, получает объект, и внутри службы мы используем MapStruct для преобразования из Entity в DTO, а затем мы хотим вернуть этот CompanyDTO в формате GraphQL.
UPDATE:

Как и просили, вот библиотеки Graphql из pom.xml

org.springframework.boot
spring-boot-starter-parent
3.4.2




21
1.18.38
1.6.3
0.2.0



org.springframework.boot
spring-boot-starter-graphql


org.springframework.graphql
spring-graphql-test
test




Подробнее здесь: https://stackoverflow.com/questions/796 ... ng-service
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»