FlowPaymentFreightController.java:216:76
java: 无法从静态上下文中引用非静态方法 transportCompanySumList()
另一个原因,不是原因的原因。
正常情况下,读取数据库返回数据的流程是这样的:
- mybatis 中定义 id 和 resultType,用于设置调用标识和返回类型
- DAO 层定义 id 对应方法
- 实体层新增类型
- 服务层定义调用 Dao 层方法
- 控制器层调用具体服务层方法
因为在开发中大多情况下是,复制粘贴,或者使用代码补全,因为不细心,在控制器调用服务层方法时,
FlowPaymentFreightService 写成了大写,实际上应该是首字母应小写,flowPaymentFreightService,因为在控制器层,是这么设置的:
@Autowired private FlowPaymentFreightService flowPaymentFreightService;
因此,当报错,java: 无法从静态上下文中引用非静态方法时,看是否因为名称大小写的问题。
当然,也可以按下面的方法调用:
FlowPaymentFreightService staticServiceTest = SpringUtils.getBean(FlowPaymentFreightService.class); staticServiceTest.transportCompanySumList();