当前位置: 首页 > 面试题库 >

使用Spring设计Java库

常波鸿
2023-03-14
问题内容

我将从现有程序中提取一些功能到单独的库中。该程序使用Spring进行依赖项注入和其他任务,我也想在库中继续使用它。

该库需要监视文件系统的更改,因此它将启动某种单独的线程来执行此操作。

我真的不知道我对库的初始化有什么选择:

  • 如何初始化图书馆的环境?我不能认为图书馆用户也将使用Spring,但是我可以将Spring与图书馆一起分发。

  • 如何管理文件系统监视线程?期望程序实例化库的主类和调用init或类似的东西,这是好的设计吗?


问题答案:

如何初始化图书馆的环境?我不能认为图书馆用户也将使用Spring,但是我可以将Spring与图书馆一起分发。

由您的库决定如何以所需的方式实例化spring。这通常是在您的接口入口点完成的,该接口入口点使用例如ClassPathXmlApplicationContext配置spring的方法委托给例程。一个样本可能是

public class SpringContextLoader {
   private static ApplicationContext ctx = null;
   public static void init() {
       if (ctx == null) {
          ctx = ClassPathXmlApplicationContext("classpath:/applicatonContext.xml");
       }
   }
}

如何管理文件系统监视线程?期望程序实例化库的主类和调用init或类似的东西,这是好的设计吗?

在这种情况下,您可能会提供一个非守护线程,例如,必须手动终止的线程才能使应用程序正常退出。因此,您应该提供startstop机制。在您的情况下,最好将它们调用registerEventListenerunregisterAllEventListener(因为我猜您想将文件系统事件传递给客户端…)。另一种选择是在quartzSpring中使用调度。



 类似资料:
  • 我试图在压模上的单个pdf中添加多个签名。我可以添加多个母模。在我的一个案例中,我得到了错误 至少有一个签名无效。还需要使所有签名有效。 我想在一个PDF中添加多个有效符号。请帮帮我。在图中,只有一个符号是有效的,其他符号是无效的,所以让我看看我做错了什么 下面是我的代码快照

  • 我知道LWJGL只是OpenGL的包装。它是一个java库,旨在使用java语言中较低级别的OpenGL函数。 据我所知,GLFW只是一个库,它可以创建更好的窗口来显示图形。因此,GLFW只是一个用于以比LWJGL更好的方式创建窗口的库。 GLFW不是用于创建图形,只是用于创建显示,这是真的吗?GLFW不是单独使用的,你还是应该使用LWJGL库来访问OpenGL函数来创建图形? 有人能解释为什么我

  • 我很难找到这个问题的正确答案。当使用Spring批处理框架时,是否可以尝试在一个通用作业中解决所有的批处理?

  • 环境: Spring4座 Spring MVC Spring REST web服务将为客户机公开API,客户机将在UI(ASP.NET)上显示它。响应是在JSON中发送的。 请考虑以下方案: 客户端调用REST api以获取具有ID的用户。dao层获取用户实体并传送给客户端。 考虑到上图,通过Spring REST将用户对象(或响应)发送到客户端的最佳设计方法是什么? > 创建模仿实体对象的对象(

  • 我创建了两个面板..第一个面板添加了所有3个按钮,布局设置为边框布局,第二个面板包含网格。然后将两个面板添加到具有布局边框布局的框架中 但是没有添加按钮,网格看起来很小...当我点击那个网格按钮时,它就会膨胀... 有谁能帮助我创建这个UI吗?我是刚到爪哇的。请帮帮忙。

  • 翻译者注:本系列的原文名为:Designing a RESTful API with Python and Flask ,作者是 Miguel Grinberg 。 近些年来 REST (REpresentational State Transfer) 已经变成了 web services 和 web APIs 的标配。 在本文中我将向你展示如何简单地使用 Python 和 Flask 框架来创建