向上调用的实现

一、首先写一个Java项目,主要是做为后面web层依赖的一个jar包,这个java项目只须要一个接口和一个注册器java

  以下:web

接口:app

package com.duduy.up.web;ide

public interface ICallName {
    public void excute();
    public String getValue();
}this

注册器.net

package com.duduy.up.web.main;接口

import com.duduy.up.web.ICallName;get

public class Main {
    private ICallName callName;it

    public void regCallName(ICallName callName) {
        this.callName = callName;
    }io

    public void start() {
        callName.excute();
        System.out.println("依赖jar包里面拿的值:"+callName.getValue());
    }
}

二、web层依赖上面的那个Java项目(必须打成jar包),实现上面java的接口

这个实现类有两个做用,一个是依赖的上面的java项目可以监听到并执行web的excute方法,一个是将web的传值传递下去

package com.duduy.up.web.service;

import com.duduy.up.web.ICallName;

public class CallName implements ICallName {
    
    private StringBuffer sb= new StringBuffer("");
    public CallName(String... args) {
        if(null!=args){
            for(String arg:args){
                sb.append(arg+",");
            }
        }
    }
    @Override
    public void excute() {
        System.out.println("实现来自于web层");
    }

  @Override
    public String getValue(){
        return sb.toString();
    }

}

   protected void doGet(HttpServletRequest request, HttpServletResponse response) throws              ServletException, IOException {

        Main main = new Main();

       //注册实现类
        main.regCallName(new CallName("1","2","3","5","move","hhh"));
        main.start();
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

这样便实现了依赖jar包向上调用web层方法 其实本质上是监听模式

相关文章
相关标签/搜索