Question: Let's say we got two different controller classes, `AController.java` and `BController.java`.

```
public class AController {
    @Autowired
    private AdminService adminService;
 }

public class BController {
    @Autowired
    private AdminService adminService;
 }

```

I wonder if this is okay.

**+ EDIT**

AdminService (Interface)
The top three are from Acontroller, and the other is from BController.
I have no issue with trigger `selectNormalList()` until I create `selectCouponByTerm()`.

```
public interface AdminService {

    List<Member> selectNormalList();

    List<Member> selectPartnerList();

    List<Coupon> selectCouponByDate(String date);

    List<Coupon> selectCouponByTerm(String startDate, String endDate);
}

```

AdminServiceImpl(that implements interface AdminService)

```
@Service
public class AdminServiceImpl implements AdminService{

    @Autowired
    private static AdminDao adminDao;

    @Override
    public List<Member> selectNormalList() {    
        return adminDao.selectNormalList();
    }

    @Override
    public List<Member> selectPartnerList() {
        return adminDao.selectPartnerList();
    }

    @Override
    public List<Coupon> selectCouponByDate(String date) {
        return adminDao.selectCouponByDate(date);
    }

    @Override
    public List<Coupon> selectCouponByTerm(String startDate, String endDate) {
        return adminDao.selectCouponByTerm(startDate, endDate);
    }

}

```

Answer: 
Yes.
====

This is the point of dependency injection. You can inject a dependency into whatever else needs it.

Do pay attention to what you're injecting where, though; if two controllers share common functionality to the degree that they have the same dependencies, *should* they really be two controllers?
Yes. It is ok. Spring will inject AdminService in both controllers. You have to use @Controller on AController and BController and @Service on AdminService class.