Ich habe eine Ebene POJO im Frühjahr autowired, deren Eigenschaften scheinen zu bestehen.Spring Bean Eigenschaften persistent
Ich finde, dass der glückliche Weg ist in Ordnung - Set Bean-Eigenschaften und Rückkehr dann aber wenn ich nicht auf dem glücklichen Weg bin und ich nicht mehr eine Eigenschaft (in diesem Fall responseCode) festlegen möchte, finde ich es ist immer noch auf den vorherigen Wert gesetzt (wenn ein Anruf erfolgreich war).
Ich möchte diesen Wert nicht festgelegt werden und gleich sein, was ich derzeit im Modell angegeben habe.
Ich habe die folgende POJO Prototype bean
package com.uk.jacob.model;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@Component
@Scope("prototype")
public class Website {
public String url;
public boolean response;
public int responseCode = 0;
}
Ich stelle es Informationen innerhalb einer Serviceklasse
package com.uk.jacob.service;
import java.net.HttpURLConnection;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.uk.jacob.adapter.HttpAdapter;
import com.uk.jacob.model.Website;
@Component
public class PingerService {
@Autowired
HttpAdapter httpAdapter;
@Autowired
Website website;
public Website ping(String urlToPing) {
website.url = urlToPing;
try {
HttpURLConnection connection = httpAdapter.createHttpURLConnection(urlToPing);
website.response = true;
website.responseCode = connection.getResponseCode();
} catch (Exception e) {
website.response = false;
}
return website;
}
}
, die von einem RestController
package com.uk.jacob.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.uk.jacob.model.Website;
import com.uk.jacob.service.PingerService;
@RestController
@RequestMapping("api/v1/")
public class PingController {
@Autowired
PingerService pingerService;
@RequestMapping(value = "ping", method = RequestMethod.GET)
public Website getPing(@RequestParam String url){
return pingerService.ping(url);
}
}
Können Sie mehr über 'ApplicationContext # getBean (" Website ") erklären?', Was ist das? Was ist das Problem in meinem Code? –