multithreading - SpringFrameWork 注入(inject)的 bean 为空?

标签 multithreading spring spring-mvc null javabeans

我正在研究 SpringFrameWork 和 MySQL。

我做了一些测试,数据库和框架之间的通信工作正常。
问题是当我在扩展线程的类中使用注入(inject) bean 时,不知何故 bean 变为空。我不知道为什么。

下面是我的 Spring Controller 的一部分,它创建线程扩展对象('IISDaemon')。

@RequestMapping("/list")
public ModelAndView list(
        @RequestParam(value="page_no", defaultValue="1") Integer page_no) 
        throws Exception{
    log.info("Manager called Web page. page no : " + page_no);
    ModelAndView mav = new ModelAndView();

    //test
        log.info("svc bean : " + svc);
        IISDaemon daemon = new IISDaemon();
        daemon.start();

    //


    mav.setViewName("/iis/list");
    mav.addObject("list", svc.list(page_no));
    return mav;
}

下面是类 IISDaemon。
public class IISDaemon extends Thread {
    private Logger log = Logger.getLogger(getClass());

    @Inject 
    IISSVCImpl svc;

    @Override
    public void run() {
        log.info("Daemon starts.");
        ArrayList<IISVO> list = new ArrayList<IISVO>();
        try{
            log.info("svc bean : " + svc);
            list = (ArrayList<IISVO>)svc.jobList(1);
            for(IISVO vo : list){
                this.sleep(5000);
                log.info(vo);
            }
        }catch(Exception e){e.printStackTrace();}
    }   
};

如您所见,我在每个类中打印 2 个日志。
上一个是

INFO : org.owls.iis.IISMgrController - svc bean : org.owls.iis.svc.IISSVCImpl@4572”。

下一个是

INFO : org.owls.iis.daemon.IISDaemon - svc bean : null

提前感谢您的建议:D

最佳答案

未注入(inject)是因为 IISDaemon不是 Spring 托管类。您在 Controller 类中使用 new 实例化它运算符(operator)。

也许您宁愿注入(inject) IISDaemon进入您的 Controller 类,然后将注入(inject)的值提供给您的 ISSDaemon通过它的构造函数。

关于multithreading - SpringFrameWork 注入(inject)的 bean 为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19372072/

相关文章:

java - 需要帮助理解有关并行流性能提升的文章

c - 为什么pthread_exit(0)会挂起程序?

Python multiprocessing.managers.BaseManager 按顺序运行注册的可调用函数

java - Corda Accounts 使用 java 创建帐户时由于依赖项错误而失败

java - Tomcat监听器启动报错

java - Spring MVC 应用程序语法错误

java - 如何为声明为 ThreadLocal 的变量的多个副本保持一致性?

java - 在 Spring MVC/Security 中设置和读取 cookie

java - 在 java Spring Rest 服务中下载并读取大型 csv 文件

java - 我应该在 Spring MVC Web 应用程序的 DAO 层或服务层上进行缓存吗?