Em dùng `@EzyConfigurationBefore` để khởi tạo `lobbyRoom`:
@EzyConfigurationBefore public class MMOVirtualWorldConfig extends EzyLoggable { @EzySingleton("lobbyRoom") public NormalRoom lobbyRoom() { logger.info("Initialize lobby room"); return NormalRoom.builder() .build(); } }
Trong `GameService` lại có 1 thằng roomManager để quản lý toàn bộ rooms:
@Setter @EzySingleton public class GameServiceImpl implements GameService { private final RoomManager roomManager = new SynchronizedRoomManager(); }
Em muốn add thêm lobbyRoom vào roomManager khi khởi tạo nó. Vậy em có nên khởi tạo `roomManager` theo kiểu `@EzyConfigurationBefore` không anh?
Vậy em chuyển thằng
vào `GameServiceImpl` và add nó vào `roomManager` ở hàm tạo hoặc hàm `postContruct` em ạ
Em làm được bằng cách dùng `@EzyConfigurationBefore(priority = 1)` rồi. Có cách nào hay hơn ko ạ?
Ở hàm tạo của `GameServiceImpl` nó chưa kịp set value cho các fields anh ạ –> lobbyRoom sẽ bị null. Mình implement lớp nào để có `postContruct` vậy anh?