报错信息:
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 16 of constructor in com.yd.insuranceconsultant.schedule.ScheduleJob required a bean of type 'java.lang.String' that could not be found.
Action:
Consider defining a bean of type 'java.lang.String' in your configuration.
原因
如下图所示在使用@AllArgsConstructor启动报错,在使用lombok的@AllArgsConstructor注解代替@Autowired注入时和配置文件参数注入 @Value("${vmred.url}")同时使用,会报如下错误。
@Component
@AllArgsConstructor
public class ScheduleJob {
private final Log logger = LogFactory.getLog(ScheduleJob.class);
private final UserMapper userMapper;
@Value("${vmred.url}")
private String vmredUrl;
@Value("${getPDF.url}")
private String getPDFUrl;
解决方案
可以将@AllArgsConstructor注解换为@RequiredArgsConstructor注解并且将交给springboot管理的需要注入的对象加上final类型。
@Component
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class ScheduleJob {
private final Log logger = LogFactory.getLog(ScheduleJob.class);
private final UserMapper userMapper;
@Value("${vmred.url}")
private String vmredUrl;
@Value("${getPDF.url}")
private String getPDFUrl;