AfterPropertiesSet 是加载 staticList 的正确位置吗?

Is AfterPropertiesSet the correct place to load staticList?

我正在 afterPropertiesSet() 方法中从数据库加载静态列表。

在这个 class 中,我在很多方法中使用静态列表,所以我不想总是从数据库加载这个列表。

密码是:

 private Collection<Country> countries= null;

 [...] // Use of countries in many methods

@Override
public void afterPropertiesSet() throws Exception {
    // Load countries types
    countries = getAddressService().loadCountries();

}

在 afterPropertiesSet() 中加载集合是一个好的做法吗?哪个选项会更好?我不想多次调用数据库。

我推荐使用简单缓存:

@Cacheable
public Collection<Country> getCountries() throws Exception {
    return getAddressService().loadCountries();
}

然后您可以使用 service.getCountries() 访问它们。只有第一次调用将从数据库加载。所有后续调用都从缓存中获取集合。