小编Abs*_*Man的帖子

在我的石英工作中注射

我想知道如何使用guice在我的工作中使用注射.由于我不能在默认构造函数上使用@Inject,我可以直接在属性上使用它(如下所示)(我总是得到一个带有PersonDAO的NullPointerException)?我知道DAO在这里无关,但它只是用于测试.

public class SimpleQuartzJob implements Job {

  @Inject PersonDao Person;

  private static Logger logger = Logger.getLogger(SimpleQuartzJob.class.getName());

  public SimpleQuartzJob() {
  }

  @Override
  public void execute(JobExecutionContext context) throws JobExecutionException {
    if (logger.isDebugEnabled()) logger.debug("In SimpleQuartzJob - executing its JOB at " 
        + new Date() + " by " + context.getTrigger().getName());

        // ... LOGIC ...
  }

} 
Run Code Online (Sandbox Code Playgroud)

在我的模块中,我有以下声明:

bind(PersonDao.class).to(HibernatePersonDaoImpl.class);
Run Code Online (Sandbox Code Playgroud)

实际上我在这里使用PersonDao'因为我知道它在另一个带注入的类中工作(但注入是在那里的构造函数级别完成的).

有人可以给我一个建议吗?

这里有关于quartz config的更多信息:

web.xml中:

  <servlet>  
    <servlet-name>QuartzInitializer</servlet-name>  
    <display-name>Quartz Initializer Servlet</display-name>  
    <servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>  
    <load-on-startup>1</load-on-startup>  
    <init-param>  
        <param-name>config-file</param-name>  
        <param-value>/quartz.properties</param-value>  
    </init-param>  
    <init-param>  
        <param-name>shutdown-on-unload</param-name>  
        <param-value>true</param-value>  
    </init-param>  
    <init-param>  
        <param-name>start-scheduler-on-load</param-name>  
        <param-value>true</param-value>  
    </init-param>  
</servlet> …
Run Code Online (Sandbox Code Playgroud)

java servlets guice quartz-scheduler

10
推荐指数
1
解决办法
6061
查看次数

标签 统计

guice ×1

java ×1

quartz-scheduler ×1

servlets ×1