我有一个MyService
类,它具有应该被注入的仓库
字段。
public class Service {
@Autowired
private Repository repository;
// ...ommited
}
并且有MyRepositoryImpl
接口仅由MyRepositoryImpl
类实现,具有MyBatis
的@Mapper注释
。
public interface Repository {
// ...ommited
}
@Mapper
public class RepositoryImpl implements Repository {
// ...ommited
}
当我尝试启动SpringBootApplication时,会抛出NoniqueBeandDefinitionException
。
@SpringBootApplication(nameGenerator = FullyQualifiedAnnotationBeanNameGenerator.class)
@MapperScan(nameGenerator = FullyQualifiedAnnotationBeanNameGenerator.class)
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
(...omitted)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'com.example.MyService':
Unsatisfied dependency expressed through field 'repository';
nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException:
No qualifying bean of type 'com.example.MyRepository' available:
expected single matching bean but found 2: com.example.MyRepositoryImpl,com.example.MyRepository
(...omitted)
为什么MyRepository
接口注册为bean的一个,即使它没有@组件
注释,也没有包含任何bean配置?
我发现,如果我不使用FullyQualifiedAnnotationBeanNameGenerator
作为nameGenerator
,一切都很好。
有什么想法吗?
Spring无法确定哪个bean应该实现存储库接口。
将注释@存储库放在RepositoryImpl类上面。它会找到的。
有许多其他方法可以将接口标记为bean。其中包括:
我不确定我是否正确理解http-keep-alive,在我看来,它应该重用tcp连接,而不是构建一个新的连接。然而,我发现了一些非常奇怪的事情,似乎很难预料http keep-alive的行为。 服务器:NodeJS&Express^4.16.3,我使用Wireshark分析结果 情况1: null 客户端 null 情况2: null 结果:建立了另外5个tcp连接(在图片中只有4个,因为屏幕截
问题内容: 我不明白…是我还是这是节点中的错误? 可以按预期进行: 这发出了警告: 我懂了 问题答案: 使用与承诺回报新希望(这就是所谓的链接)。因此,当您执行以下操作时: 您的最初承诺在哪里,您将在第1行上创建一个新的承诺(现在不再存在。我们称它为 )。因此,即使您使用with ,也不会处理上的拒绝,这解释了您在控制台上看到的消息。 为了避免出现此消息,您应该在第1行的新承诺中添加a
问题内容: 我有一个在MySQL 5.6上运行良好的存储过程。在最近的服务器迁移中,我们升级到MySQL 5.7.19。 我的存储过程现在抛出错误: 我已经设置了对通过文件,重新启动mysql服务,并通过控制台,以确认登录的通过是空白 尽管如此,当我尝试运行存储过程时,我仍然收到上述错误。 接下来,我该怎么办才能继续排除错误的出处? 问题答案: 根据文档,MySQL使用创建该过程时处于活动状态的s
问题内容: 我收到错误消息: 致命错误:尚未实现init(coder :) 按照我的习惯。该单元未注册,在情节提要中和使用dequeasreusablecell时具有标识符 单元 。在自定义单元格中,我的初始化为: 码: 但是我仍然有错误。谢谢。 问题答案: 将您的init替换为coder方法: 实际上,如果您在Storyboard中创建了单元格- 我认为应该将其附加到尝试在其上创建它的table
问题内容: 我一直读到魔术引号根本不能停止SQL注入,但是我不明白为什么不这样做!例如,假设我们有以下查询: 现在,如果用户输入make ,则查询将是: 反斜杠将由Magic Quotes添加,而不会造成任何损害! 有没有办法我看不到用户可以在此处绕过Magic Quote插入的地方? 问题答案: 技巧通常是传递一个二进制值,以使反斜杠成为有效的多字节字符的一部分。这是关于它的博客文章。