gpt4 book ai didi

java - 2 个配置文件,2 个方法实现,1 个通过 Thymeleaf 在 html 文件中调用。如何?

转载 作者:行者123 更新时间:2023-11-30 06:44:31 25 4
gpt4 key购买 nike

我的应用程序中只有 1 个使用特定类及其方法的实现。我添加了另一个实现并打开了配置文件。添加第二个配置文件使我可以分别为每个配置文件实现该类,因为存在一些差异。

问题是,在更改之前,我通过 html 文件中的 Thymeleaf 调用了特定方法,如下所示:

<td class="text-center" id="hashrate" th:text="${@findAndDisplayDataService.formatHashrate(networkHashrate.hashrate)}">Sample hashrate</td>

现在类的名称已经更改为:FindAndDisplayDataServiceQuartzFindAndDisplayDataServiceSpringScheduler 根据配置文件。我不能再调用 html 文件中的方法。我用 FindAndDisplayDataService 接口(interface)包装了这两个类,但我无法真正调用 Thymeleaf 中的接口(interface)方法。

最佳答案

使 FindAndDisplayDataServiceQuartzFindAndDisplayDataServiceSpringScheduler 实现一个通用的 interface,可能具有相同的 bean 限定符,这样您就可以 Autowiring 而不用担心 bean 的名字。像下面这样的东西就可以了。

定义一个通用接口(interface)。

    public interface FindAndDisplayDataService {
void formatHashrate(String hashrate);
}

创建扩展通用接口(interface)的配置文件特定的 bean 定义。

   @Component("findAndDisplayDataService")
@Profile("quartz")
public FindAndDisplayDataServiceQuartz implements FindAndDisplayDataService {
public void formatHashrate(String hashrate){
//do stuff based on quartz
}
}

@Component("findAndDisplayDataService")
@Profile("spring-scheduler")
public FindAndDisplayDataServiceSpringScheduler implements FindAndDisplayDataService {
public void formatHashrate(String hashrate){
//do stuff based on Spring scheduler
}
}

并且在您的 thymeleaf 模板中,您可以根据 @Component 名称 findAndDisplayDataService 注入(inject)任何 bean。

关于java - 2 个配置文件,2 个方法实现,1 个通过 Thymeleaf 在 html 文件中调用。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50330493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com