@Autowiredインジェクション構成クラスレポート制御ピン異常


リスニングクラス注入プロファイル空ポインタ異常
問題1.スレッドプールのパラメータをymlファイルに抽出して設定し、ymlの構成を読み込む必要があります.
問題2.リスニングクラス、またはタイミングタスクでデータベースサービス、mapper、またはプロファイル内の構成を操作する必要がある場合、@autowiredでも@componentでも、自分でbeanオブジェクト実装を手動で取得する必要があるというシーンが一般的です.2つの方法で入手できます
方法1
ApplicationContextAwareメソッドを実装し、アプリケーションContext.getBean(TsReservationServices.class)メソッド注入が必要なbeanシーンを取得する:サービス層のbeanを取得してビジネスロジック処理を実現する必要がある
import org.springframework.context.ApplicationContextAware;

@Component
public class FindJob implements ApplicationContextAware {

    private static ApplicationContext applicationContext = null;

    @Scheduled(fixedDelay = 1000 * 60)
    public void find() {
        System.out.println("          !^_^");
        //       Bean
        applicationContext = FindJob.getApplicationContext();
        TsReservationService tsReservationService = applicationContext.getBean(TsReservationService.class);
        TaskService taskService = applicationContext.getBean(TaskService.class);
        }

方法2
注記@PostConstructシーンを使用:プロファイルをアプリケーションする必要があります.propertiesの構成はリスニングクラスに読み込まれます

@Component
public class InjectUtil {

    @Autowired
    public PDFConfig config;//              
    
    private InjectUtil (){}
    
    @PostConstruct
    public void init(){
        InjectUtil.getInstance().config = this.config;
    }

    private static class SingletonHolder {
        private static final InjectUtil INSTANCE = new InjectUtil();
    }

    public static final InjectUtil getInstance() {
        return SingletonHolder.INSTANCE;
    }

    public PDFConfig getConfig(){
        return InjectUtil.getInstance().config;
    }
}

リスニングクラスで使用する場合は、ツールパッケージinjectUtilでPDFコンフィギュレーションを取得できます.
@Component
public class PDFBuilder extends PdfPageEventHelper {
	 //   
        public void addPage(PdfWriter writer, Document document) throws IOException, DocumentException {
			 PDFConfig config = InjectUtil.getInstance().config;//          
			 }
 }