另外,你这类都使用`@Component`注解,Bean默认就是单例,`getInstance()`多此一举? 需要看下你在调用时怎么做的,理论上你最好使用`@Resource`之类注解进行依赖注入,而不是使用`getInstance()`这种方式。 既然是单例,就无需考虑多实例场景,故`static`也可省略。 * * * 另外,推挤你使用`@PostConstruct`或者`InitializingBean`,来完成一些Bean的业务类初始化动作。 既然使用Spring,就好好去用它 * * * 推荐你使用这种方式 @Component public class ScenarioBuffer implements IActionListener { // 没必要使用 static // public static List getBAsset(String groupId) { public List getBAsset(String groupId) { if (assetBuffer.containsKey(groupId)) { return assetBuffer.get(groupId); } return null; } } @Service public class XxxService { // 注入依赖 @Resource private ScenarioBuffer scenarioBuffer; public void xxx() { // 直接使用即可 final List asset = scenarioBuffer.getBAsset("xxx"); } }