Согласно определению неизменяемого объекта (see this question), я не очень уверен, что создание сеттеров Spring DAO как единственно возможного использования - это способ гарантировать неизменность или нет. Например (DataSource свойство):Spring DAO и неизменяемые объекты
public class MySpringPojoDAO extends JdbcDaoSupport implements IMySpringPojoDAO {
private boolean dataSourceSet = false;
@Override
public void setDataSource(DataSource dataSource){
if (dataSourceSet) {
throw new IllegalStateException("...");
}
dataSourceSet = true;
this.dataSource = dataSource;
}
}
}
В случае это не так, что это способ гарантировать неизменность с помощью Spring Framework или IoC?
Что вы подразумеваете под одним-единственным? – Adelin
Я имею в виду, что сеттер можно использовать только один раз (когда IoC инициализирует контекст Spring), так что объект не будет изменен на «другие» компоненты или объекты. –
Вы не можете '@ Override', так как' JdbcDaoSupport # setDataSource' является окончательным. – dit