프로토 타입 bean을 많이 사용하는 web-app (여기에는 Spring-MVC가 없으며 코어 IOC 만 해당) 대부분은 싱글 톤 (singleton) dao-bean을 사용하고 있습니다. 많은 다른 프로토 타입 빈들 (다른 요청들로부터)이 동일한 방법 id dao를 같은 순간에 사용할 수 있기 때문에 싱글 톤 (singleton) dao-bean 메소드가 synhronized되어야 하는가? 예를 들어싱글 톤 메서드를 동기화해야합니까?
그것은 의존
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);
}
}
DB 업데이트 방법에 따라 다릅니다. 많은 프레임 워크가 이미 동기화되어 있으므로 추가 작업을 할 필요가 없습니다. 문서를 확인하십시오. – markspace
@markspace 여기에는 Spring-ioc의 프레임 워크가 없습니다. 이것은 서블릿 기반 웹 응용 프로그램입니다. 데이터베이스가 standart jdbc를 통해 업데이트 중입니다. – furry
네, 싱글 톤의 메소드를 동기화 시키거나 최소한 동기화 된 블록 사이에서 DB로가는 부분을 만들어야합니다. 또한 어떻게 빌드하고 싱글 톤을 얻는 지 확인하여 두 개의 인스턴스로 끝나지 않게하십시오. – Rumal