【发布时间】:2017-05-17 08:09:00
【问题描述】:
我在我的项目中使用 Spring 和 graphql-java (graphql-java-annotation)。 对于检索数据部分,我使用 DataFetcher 从服务(从数据库)获取数据。
奇怪的是:myService 总是 null。有人知道原因吗?
DataFetcher
@Component
public class MyDataFetcher implements DataFetcher {
// get data from database
@Autowired
private MyService myService;
@Override
public Object get(DataFetchingEnvironment environment) {
return myService.getData();
}
}
架构
@Component
@GraphQLName("Query")
public class MyGraphSchema {
@GraphQLField
@GraphQLDataFetcher(MyDataFetcher.class)
public Data getData() {
return null;
}
}
我的服务
@Service
public class MyService {
@Autowired
private MyRepository myRepo;
@Transactional(readOnly = true)
public Data getData() {
return myRepo.getData();
}
}
主要测试
@Bean
public String testGraphql(){
GraphQLObjectType object = GraphQLAnnotations.object(MyGraphSchema.class);
GraphQLSchema schema = newSchema().query(object).build();
GraphQL graphql = new GraphQL(schema);
ExecutionResult result = graphql.execute("{getData {id name desc}}");;
Map<String, Object> v = (Map<String, Object>) result.getData();
System.out.println(v);
return v.toString();
}
【问题讨论】:
-
你也可以发布 MyService.java 吗?
-
我已经发布了 MyService.java @jobin
-
启动应用时是否出现错误?
标签: java spring graphql graphql-java