Enter the service in another service

I have a UserService and MissionService.

Is it possible to introduce MissionService in UserSerivce or vice versa?

If so, what about unit testing?

+4
source share
1 answer

Of course you can, and that is wonderful. But I recommend that you use the injection method so that you can install the instance at run time without using reflection (you can create the instance manually).


For instance:

@Service
public class MissionService { }

@Service
public class UserService {
    private MissionService missionService;

    @Autowired
    public void setMissionService(MissionService missionService) {
        this.missionService = missionService;
    }
}

This allows you to create both services using regular Java without Spring:

MissionService missionService = new MissioNService();
UserService userService = new UserService();
userService.setMissionService(missionService);

Caution: you must take care not to create dependency loops. Not found that Spring allows them, I think

+4
source

Source: https://habr.com/ru/post/1651164/


All Articles