【发布时间】:2016-02-02 17:54:42
【问题描述】:
我想实现一个功能,在部署时,我应该从数据库中加载对象列表。数据库已经完成了相应的实现,正在动态使用。
鉴于我是 Spring 新手,我正在尝试了解 Spring 的不同特性,我可以利用这些特性来实现这个特性。如果我不使用 Spring,我会拥有
- 创建了线程安全的单例类
- 在应用程序加载时按 servlet 生命周期加载该类
- 加载该单例类中的所有内容并覆盖现有的数据库类以在发出查询之前检查此单例类。这样,仅当由于某种原因未加载此类时才会发出查询。
现在,在春天,我很困惑。我一直在阅读不同的文章并试图找到一些指示。首先,我应该使用@Component 来制作单例类吗? spring 会照顾线程安全吗?
其次,这个类是 Service 的 spring 类吗?我必须用 @Service 注释它吗?
第三,我应该在启动时使用@PostConstruct 来加载这个类吗?还是有其他更好的选择?
【问题讨论】:
-
所有 Spring bean 默认都是单例的(在 Spring 的上下文中只有一个实例)
-
你认为这段代码会在应用程序第一次启动时加载以加载所有内容吗? pastebin.com/yHEE5xaQ
-
当然,我对实体缓存做了同样的事情
-
所以我在这里得到空会话。我该怎么办?
标签: java spring multithreading spring-mvc