java - Java 弹簧框架。仅将类声明为 bean
问题描述
我在解决问题的同时学习 Java Spring。我的问题是:我可以有一个只定义为 bean 的类池(没有在 JAVA 源代码中声明它们)吗?当应用程序运行时,它将仅对 bean 中可用的声明类进行计算。
因此,例如,我有A、B、C类的 bean ;但是我在这些类的 java 代码中没有声明。我可以将它们组合在一个接口下,比如DocumentationVersionSpecificTag 这种方法可行吗?
解决方案
您正在尝试使用 注入不在您的源代码中的对象@Autowired
,您可以使用配置类来实现这一点,使用@Configuration 注释的类,并使用@Bean 将这些类配置为其中的bean:
@Configuration
public class ProjectConfiguration{
@Bean
public A configureA(){
return new A(); // use the suitable constructor you want
}
@Bean
public B configureB(){
return new B(); // use the suitable constructor you want
}
@Bean
public C configureC(){
return new C(); // use the suitable constructor you want
}
}
在你可以注入这些类之后@Autowired
:
@Autowired
A a;
有关更多详细信息,请参阅此链接。
推荐阅读
- java - 我正在用 java 和 mySQL 做一个考勤计划,它对我来说效果不佳。这是代码:
- nginx - 带有 http/https 和 tcp (ssh) 的 Nginx docker 反向代理
- jenkins - Jenkins 催生了很多守护进程和服务器崩溃
- c - 如何正确地将 MPI 结果传递给类型
- snakemake - 如何使用不同的配置文件运行多个管道运行-锁定 .snakemake 目录的问题
- c# - 从 netcore2.2 到 netcore3.0 的迁移项目
- python - 使用 FileHandler 和 dictConfig 进行 Python 日志记录 - 在“文件名”中使用环境变量?
- pandas - Pandas qcut 返回并且 bin 在左边界上显示不一致
- python - 将多级字典展平为单级字典
- zend-framework - Zend Framework 1.12 控制台命令