NutzCN Logo
问答 线程启动,使用@IocBean+ @Inject("dao") 获取的对象为null
发布于 898天前 作者 wx_8vjkgeuojhfkul2b2vnl 917 次浏览 复制 上一个帖子 下一个帖子
标签:

@IocBean
public class OrgDataStorageTask implements Runnable {
private String orgList;

private String mysqlFront;

private String mysqlAfter;

@Inject("dao")
Dao dao; ->>null

@Inject("dwDao")
Dao dwDao; ->>null

public OrgDataStorageTask(String orgList, String mysqlFront, String mysqlAfter) {
    this.orgList = orgList;
    this.mysqlFront = mysqlFront;
    this.mysqlAfter = mysqlAfter;
}

@Override
public void run() {
    System.out.println(SqlInUtil.formatInString(orgList));
    String sSqlTables = "select * from sys_department";
    Sql sqlTables = Sqls.create(sSqlTables);
    sqlTables.setCallback(Sqls.callback.records());
5 回复

帮帮菜鸡吧真的人傻了

从ioc容器取出来的对象才能被注入

不是很了解,我使用定时任务也是这样取的,都能拿到:
@IocBean
@DisallowConcurrentExecution
public class DataStorageStatisticsJob implements Job {

private static Log log = Logs.get();
Ioc ioc = null;
@Inject
private QmStorageStatisticsService qmStorageStatisticsService;

@Override
public void execute(JobExecutionContext context) throws JobExecutionException {

但你的OrgDataStorageTask对象 肯定不是ioc创建的实例

添加回复
请先登陆
回到顶部