【发布时间】:2018-06-29 16:29:28
【问题描述】:
我不知道这是否是实施我的解决方案的更好方法:
@Component
@Scope("singleton")
public class GetFromJson implements Serializable{
/**
*
*/
private static final long serialVersionUID = -8203722696439228358L;
Map<String, Map<String, ArrayList<String>>> jsonMap;
public Map<String, Map<String, ArrayList<String>>> getJsonMap() {
return jsonMap;
}
public void setJsonMap(Map<String, Map<String, ArrayList<String>>> jsonMap) {
this.jsonMap= jsonMap;
}
}
该类是可序列化的,因为我从数据库中的 Json 获取内容并将内容映射到 Object GetFromJson 中(我只需要在数据库中进行一次查询)。出于这个原因,我需要在我的所有应用程序中使用对象,因此我认为我需要使用单例
有人向我发布了一个库以从数据库中获取 JSON。 JSON 对象解析为Map<String, Map<String, ArrayList<String>>>,因此我创建了我的GetFromJson 类。
现在我有很多休息服务,在我的休息服务中我需要使用我的对象:GetFromJson 来获取 jsonMap 的内容。
我有很多问题。
使用注释@Scope("singleton") 我保证GetFromJson 在我的所有应用程序中只有一个实例可用?
或者在 Spring 中让我的应用程序中可用的单例和会话对象的更好方法是什么?
使用GetFromJson获取jsonMap的内容就够用了
@Autowired
private GetFromJson jsonObject;
或者我怎样才能获得我的单身课程?
在我的休息方法服务中使用:
jsonObject.getJsonMap();
如何初始化我的单例,因为我正在尝试使用以下方法初始化我的对象:
@Autowired
private GetFromJson jsonObject;
public methodToInitialize(){
jsonObject = methodLibraryFromDatabase(GetFromJson.class);
}
IDE 告诉我没有使用字段初始化
我需要相同的逻辑,但是对于会话对象,我认为如果我理解会话对象的单例实现将是相同的,但只需将注释更改为:@Scope("session")
【问题讨论】:
标签: java spring spring-mvc spring-boot