从消费项目添加bean功能

wfveoks0  于 2021-07-16  发布在  Java
关注(0)|答案(1)|浏览(281)

我有两个项目,a和b。b把a当jar吃。b并不总是用在其他项目中(例如,项目c、d、e等可以使用或不使用b,但总是使用a)。我可以修改两个项目。
在a中有一个控制器,我想添加与b的业务模型(实体、服务等)相关的功能。当然,在中编写新功能是行不通的(主要是编译,但也会破坏两个项目的良好定义结构)。
a中的控制器被定义为java类本身中的springbean,并且还与使用它的zul页面相关。相关代码:
java

@Controller("userController")
@Scope("prototype")
public class UserController extends GenericForwardComposer

zul页面

<window apply="${userController}" >

如何在b中添加功能并尽可能避免不必要的复杂性?我希望避免扩展控制器和添加@primary定义。因为我使用的是Java8,所以我一直在考虑使用默认行为的接口,但是我还没有想到如何让执行在b中而不是在a中选择一个接口。组合也是一个选项,但是a中的bean不会被正确初始化(zul页面中有组件)。
任何帮助或指点将不胜感激。

ha5z0ras

ha5z0ras1#

从zk的Angular 来看,这里没什么可做的。所以不用往这个方向看(根据目前提供的详细信息/代码-除非你最后的评论。。。
zul页面中有一些组件
... 表示/应该表示某种特定的东西)
这似乎是一个spring主题,如果您不喜欢,如何解析重复的bean定义(在a中是默认的,在b中是高级的) @Primary 那也许吧 @Priority / @Order 有助于确定注射了哪种豆子。
管理此类场景的另一种方法是spring概要文件或更通用的@conditional注解,它允许bean的动态配置/示例化。e、 g.Spring引导自动配置如下 @ConditionalOn... -注解,我在zk springboot autoconfig中根据类路径上某些类的存在或基于属性的其他条件来取消/激活bean。
在spring中有许多方法可以实现动态bean配置。如果你需要zk的专门帮助,你可以尝试zk论坛或zk支持(免责声明:我为zk工作)

相关问题