Spring定时器执行一个方法,方法内调用Dao接口的实现类,Dao通过Spring框架注入,但是执行后输出值

qq_23214563 qq_23214563 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这个是定时器执行的类:
private searchDataDao dao;
private List<searchData> list;

public void InsertData(){

System.out.println("定时程序进入");
System.out.println(dao);
list=dao.findAll();

System.out.println("查询后数据"+list.size());

Dao接口:
public interface searchDataDao {
List<searchData> findAll();
}

Dao接口的实现类:
public List<searchData> findAll() {
String hql="from searchData ";
Session session=getSessionFactory().openSession();
Query query=session.createQuery(hql);
System.out.println("查询数据库");

List<searchData> list= query.list();

System.out.println("查询的数据是"+list.get(0));

session.close();
return list;

Spring配置文件:
<bean id="QuartzJob" class="com.gtjc.quartz.QuartzJob" scope="prototype">
<property name="dao" ref="searchDataDao"></property>
</bean>

<bean id="searchDataDao" class="com.gtjc.quartz.dao.impl.searchDataDaoImpl"
scope="singleton">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>

定时器配置文件:
<!-- 配置作业类 -->
<bean id="job2"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<bean class="com.gtjc.quartz.QuartzJob" />
</property>
<property name="targetMethod" value="InsertData" />
<property name="concurrent" value="false" /> <!-- 作业不并发调度 -->
</bean>

<!-- 配置作业调度的触发方式(触发器) -->
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="job2" />
<property name="startDelay" value="5000" /><!-- 调度工厂实例化后,经过0秒开始执行调度 -->
<property name="repeatInterval" value="10000" /><!-- 每2秒调度一次 -->
</bean>

<!-- 配置调度工厂 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="simpleTrigger" />
</list>
</property>
</bean>
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
qq_23214563
Java EE 67,535 成员 225,843 内容