Я новичок в Spring Boot, мне нравится использовать только его внедрение зависимостей, не все его самоуверенные фреймворки, но некоторые. Я знаю, что есть другие альтернативы этой функциональности, но я хотел бы узнать больше о Spring.
Я пытаюсь создать bean-компонент с ограниченным объемом запроса и заполнить его регулярной инъекцией зависимостей. Мой план состоит в том, чтобы иметь некоторый объект User, который я могу заполнить, содержащий некоторые настраиваемые бизнес-детали, к которым легко получить доступ, что делает код чистым.
@Component
@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)
class MyBean {
@Autowired
lateinit var req: HttpServletRequest
@Autowired
lateinit var env: Environment
@PostConstruct
fun pc() {
println("I am constructed $this, $req, $env")
}
var a = 3
}
@RestController
class MyController {
@GetMapping("/api/xyz")
fun login(m: MyBean): Int {
println("new bean m")
return m.a
}
}
Каждый раз, когда я нажимаю на эту конечную точку, я вижу, что создаются новые объекты. Однако внутренние зависимости не подключаются автоматически, они всегда нулевые. Что я делаю не так? Нужно ли писать фильтр? Но как мне узнать, как найти все конечные точки, которым требуется инициализировать этот компонент? Если я удалю область запроса, переменные инициализируются.