Meine Web-App (das ist kein Spring-MVC hier, nur Core IOC) verwendet eine Menge Prototypbohnen und die meisten verwenden eine Singleton-Dao-Bohne. Sollten die Singleton-Dao-Bean-Methoden synronisiert werden, da viele verschiedene Prototyp-Beans (aus unterschiedlichen Anfragen) dieselbe Method-ID Dao im selben Moment verwenden können?Sollen die Singleton-Methoden synchronisiert werden?
Zum Beispiel der dao Methode
public void setLetterNotNew(int letterId) {
final String sql = "UPDATE income SET isnew=? WHERE id=?";
try(Connection con = HikariFactory.getConnection(); PreparedStatement ps = con.prepareStatement(sql);) {
ps.setInt(1, 0);
ps.setInt(2, letterId);
int i = ps.executeUpdate();
if(i==0) throw new SQLException("setLetterNotNew");
} catch (SQLException e) {
log.error(e);
}
}
Hängt davon ab, wie Sie die DB aktualisieren. Viele Frameworks sind bereits synchronisiert, so dass Sie keine zusätzlichen Arbeiten ausführen müssen. Überprüfen Sie Ihre Dokumente. – markspace
@markspace Das ist kein Rahmen hier ecxept von Frühling-ioc. Dies ist eine Servlet-basierte Web-App. Die Datenbank wird über standart jdbc aktualisiert. – furry
ja, Sie sollten die Methoden des Singleton synchronisiert oder zumindest den Teil, dass es in die DB zwischen einem synchronisierten Block geht. Überprüfen Sie auch, wie Sie planen, das Singleton zu erstellen und zu erhalten, so dass Sie nicht mit zwei Instanzen enden – Rumal