java – 在运行时创建的对象中使用自动装配的bean

weixin_38054676 2019-09-12 01:07:09
我有一个实现W接口的B类.它有W方法的默认实现.类C和D覆盖默认实现,它们需要一个服务,其bean由spring实例化.字符串a和b来自用户,因此我无法提前创建B / C / D的bean.所以我有一个工厂,它根据用户参数创建一个新对象(它将根据参数创建B / C / D).有什么干净的方法我可以使用C和D内部的服务bean(aa / bb / cc / dd等)(服务器启动期间的弹簧自动装配,此时实例化B / C / D所需的参数不可用)或有没有更好的方法来解决这个问题? Class B implements W{ String a; String b; B (String a, String b); w_method(){ } } Class C extends B { @Autowired Service aa; @Autowired Service bb; @Autowired Service cc; @override w_method(){ } } Class D extends B { @Autowired Service dd; @override w_method(){ } }
...全文
93 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38065208 2019-09-12
  • 打赏
  • 举报
回复
我认为最简单的方法是将服务连接到工厂并在返回之前调用B / C / D对象上的setter,而不是尝试使用@Autowired. 或者使用axtavt的构造函数参数方法.如果你想避免依赖于ApplicationContext,你可以使用Lookup Method Injection,但你必须根据这篇博文发布补丁:http://nurkiewicz.blogspot.co.uk/2010/08/creating-prototype-spring-beans-on.html

435

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧