मैं जानना चाहता हूं कि मैं अपने काम में इंजेक्शन का उपयोग करके गुइस का उपयोग कैसे कर सकता हूं। जैसा कि मैं डिफ़ॉल्ट कन्स्ट्रक्टर पर @ इंजेक्ट का उपयोग नहीं कर सकता, क्या मैं इसे सीधे विशेषता के रूप में उपयोग कर सकता हूं (मुझे हमेशा PersonDAO के साथ एक NullPointerException मिला है)? मुझे पता है कि एक डीएओ के पास यहां कुछ भी नहीं है लेकिन यह सिर्फ परीक्षण के लिए है।मेरी क्वार्ट्ज नौकरी में इंजेक्शन
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 ...
}
}
मेरी मॉड्यूल में मैं निम्नलिखित घोषणा की है:
bind(PersonDao.class).to(HibernatePersonDaoImpl.class);
असल में मैं PersonDao यहाँ का उपयोग क्योंकि मैं जानता हूँ कि यह इंजेक्शन के साथ एक और वर्ग के भीतर काम करता है (लेकिन इंजेक्शन निर्माता स्तर पर किया जाता है क्या आप वहां मौजूद हैं)।
क्या कोई मुझे सलाह दे सकता है?
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:
यहाँ क्वार्ट्ज config बारे में अधिक जानकारी है
<?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>