Java 依赖触发器

标签 java spring security dependencies seam

Possible Duplicate:
Java calling methods from restricted layer

别说我有这个:

package org.service;
import org.core;

public class Service()
{
    public void init()
    {
        Core core = new Core();
        core.callbackFunction();
    }
    public void support()
    {
         ...
    }
}

package org.core
public class Core()
{
    public void callbackFunction()
    {
        ...
    }

    public void useSerivice()
    {
        ...
    }
}
  • 服务导入核心
  • 核心不得导入服务

当调用 Service 的 init() 方法时,它会调用 core.callbackFunction() 方法。

是否可以提供对 Service 方法的引用作为回调函数的参数,然后 Core 在执行 support() 方法时可以触发该方法。

例如:

当调用 Core 中的 support() 方法时,它会触发调用 Service 中的方法。调用Core的callbackFunction()方法时,Service会提供调用的方法列表。

我希望我的问题是可以理解的。

我正在使用 Spring 和 Seam Fw。

最佳答案

下面的设计怎么样?您在 Service 类中实现 bar() 可以根据需要调用其他方法。

public interface Foo {
    void bar();
}

public class Service implements Foo {
    public void init() {
        Core core = new Core();
        core.callbackFunction(this);
    }

    @Override
    public bar() {
        // impl here
    }
}

public class Core() {

    private Foo foo;

    public void callbackFunction(Foo foo) {
        this.foo = foo;
    }

    public void useService() {
        if (foo != null) {
            foo.bar();
        } else {
            // Uh-oh.
        }
    }
}

我还强烈建议在 Core 类的构造函数中传递 Foo 实例,以避免需要 if (foo != null) 测试。

关于Java 依赖触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13510984/

相关文章:

javascript - 如何检测破解的JS验证?

java - 使用Java获取不基于命名空间的xml标签

java从JDBCtemplate填充bean

ios - 我的 Xcode 应用程序图标项目中出现齿轮图标,我无法再运行它

java - JPA:映射交叉的 OneToOne 和 ManyToOne 关系

security - 使用 bcrypt 为移动应用散列 5 位密码

用于安全 Hbase 的 Java 客户端

java - Spring MVC with JBoss vs Tomcat - 优点/实践

java - 修改异步订阅者中的确认期限

java - 如何将应用程序 apk 传递到 jar?