无法在扩展java类中自动连接服务,引发NullPointerException
我正在尝试在java类中提供无法在扩展java类中自动连接服务,引发NullPointerException,java,spring,Java,Spring,我正在尝试在java类中提供Autowire服务,该类是从TimerTask扩展而来的。在java类中尝试返回服务时,返回的null值。这是我尝试使用的Autowire服务的类: @Component public class Task extends TimerTask { @Autowired FileDetailsService fileDetailsService; int count = 1; @Override public void r
Autowire
服务,该类是从TimerTask
扩展而来的。在java类中尝试返回服务时,返回的null
值。这是我尝试使用的Autowire
服务的类:
@Component
public class Task extends TimerTask
{
@Autowired
FileDetailsService fileDetailsService;
int count = 1;
@Override
public void run()
{
fileDetailsService.updateProcessingStatus(fileAudit);
}
配置类:没有web.xml…..我使用spring 4在java中进行了配置
//DataConfig.java
@Configuration
@MapperScan("com.fileC.mapper")
public class DataConfig {
@Bean
public DataSource dataSource() {
SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
dataSource.setDriverClass(oracle.jdbc.driver.OracleDriver.class);
dataSource.setUsername("username");
dataSource.setUrl("jdbc***thin**sample **url");
dataSource.setPassword("****");
return dataSource;
}
@Bean
public DataSourceTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource());
}
@Bean
public SqlSessionFactoryBean sqlSessionFactory() throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
sessionFactory.setTypeAliasesPackage("com.fileC.model");
return sessionFactory;
}
@Configuration
@ComponentScan(basePackages="com.filec")
public class ApplConfig {
@Bean
public CommonsMultipartResolver multipartResolver(){
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
commonsMultipartResolver.setDefaultEncoding("utf-8");
commonsMultipartResolver.setMaxUploadSize(50000000);
return commonsMultipartResolver;
}
}
//ApplConfig.java
@Configuration
@MapperScan("com.fileC.mapper")
public class DataConfig {
@Bean
public DataSource dataSource() {
SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
dataSource.setDriverClass(oracle.jdbc.driver.OracleDriver.class);
dataSource.setUsername("username");
dataSource.setUrl("jdbc***thin**sample **url");
dataSource.setPassword("****");
return dataSource;
}
@Bean
public DataSourceTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource());
}
@Bean
public SqlSessionFactoryBean sqlSessionFactory() throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
sessionFactory.setTypeAliasesPackage("com.fileC.model");
return sessionFactory;
}
@Configuration
@ComponentScan(basePackages="com.filec")
public class ApplConfig {
@Bean
public CommonsMultipartResolver multipartResolver(){
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
commonsMultipartResolver.setDefaultEncoding("utf-8");
commonsMultipartResolver.setMaxUploadSize(50000000);
return commonsMultipartResolver;
}
}
我正在使用Spring4、java1.8、ibatis和SQL数据库
这是服务课
@Service("fileDetailsService")
@Transactional
public class FileDetailsServiceImpl implements FileDetailsService{
private static Logger logger = LoggerFactory.getLogger(FileDetailsServiceImpl.class);
@Autowired
FileDetailsMapper fileDetailsMapper;
@Override
public void insertFileInfo(Details details){
fileDetailsMapper.insertDetails(details);
}
以下是例外情况的详细信息
fileAuditMapper>>>空值com.filecompare.service.Task.run(Task.java:117)上的线程“Timer-9”java.lang.NullPointerException中出现异常 位于java.util.TimerThread.mainLoop(Timer.java:555) 在java.util.TimerThread.run(Timer.java:505)
如果我需要在配置中添加一些内容,请告诉我 您是如何创建
FileDetailsService
的Bean的?能否将FileDetailsService
的代码添加到问题中?请使用原始帖子下的编辑链接将详细信息添加到问题中。如果没有正确的格式,评论中的内容是不可读的。另外,请发布您如何创建任务
bean。发布异常的完整堆栈跟踪,并将代码发布到您获得任务引用的位置。我猜您正在某处使用new Task()。将类更改为使用构造函数注入而不是字段注入,问题可能会立即显现出来。