2010-11-23 11 views
10

私はguiceを使って私の仕事でどのように注射を使うことができるのか知りたいのですが。 デフォルトのコンストラクタで@Injectを使用することはできませんので、次のように属性に直接使用することができます(私は常にPersonDAOでNullPointerExceptionを取得しています)?私はDAOはここで何もしていないことを知っていますが、テストのためだけです。私はそれが注射で別のクラス内で動作を知っている(しかし、注入は、コンストラクタのレベルで行われる原因私の石英の仕事の注射

bind(PersonDao.class).to(HibernatePersonDaoImpl.class); 

実は私は」ここPersonDaoを使用します。私は次の宣言を持っている私のモジュールで

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 ... 
    } 

} 

そこ)。

誰かからアドバイスをいただけますか?

の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> 

quartz.properties:

org.quartz.plugin.jobInitializer.class=org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin 
org.quartz.plugin.jobInitializer.fileNames=quartz-config.xml 
org.quartz.plugin.jobInitializer.failOnFileNotFound = true 
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool 
org.quartz.threadPool.threadCount = 5 
org.quartz.threadPool.threadPriority = 5 

石英-config.xmlに:ここ

は、石英の設定についての詳細情報です

<?xml version='1.0' encoding='utf-8'?> 
<job-scheduling-data xmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd" 
    version="1.8"> 

    <schedule> 
     <job> 
      <name>mail-job</name> 
      <group>MYJOB_GROUP</group> 

      <description>The job description</description> 
      <job-class>svc.data.server.quartz.SimpleQuartzJob</job-class> 
     </job> 

     <trigger> 
      <cron> 
       <name>my-trigger</name> 
       <group>MYTRIGGER_GROUP</group> 
       <job-name>mail-job</job-name> 

       <job-group>MYJOB_GROUP</job-group> 
       <cron-expression>10 * * * * ?</cron-expression> 

      </cron> 
     </trigger> 
    </schedule> 
</job-scheduling-data> 

答えて

関連する問題