我有
@Component
public class WeeklyReport implements CommandLineRunner {
@Autowired
private RecipientMapper recipientMapper;
@Override
public void run(String... args) throws Exception {
String[] recipients = recipientMapper.all();
@Controller
public class MyController extends BaseController implements ErrorController {
@RequestMapping(value="/admin/weekly-report-run", method=RequestMethod.POST)
public ModelAndView weeklyReportRun(WeeklyReport weeklyReport) {
try {
weeklyReport.run();
但是我在receiveMapper.all()处收到了NullPointerException。我如何实例化CommandLineRunner,以便所有@Autowired字段都自动连接,并且可以通过从命令行以及从控制器调用代码来重用代码?我认为,通过将其指定为控制器方法的参数,Spring Boot可以实例化正确的对象以及所有子字段。
春季靴1.5.19。
最佳答案
我加了
@Autowired
private WeeklyReport weeklyReport;
对于控制器,并将其从控制器的方法参数中删除,它可以正常工作。动作方法可以看到自动连接的类变量。