小编Jac*_*icz的帖子

有没有办法将 String.format 传递给 thymeleaf 模板?

我正在构建 thymeleaf 模板,我必须向它传递一些带有参数的字符串,例如The value equals %s. 问题是消息可以是任意的,所以我不能只在我的thymeleaf.properties.

我尝试过这样的事情

    <td th:text="#{(${myObject.stringFormatMessage})(${myObject.param})}"></td>
Run Code Online (Sandbox Code Playgroud)

但最终结果是??The value equals %s_eng_ENG??. 我也改了%s但是{0}结果几乎是一样的。在传递到我的模板之前我无法解析该字符串,因为myObject.param它必须是粗体/彩色的。有什么方法可以做到这一点 - 传递 String.format 而不是在 my 中设置外部化文本.properties

java spring thymeleaf spring-boot

4
推荐指数
1
解决办法
3567
查看次数

如何重构多个交换语句

我有一个休息端点,根据Enum值,我调用特定服务的方法。所有服务都在同一抽象类之后扩展。

public abstract class BaseService{
  someMethod()
}
Run Code Online (Sandbox Code Playgroud)
public class ServiceA extends BaseService{
  @Override
  someMethod()
}
Run Code Online (Sandbox Code Playgroud)
public class ServiceB extends BaseService{
  @Override
  someMethod()
}
Run Code Online (Sandbox Code Playgroud)
public class RestEndpoint {
  @Inject
  ServiceA serviceA
  @Inject
  ServiceB serviceB

  public void someEndpoint(Enum value){
    switch (value){
    case 1:
       serviceA.someMethod();
    case 2:
       serviceB.someMethod();
   }
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是,可能会有更多的服务,我想知道是否有更好的方法。我考虑过实施战略模式,但是我不知道这是否不是“大材小用”,因为最多会有约10/15的服务。

编辑

因此,因为我的服务是bean,并且在其中注入了其他bean,所以没有任何“简便”的方法来重构它-我无法在Enum类中创建某个方法,例如,return new ServiceA()因为那样,我ServiceA实例中的bean 就不会注射。我可以尝试获取上下文并设置特定的bean,但是这样做并不安全(例如,您可以尝试注入非bean,而编译器不会让您知道它)。

因此,如果我的BaseService实现不使用其他bean,最简单的方法是在Enum类中创建方法

public abstract BaseService getService();
Run Code Online (Sandbox Code Playgroud)

并像这样实现

anyServiceA{
 @Override
 public BaseService getService(){
  return new ServiceA();
 }
}
Run Code Online (Sandbox Code Playgroud)

在休息服务中,只需致电 value.getService().someMethod();

也许会帮助某人。

java refactoring design-patterns

1
推荐指数
1
解决办法
55
查看次数

可以使用git同步不同机器上的docker容器吗?

我正在大学从事一个小项目,我想知道是否可以使用 git/github 同步两个 docker 容器。我们在数据库上成对工作,每个人都有一个在 docker 上运行的数据库(两者都具有相同的设置,由相同的 docker-compose 文件启动)。我们需要用相同的数据填充两个数据库,如果我们可以单独工作并使用 git 或类似的东西同步我们的数据库,那么会更容易。我知道用数据创建一些 sql 脚本会更好/更容易,但我只是好奇。我考虑过将卷文件复制到 git,并创建一些简单的脚本,从存储库中提取卷并将其复制到现有数据库的卷。

mysql git docker docker-compose

1
推荐指数
1
解决办法
1613
查看次数