java - 如何从不同的类访问同一个对象
问题描述
如何从多个类访问同一个对象?
我正在使用窗口构建器制作一个用于书店管理的 Java 应用程序,有不同类型的用户,每个用户都有不同的面板。
我需要访问类 bookStore 的更新对象(例如)以访问更新的书籍列表、用户列表,以便我可以添加或更改它。我看了一下单例设计模式,但我不知道我是否可以在这种情况下使用它。我应该使用它吗?如果是这样,有什么缺点吗?
还有另一种方法吗?
解决方案
是的,您可以为此使用单例。最简单的方法是使用Spring,在 Application 类中将 BookStore 声明为 Bean:
@Bean
public BookStore getBookStore(){
return new BookStore();
}
然后,在您需要引用它的每个类中,将您的 bookStore 声明为一个@Autowired
对象,以便 Spring 自动找到您的 BookStore 单例并注入它。例如:
@Service
public class BookService {
@Autowired
private BookStore bookStore; //This variable will reference your BookStore singleton.
public List<Book> getBooksFromStore(){
return bookStore.getBooks();
}
}
您可以在此处了解有关 Spring 的更多信息: https ://www.baeldung.com/spring-tutorial
这只是一个示例,因此您可以了解单例,但在实际场景中,您应该使用数据库来保存数据,因为单例只会保存数据,直到您的应用程序停止执行。
推荐阅读
- apache-spark - SPARK 中的用户定义函数 (UDF) 是否以分布式方式工作?
- javascript - 将转置 JSON 保存到 Excel 工作表
- c# - ChallengeResult RedirectUri 在.Net Core 延迟登录后被忽略
- powershell - 如何将 SSM 输出和 unix 时间格式转换为 powershell 中的系统时间以另存为 csv
- android - 子元素的阴影在颤动中改变位置
- spring - 实体在 Spring MVC 中使用 ModelMapper 执行 DTO
- java - 连接 jdbc postgreSQL Android Studio 的错误 - 无法解决:Ljava/lang/management/ManagementFactory;
- twig - 如何删除数组的最大长度?
- iis - 当 IIS 停止时如何显示自定义 html 页面
- powershell - 使用 powershell 删除导出 csv 结果中的双引号