java - 界面设计模式/Java/Seam

标签 java jakarta-ee seam interceptor

这有可能吗?

@Name("geolocationService")
public interface GeolocationService
{
   @Query("SELECT g FROM Geolocation geolocation INNER JOIN geolocation.deployment deployment WHERE geolocation.ipStart <= INET_ATON(:ipAddress) AND deployment.active = TRUE")
   Geolocation findByIpAddress(@NamedParameter("ipAddress")final String ipAddress);
}


public GeolocationAction
{
  @In
  private GeolocationService geolocationService;

  @RequestParameter("ipAddress")
  private String ipAddress;

  @Out
  private Geolocation geolocation;

  public void find()
  {
    geolocation = geolocationService.findByIpAddress(ipAddress);
  }
}

是否可以在不实现接口(interface)的情况下做到这一点?需要什么才能使其发挥作用?我想少维护,多做事。

如果我可以拦截 geolocationService 的调用,那么我就很优秀了,我该怎么做?我不希望它被实例化,因此它始终为 null(那时我也不想要 @Name 和 @In 注释)。

沃尔特

最佳答案

目前,我将所有方法包装在我的服务中。我自动找到他们正在寻找的查询并注入(inject)参数(命名或索引)。这并不像我希望的那么干净,但还有改进的空间。

我编写了一个接口(interface)和一个实现,除了 return(null) 之外,正文中没有任何代码;

沃尔特

关于java - 界面设计模式/Java/Seam,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2726410/

相关文章:

java - java中如何将图像保存到目录中

java - 重定向到java ee 6中的restful url

java - Hibernate 返回 BigIntegers 而不是 longs

java - 使用Spring的Oracle Db连接错误

java - 没有长时间运行的对话 - IllegalArgumentException : Stack must not be null

Spring MVC与接缝

java - Spring - 如何解决服务的 'multiple' AOP 行为?

java - 如何将EAR包划分为模块

jakarta-ee - 未添加注释时的默认 Java EE bean 类型

java - 在 Hibernate 3 上禁用透明持久化