猿问

Spring 中的抽象控制器

几周前我开始使用 Spring Boot,但我仍然无法理解“AbstractController”的概念。


public abstract class AbstractController {


    protected static final String CUSTOMER_SESSION_ID = "auth";

    protected static final String SHOOPY_CART_ID = "SHOOPY_CART";


    protected static final String REFERER_HEADER = "Referer";


    @Autowired

    protected CatalogService catalogService;


    @Autowired

    protected TotalAmountCalculator amountCalculator;


    @Autowired

    protected CustomerRepository customerRepo;


    @Autowired

    protected CartRepository cartRepository;



    //Insert necessary data to the header tag

    public void populateHeaderData(Model model, Cart activeCart) {

        HeaderDTOBuilder.HeaderDTO headerDTO = new HeaderDTOBuilder().

                withAmountCalculator(amountCalculator)

                .withActiveCart(activeCart)

                .withCategories(catalogService.getCategories()).build();

        model.addAttribute("headerDTO", headerDTO);

    }



    public void populateHeaderData(Model model, HttpServletRequest request) {

        Cart activeCart = getCartFrom(request);

        if(activeCart == null){

            activeCart = new Cart();

        }

        populateHeaderData(model, activeCart);

    }


}

我很想了解 Controller 和 AbstractController 之间的区别。


RISEBY
浏览 146回答 2
2回答

杨__羊羊

添加Abstract到类的名称是一种简单的方法来指定这个类是abstract(在你的情况下声明public abstract class)。这意味着开发此类是为了合并一些将被多个子类重用的通用功能。JDK本身也有这样的类java.util.AbstractList

莫回无

只有当您拥有或计划拥有多个具有共享逻辑或实例变量的控制器类时,您才会创建一个抽象控制器。
随时随地看视频慕课网APP

相关分类

Java
我要回答