我有一个守护,可它需要插入数据到数据库.不知道怎样注入Bean服务,所以目前是这样的:
public static void main(String[] args) {
Thread daemon=new Thread(new DaemonRun());
daemon.setDaemon(true);
daemon.start();
SpringApplication.run(Application.class, args);
}
....
public class DaemonRun implements Runnable {
private DataService dataService;
public synchronized DataService getDataService(){
if(dataService==null)
dataService=(DataService)SpringApplicationContextHolder.getSpringBean("dataService");
return dataService;
}
有没有办法让DataService 自动注入DaemonRun同时DaemonRun又开机运行在一个独立线程里呢?
죄송합니다 여러분, 제가 직접 방법을 찾았습니다.: http://stackoverflow.com/ques...
답변에 따르면
@Component
클래스로 변경하면 ThreadRun이 DisposableBean을 구현합니다.... 그런 다음 구조에서 스레드를 시작하고 destroy에서 스레드를 닫으면 자동 주입을 사용할 수 있습니다
인터페이스의 빈을 자동으로 주입하겠다는 뜻인가요? Spring의 추상 클래스 Bean 또는 인터페이스 객체
주입을 참조하여 DataService가 주입을 위해 Runnable을 구현하는 추상 클래스를 생성할 수 있습니다. 그런 다음 확장하십시오.
beanFactory가 생성되면 Springbean의 Life Cycle이 완료되므로 객체가 생성될 때만 객체를 주입해야 하는데 이는 Spring의 개념과 충돌합니다.
다음은 stackoverflow에서 가져온 것입니다.
으아아아자동 주입을 사용하고 범위를 프로토타입으로 구성해 보세요.
이 스레드는 무엇에 사용되나요?