2

我正在使用 Spring MVC 3.05。

我想知道创建引导类的最佳方法是什么?想想 Grails。在以前的项目中,我相信另一个人声明了一个 spring bean 和一个调度程序,但我也记得它有点难看:

<bean id="bootstrap" class="com.jobs.Bootstrap" />

<task:scheduler id="SpringScheduele" />
<task:scheduled-tasks scheduler="SpringScheduele">
<task:scheduled ref="bootstrap" method="onServerStart" fixed-delay="5000000000" /
</task:scheduled-tasks>

我相信这会让它在启动时触发,然后等到它再次触发。不是很理想。

public class Bootstrap {

    public void onServerStart() {
        System.out.println("....");        
    }    
}

有一个更好的方法吗?

4

2 回答 2

2

您必须创建一个实现ApplicationListener并监听Co​​ntextRefreshedEvent的 bean :

@Component
public class Bootstrap implements ApplicationListener<ContextRefreshedEvent> {
    @Override
    void onApplicationEvent(ContextRefreshedEvent event) 
        ...  
    }    
}
于 2012-04-12T15:26:06.507 回答
1

我想你可以创建一个实现的类InitializingBean,例如:

public class Bootstrap implements InitializingBean {
    @Value("${my.prop.value}")
    Integer somePropValue;

    @Overrides
    public void afterPropertiesSet() {
        // runs after constructor & setter injection
    }
}
于 2012-04-12T13:48:02.550 回答