我在我的项目中有以下类和配置:
public class Op {
public Op(Comp comp) {
// Construct Op
}
}
public interface OpFactory {
public Op createOp(Comp comp);
}
和Spring配置:
@Configuration
public class OpConfig {
@Bean
@Scope(SCOPE_PROTOTYPE)
Op op(Comp comp) { // <--- Intellij marks this as error
return new Op(composition);
}
@Bean
OpFactory opFactory() {
return new OpFactory() {
@Override
public Op createOp(Comp comp) {
return op(comp);
}
};
}
}
这段代码可以工作,但是IntelliJ IDEA在配置中显示了一个错误,说明不能自动执行。未找到“comp”类型的bean。
。Comp本身是一个pojo,不需要autowired,正如您所看到的,工厂为Op ctor提供了一个。
此外,我不需要comp
被autowired,因为一旦我有了工厂,我就可以简单地传递它,正如我所说的comp本身就是一个POJO。用法示例:
Comp comp = new Comp();
OpFactory opFactory = getFactoryFromContext();
opFactory.createOp(comp);
我不需要comp被autowired,事实上我不能让它autowired,因为我在运行时基于用户输入构建它。
嗯,IntelliJ说的是正确的,因为你承认你的薪酬只是一个pojo,你已经得到了它。因此,当spring尝试根据以下内容初始化Op的Bean时,该错误是正确的,
@Bean
@Scope(SCOPE_PROTOTYPE)
Op op(Comp comp) { // <--- Intellij marks this as error
return new Op(composition);
}
很明显你没有Comp bean。所以错误是正确的。
但是关于它为什么真正有效的问题,实际上由于spring不能初始化bean,它只是跳过了它,然后发生了类似于这样的事情,
Op op(Comp comp) {
return new Op(composition);
}
@Bean
OpFactory opFactory() {
return new OpFactory() {
@Override
public Op createOp(Comp comp) {
return op(comp);
}
};
}
它是这篇文章的副本,并添加了信息(因为它不是其他类似问题的副本)。 我只是在新计算机上安装了Intellij的最新版本,无法使Maven在空项目中正常工作。 当Maven启动时,它试图下载所有的插件,但它停留在无限的下载中。我尝试添加一些依赖项,并获得该依赖项的无限下载 我发现很多人都有这样的问题,但这个解决方案对我不起作用。 此外,我试图在idea Maven设置中更新主存储库手册中的信息,并得
我有一本书。带有字符串的java文件。 当我在中打开这个文件并将编码更改为ISO-8859-1时,它会显示适当的字符串:,但如果我在理念intellij中打开文件并将编码更改为ISO-8859-1,它会给我一个警告,即某些符号无法转换,然后用标记替换这些符号:。 为什么会这样?为什么Notepad可以转换文件,而idea不能?
我在这个论坛上读到了很多关于尝试Autowire pojo时发生的类似问题的文章,通常修复的答案与或/有关。但是,在我的例子中,我设法autowire我的pojo(Mas60010),但我不能autowire或以及可能来自我没有编写代码的包的任何其他对象。 为了简单起见,我只提到。我做错了什么?我想问题要么出在库上,要么出在配置上。注意:请不要仅仅通过显示一个与他自己的POJO相关的问题来指出这个
正如你在下面看到的,我得到了矛盾的结果。感谢所有的帮助。 Firebase控制台查询 Firebase控制台查询结果 密码 代码日志
嗨,我有一个spring boot项目。主类包如下所示: 我在项目中使用了一个外部jar作为maven依赖项。在该jar中,有一个用@service注释的服务类,如下所示: 其中SomeServiceImpl类的主包如下所示: 现在,在我的项目中,当我自动连接类时,我在运行spring boot应用程序时遇到了bean创建错误。我就是这样做的: 错误:
我想为Dao类编写一个JUnit测试。dao不需要任何save方法,因为它只读取一些数据。 测试使用的是HSQLDB,我需要先插入一些测试数据。由于我不想只编写代码来使测试运行,所以我扩展了DaoImpl类,使其具有一个save方法。