首页 > 解决方案 > Spring MVC 是否可能与多个控制器相同@autowired?

问题描述

假设我们有两个不同的控制器类,AController.java并且BController.java.

public class AController {
    @Autowired
    private AdminService adminService;
 }

public class BController {
    @Autowired
    private AdminService adminService;
 }

我想知道这是否可以。

+ 编辑

AdminService(Interface) 前三位来自Acontroller,一个来自BController。在selectNormalList()创建selectCouponByTerm().

public interface AdminService {

    List<Member> selectNormalList();
    
    List<Member> selectPartnerList();
    
    List<Coupon> selectCouponByDate(String date);
    
    List<Coupon> selectCouponByTerm(String startDate, String endDate);
}


AdminServiceImpl(实现接口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);
    }
    
    
}

标签: javaspring

解决方案


是的。

这就是依赖注入的重点。您可以将依赖项注入到其他任何需要它的地方。

不过,请注意你在哪里注射什么;如果两个控制器共享相同的功能以至于它们具有相同的依赖关系,那么它们真的应该是两个控制器吗?


推荐阅读