Однако, когда я пытаюсь изменить область этого класса для прототипирования, добавив @Scope("prototype") и изменив некоторые свойства в файле application.yml и повторно отправив мой запрос, я заметил, что он не создает новый экземпляр для каждого запроса, как Я ожидал. Вместо этого он по-прежнему возвращает тот же экземпляр, поскольку измененное свойство такое же, как и раньше.
Код: Выделить всё
@ConfigurationProperties(prefix = "isoft")
@Getter
@Setter
@Validated
public class DataBaseConfigDTO{
private final Map datasource;
private final List maintainers;
private final String manager;
//for triming manager
public DataBaseConfigDTO(Map datasource,
List maintainers,
String manager) {
this(datasource, maintainers, manager.trim(), false);
}
private DataBaseConfigDTO(Map datasource,
List maintainers,
@Email String manager,
boolean idle) {
this.datasource = datasource;
this.maintainers = maintainers;
this.manager = manager;
}
}
Код: Выделить всё
isoft:
datasource:
driver-class-name: cards.oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@localhost:1521:testCards
username: 'AMz.cards__'
password: '123.cards.'
hikari:
connection-timeout: 10000
maintainers:
- shahsavariCards
- mohammadiCards
manager: iot@micro.cards
management:
endpoints:
web:
exposure:
include: "*"
Код: Выделить всё
@RestController
@RequestMapping(path = "/api/v1/loans", produces = {MediaType.APPLICATION_JSON_VALUE})
@AllArgsConstructor
@Validated
public class LoansController {
private final DataBaseConfigDTO dataBaseConfigDTO;
@GetMapping("/props")
public ResponseEntity getProps() {
return ResponseEntity.ok(dataBaseConfigDTO);
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... e-behavior