跨区域的application共享问题。

时间:2021-01-19 15:16:37
  @1  new Thread(){
@Override
public void run() {
getConnect();
}
}.start();

如果我们的一个的应用程序有俩个入口。那么如果我们在这个应用程序的一个入口中修改了数据的话,那么我们应该怎么做才能使另外的一个入口也可以接收到或者说是及时响应到应用程序的数据的改变呢?

一些值需要放入到application中,当那些值在发生修改或者删除时,就得进行同步.所以在操作结束的位置,执行@1的方法

public void getConnect(){

        String validateUrl= Config.getSysConfig("pztLoginUrl");//拿到其他口要调用的地址
validateUrl = validateUrl + CmConstant.PZT_ZDGX;
HttpURLConnection conn = null;
try { URL url = new URL(validateUrl); //创建URL对象
//返回一个URLConnection对象,它表示到URL所引用的远程对象的连接
conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000); //设置连接超时为5秒
conn.setRequestMethod("GET"); //设定请求方式
conn.connect(); //建立到远程对象的实际连接 if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
System.out.println("网络错误异常!!!!");
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("这是异常!");
}finally {
if (conn != null) {
conn.disconnect(); //中断连接
}
}
}

跳转url后,再去把值放入到application中

        ServletContext servletContext = request.getSession().getServletContext();

        //查询所有的园区
List<ParkInfo> parkInfoList = parkInfoServiceEx.getValidParkInfoList();
servletContext.setAttribute("parkList",parkInfoList);

系统一启动就初始化application

@Component
public class SystemStartupServlet extends HttpServlet { @Autowired
private IParkInfoServiceEx parkInfoServiceEx; /**
* 实现系统参数的初始化工作
*/
@Override
public void init() {
try {
ServletContext servletContext = getServletContext(); }
//查询所有的园区
List<ParkInfo> parkInfoList = parkInfoServiceEx.getValidParkInfoList();
servletContext.setAttribute("parkList",parkInfoList); } catch (Exception e) {
e.printStackTrace();
}
} }