Java 弹簧中的抽象控制器
几周前我就开始使用SpringBoot了,但我仍然无法理解“AbstractController”的概念Java 弹簧中的抽象控制器,java,spring,spring-boot,spring-mvc,Java,Spring,Spring Boot,Spring Mvc,几周前我就开始使用SpringBoot了,但我仍然无法理解“AbstractController”的概念 我很想了解控制器和抽象控制器之间的区别。在类的名称中添加抽象是一种简单的方法,可以指定该类为抽象(在您的示例中声明为公共抽象类)。这意味着开发这个类是为了合并一些公共功能,这些功能将被几个子类重用。JDK本身也有这样的类,比如java.util.AbstractList public abstract class AbstractController { protected sta
我很想了解控制器和抽象控制器之间的区别。在类的名称中添加
抽象
是一种简单的方法,可以指定该类为抽象
(在您的示例中声明为公共抽象类
)。这意味着开发这个类是为了合并一些公共功能,这些功能将被几个子类重用。JDK本身也有这样的类,比如java.util.AbstractList
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);
}
}
您可以在此处找到有关抽象类概念的更多信息只有当您拥有或计划拥有多个具有共享逻辑或实例变量的控制器类时,您才会创建一个抽象控制器 如果你在控制器之间有一些共同的功能,谢谢@Deadpool