


Bagaimana untuk Mendayakan Skop Permintaan dalam Pelaksanaan Tugas Asynchronous?
Mendayakan Skop Permintaan dalam Pelaksanaan Tugas Asynchronous
Masalah:
Perkhidmatan web tak segerak perlu akses kacang berskop permintaan dalam pemprosesan tak segeraknya, terutamanya yang diberi penjelasan dengan @Scope(value = WebApplicationContext.SCOPE_REQUEST). Walau bagaimanapun, SimpleAsyncTaskExecutor tidak mengekalkan atribut permintaan terikat benang, yang membawa kepada pengecualian.
Penyelesaian:
Untuk mendayakan skop permintaan dalam pelaksanaan tugas tak segerak, TaskPoolExecutor tersuai dicipta bersama-sama dengan Boleh Panggil khas yang menyimpan dan mengosongkan konteks permintaan untuk urutan latar belakang.
Pelaksanaan:
Pelaksana Tersuai:
<code class="java">public class ContextAwarePoolExecutor extends ThreadPoolTaskExecutor { @Override public <t> Future<t> submit(Callable<t> task) { return super.submit(new ContextAwareCallable(task, RequestContextHolder.currentRequestAttributes())); } }</t></t></t></code>
Nota:
<code class="java">public class ContextAwareCallable<t> implements Callable<t> { private Callable<t> task; private RequestAttributes context; public ContextAwareCallable(Callable<t> task, RequestAttributes context) { this.task = task; this.context = context; } @Override public T call() throws Exception { if (context != null) { RequestContextHolder.setRequestAttributes(context); } try { return task.call(); } finally { RequestContextHolder.resetRequestAttributes(); } } }</t></t></t></t></code>
Kaedah ini hanya menyokong permintaan dan skop sesi, bukan konteks keselamatan.
Ia serasi dengan kedua-dua antara muka Boleh Dipanggil dan Boleh Dijalankan.<code class="java">@Configuration public class ExecutorConfig extends AsyncConfigurerSupport { @Override @Bean public Executor getAsyncExecutor() { return new ContextAwarePoolExecutor(); } }</code>
Atas ialah kandungan terperinci Bagaimana untuk Mendayakan Skop Permintaan dalam Pelaksanaan Tugas Asynchronous?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Javaremainsagoodlanguageduetoitscontinuousevolutionandrobustecosystem.1)

Javaisgreatduetoitsplatformindantrect, robustoopsupport, extensivelibraries, andstrongcommunity.1) platformindependenceviajvmallowscodetorunonvariousplatforms.2)

Lima ciri utama Java adalah polimorfisme, ekspresi lambda, streamsapi, generik dan pengendalian pengecualian. 1. Polimorfisme membolehkan objek kelas yang berbeza digunakan sebagai objek kelas asas biasa. 2. Ekspresi Lambda menjadikan kod lebih ringkas, terutama sesuai untuk mengendalikan koleksi dan aliran. 3.StreamsAPI dengan cekap memproses set data yang besar dan menyokong operasi deklaratif. 4. Generik menyediakan jenis keselamatan dan kebolehgunaan semula, dan kesilapan jenis ditangkap semasa penyusunan. 5. Pengendalian Pengecualian membantu mengendalikan kesilapan dengan elegan dan menulis perisian yang boleh dipercayai.

Java'stopfeaturessignificantelyedhanceitsperformanceAndscalability.1) Objek-OrientedPrincipleslikePolymorphismenableFlexiBleyDscalableCode.2)

Komponen teras JVM termasuk ClassLoader, Runtimedataarea dan ExecutionEngine. 1) Pemuat kelas bertanggungjawab untuk memuatkan, menghubungkan dan memulakan kelas dan antara muka. 2) Runtimedataarea mengandungi Methodarea, Heap, Stack, Pcregister dan Nativemethodstacks. 3) ExecutionEngine terdiri daripada penterjemah, Jitcompiler dan GarbageCollector, yang bertanggungjawab untuk pelaksanaan dan pengoptimuman bytecode.

Java'sSafetyandSecurityArebolsteredby: 1) Strongtyping, whichPreventStype-RelatedErrors; 2) AutomaticMemoryManagementViagriageGecollection, reducingMemory-RelatedVulnerabilities;

JavaoffersSeveralkeyfeaturesthatenHanceCodingsKills: 1) Objek-OrientedProgrammingallowSmodelingReal-Worldentities, exemplifiedBypolymorphism.2) ExceptleHandlingProvidesRobusRrormAragement.3)

TheJvmisacrucialComponentthatrunsjavacodeByTranslatingitintomachine-specificinstructions, impak, keselamatan, andporability.1) theclassloaderloads, pautan, andinitializesclasses.2)


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).
