在 spring 个 bean 初始化后,我如何 运行 个作业?
How can I run jobs after spring beans is initialized?
我正在研究 Spring 4 mvc 和休眠
我想 运行 在服务器启动时使用从数据库获取数据的代码,然后执行一些业务逻辑
我可以把我的代码放在哪里我试着把代码放在哪里
org.springframework.web.servlet.support.AbstractDispatcherServletInitializer.onStartup(ServletContext)
但我无法使用@Autowired 变量
public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Autowired
TaskDAO task;
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { SpringRootConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] { SpringWebConfig.class };
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
task.getAllTasks()
// TODO Auto-generated method stub
super.onStartup(servletContext);
}
}
您无法自动装配变量,因为您的 class 不受 spring 管理。所以用 @Component
注释来注释你的 class。
然后您可以定义一个方法来执行您的逻辑(例如 onStartup 方法)并使用 @PostConstruct
注释对其进行注释,如本答案中所述。
How to call a method after bean initialization is complete?
会在bean初始化后执行方法
这可能是你的 class:
@Component
public class WebInitializer{
@Autowire
TaskDAO task;
@PostConstruct
private void onStartup(){
task.getAllTasks();
// Do whatever you want
}
}
我正在研究 Spring 4 mvc 和休眠 我想 运行 在服务器启动时使用从数据库获取数据的代码,然后执行一些业务逻辑
我可以把我的代码放在哪里我试着把代码放在哪里
org.springframework.web.servlet.support.AbstractDispatcherServletInitializer.onStartup(ServletContext)
但我无法使用@Autowired 变量
public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Autowired
TaskDAO task;
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { SpringRootConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] { SpringWebConfig.class };
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
task.getAllTasks()
// TODO Auto-generated method stub
super.onStartup(servletContext);
}
}
您无法自动装配变量,因为您的 class 不受 spring 管理。所以用 @Component
注释来注释你的 class。
然后您可以定义一个方法来执行您的逻辑(例如 onStartup 方法)并使用 @PostConstruct
注释对其进行注释,如本答案中所述。
How to call a method after bean initialization is complete?
会在bean初始化后执行方法
这可能是你的 class:
@Component
public class WebInitializer{
@Autowire
TaskDAO task;
@PostConstruct
private void onStartup(){
task.getAllTasks();
// Do whatever you want
}
}