spring mvc如何存储常用的集合

时间:2013-07-17 11:30:41

标签: spring-mvc architecture

这是一个架构问题。我有Spring MVC Web应用程序,它包含十几个很少更改的集合,但它们通常用于多对一关系,并用于填充设置这些属性值的下拉选项。 (例如:国家,地区,地位类型等)。

在性能和内存使用方面,应用程序应如何使这些集合可用?

目前我有一个单身包装类,如下所示:

@Component("collectionWrapper")
public class CollectionWrapper {
    Map<Integer, Country> countries;
    Map<Integer, User> users;
    Map<Integer, Office> offices;
    Map<Integer, Status> statuses
    DAOService daoService;

    public CollectionWrapper() {}

    @Autowired(required=true)
    public CollectionWrapper(DAOService daoService) {
        this.daoService=daoService;
        loadCountriesFromDao();
        loadUsersFromDao();
        loadOfficesFromDao();
        loadStatusesFromDao();
    }

    public void loadCountriesFromDao() {
        countries=daoService.getCountries();
    }

    // etc...
}

在极少数情况下,其中一个集合中的项目发生更改,负责进行更改的控制器会调用collectionWrapper.loadCountriesFromDao(),例如。

最后,应用处理的主要对象具有映射到这些“引用对象”的属性,如下所示:

@Entity
public class Event {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="id", nullable = false)
    private Integer id;

    @ManyToOne
    @JoinColumn
    private Office office;

    etc...
}

所以基本上我想知道这是否是正确的方法。简单地将collectionWrapper注入到我的控制器和视图中很方便,但我不确定它在较低级别上的效率如何,或者我是否缺少基本的东西。

感谢您分享您的经验!

0 个答案:

没有答案