Was ist der beste Weg von Code konstant zu bewegen:Spring - Refactoring - move Einheit konstant Konfiguration (application.properties)
@Entity
public abstract class Post {
...
private static final int HOTPOST_LIKE_TRESHOLD = 6;
...
public long increaseLikeCounter() {
likesCount++;
if (likesCount >= HOTPOST_LIKE_TRESHOLD) {
this.setStatus(HOT);
}
return likesCount;
}
...
}
zur Konfigurationsdatei Frühling verwenden? (d. h. Spring Boot application.properties)
Die Operation ist nun in der Post-Klasse gekapselt, und es ist OK für mich, HOTPOST_LIKE_TRESHOLD von der Klasse wegzubewegen, aber ich möchte die likeCounter-Methode dort beibehalten, wo sie ist.
Die Post sollte nicht entscheiden, ob sie als heiß angesehen wird - es sollte eine andere Entität geben, die diese Regel codiert, und Sie können die shhere als Bean-Eigenschaft dort haben. –
Ok, aber was ist mit anderen Situationen, in denen Post entscheiden sollte, und es muss einen Wert verwenden, den ich in die Konfiguration verschieben möchte, aber den throug method Parameter nicht übergeben möchte? Die Frage bezieht sich eher auf technische Möglichkeiten als auf Geschäftsregeln. Was ist die beste Möglichkeit, konfigurierbare Eigenschaften in Entitäten zu verwenden (nicht im Frühjahr verwaltet), ohne sie durch Methodenparameter zu übergeben. – msiakis
Nun, wenn wir nur eine technische Möglichkeit diskutieren, dann können Sie im Frühjahr jedes beliebige Objekt automatisch ansteuern, geben Sie ihm nur einen eindeutigen Namen. –