作为将spring应用程序迁移到springboot(2.1.7)的一部分,我面临着一个自定义 RepositoryEntityLinks 类的问题。以下类为构造函数自变量 PluginRegistry 带来了编译问题,因此我将其更改为 Java8PluginRegistry :
之前:
<servers>
<server>
<id></id>
<username>**user**</username>
<password></password>
</server>
<server>
<id></id>
<username>**user**</username>
<password></password>
</server>
</servers>
之后:
public class CustomRepositoryEntityLinks extends RepositoryEntityLinks {
private final ResourceMappings mappings;
private final RepositoryRestConfiguration config;
public CustomRepositoryEntityLinks(
Repositories repositories,
ResourceMappings mappings,
RepositoryRestConfiguration config,
PagingAndSortingTemplateVariables templateVariables,
PluginRegistry<BackendIdConverter, Class<?>> idConverters) {
super(repositories, mappings, config, templateVariables, idConverters);
this.mappings = mappings;
this.config = config;
}
@Override
public LinkBuilder linkFor(Class<?> type) {
ResourceMetadata metadata = mappings.getMetadataFor(type);
return new CustomRepositoryLinkBuilder(metadata, config.getBaseUri());
}
}
我唯一更改的是构造函数参数,从PluginRegistry到Java8PluginRegistry。
当我向此类添加@Component批注时,应用程序无法从此问题开始:
public class CustomRepositoryEntityLinks extends RepositoryEntityLinks {
private final ResourceMappings mappings;
private final RepositoryRestConfiguration config;
public CustomRepositoryEntityLinks(
Repositories repositories,
ResourceMappings mappings,
RepositoryRestConfiguration config,
PagingAndSortingTemplateVariables templateVariables,
Java8PluginRegistry<BackendIdConverter, Class<?>> idConverters) {
super(repositories, mappings, config, templateVariables, idConverters);
this.mappings = mappings;
this.config = config;
}
@Override
public LinkBuilder linkFor(Class<?> type) {
ResourceMetadata metadata = mappings.getMetadataFor(type);
return new CustomRepositoryLinkBuilder(metadata, config.getBaseUri());
}
}
有人可以帮忙吗?在此先感谢:)
答案 0 :(得分:0)
await
不会公开RepositoryRestMvcConfiguration
类型的bean。最近的更新可能会改变这种行为。如果遵循Java8PluginRegistry
类中如何创建常规RepositoryEntityLinks
bean的约定,则可以创建自定义RepositoryRestMvcConfiguration
类的bean,如以下代码片段所示(其他参数)创建省略的CustomRepositoryEntityLinks实例)。
CustomRepositoryEntityLinks