я получил простой ДЖЕРСИ WebService, который отвечает вернуть состояния, присутствующие в нашей базе данныхМожно ли использовать опцию управления кэшем в моем коде
package com.services.regg;
@Path("/getstates")
public class FetchStates {
@GET
@Consumes("application/text")
@Produces("application/json")
public String getAllSates() throws JSONException
{
JSONArray jsonarray_allstates = new JSONArray();
Connection dbConnection = null;
PreparedStatement getAllStatesPst = null ;
ResultSet getAllStatesResltSet = null;
try
{
dbConnection = DBConnectionOrient.getDBConnection();
getAllStatesPst = dbConnection.prepareStatement("select stateID , stateName from tbl_state ORDER BY stateName");
getAllStatesResltSet = getAllStatesPst.executeQuery();
while(getAllStatesResltSet.next())
{
JSONObject eachrecordjsonObj = new JSONObject();
String stateID = getAllStatesResltSet.getString("stateID").trim();
String stateName = getAllStatesResltSet.getString("stateName").trim();
eachrecordjsonObj.put("stateID", stateID).put("stateName", stateName);
if(!stateName.isEmpty() && !stateName.equals(""))
{
jsonarray_allstates.put(eachrecordjsonObj);
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
DBConnectionOrient.close(getAllStatesPst,getAllStatesResltSet);
DBConnectionOrient.close(dbConnection);
}
String response = "jsonCallback("+jsonarray_allstates.toString()+")";
return response;
}
}
Все это прекрасно работает.
Как это работает для мобильных приложений, мы видим очень медленные ответы от бэкэнда
Я хочу, чтобы оптимизировать производительность приложения с моей стороны. Для этого я видел механизм управления кешем Джерси.
CacheControl cc = new CacheControl();
cc.setMaxAge(86400);
cc.setPrivate(true);
ResponseBuilder builder = Response.ok(myBook);
builder.cacheControl(cc);
return builder.build();
Мой вопрос, можно ли использовать CacheControl
в моем коде, как я непосредственно отправка строки вместо ResponseBuilder
.
Если да, не могли бы вы сообщить мне, как изменить мой код, чтобы использовать Cache Control?