Lucee 7 dan Hala Tuju Projek
Apa baharu dalam Lucee 7 dan 7.1? Java 25, debugger DAP untuk VS Code, prestasi laju, Query of Queries, dan perubahan penting yang boleh mematahkan kod.

Kandungan
- Lucee 7 dan Hala Tuju Projek
- Konteks ringkas: dari Railo ke Lucee 7
- Ciri utama Lucee 7.0
- Apa yang baharu dalam Lucee 7.1
- Penyahpepijat langkah DAP untuk VS Code
- Java 25 sebagai garis dasar
- Penambahbaikan prestasi
- Query of Queries: sensitiviti huruf, enjin, dan kolam sambungan
- Sambungan guna koordinat Maven dan SecretProvider yang diperluas
- Perubahan penting 7.0 ke 7.1 yang boleh mematahkan kod
- Garis masa keluaran dan pembangunan semasa
- Ciri Utama Lucee 7 dan 7.1
- Soalan Lazim (FAQ)
- Sumber
Lucee 7 dan Hala Tuju Projek
Penulis: Thalhah · Tarikh: 16 Oktober 2026
Lucee 7 ialah keluaran utama yang mengubah asas enjin CFML: ia beralih kepada mod tunggal sahaja dan berhijrah ke Jakarta EE. Siri 7.1 pula menambah penyahpepijat langkah DAP untuk VS Code, menjadikan Java 25 garis dasar, dan membawa banyak penambahbaikan prestasi. Artikel ini meringkaskan apa yang baharu, apa yang boleh mematahkan kod sedia ada, dan ke mana projek ini menuju berdasarkan dokumentasi rasmi sahaja.
Konteks ringkas: dari Railo ke Lucee 7
Lucee lahir sebagai fork daripada Railo 4.2 dan diumumkan pada 29 Januari 2015, dijaga oleh Lucee Association Switzerland di bawah lesen LGPL 2.1 atau lebih baharu. Sejak itu projek ini bergerak pantas: Lucee 5 memperkenalkan pentadbiran berasaskan OSGi dan sistem sambungan, Lucee 6 membawa mod tunggal, dan kini Lucee 7 melengkapkan peralihan itu.
Jika anda baru berkenalan dengan platform ini, baca pengenalan kepada Lucee dan CFML untuk latar belakang penuh.
Ciri utama Lucee 7.0
Dua perubahan terbesar dalam 7.0 ialah mod tunggal dan Jakarta EE. Mod berbilang dibuang sepenuhnya, jadi hanya ada satu konteks web dan satu pentadbir. Ini mengubah cara konfigurasi dan sambungan diurus, dan sebab itu naik taraf terus dari 6.2 melalui pentadbir tidak disokong: anda perlu pemasangan baharu.
Perpindahan ke Jakarta EE bermakna semua import javax.* menjadi jakarta.*, dan anda memerlukan Tomcat 10.1 atau lebih baharu. Tomcat 9 tidak lagi disokong. Java 8 juga dibuang; minimum ialah Java 11, dengan Java 21 disyorkan sebagai sasaran rasmi 7.0.
Ciri lain dalam 7.0 termasuk sokongan AI yang sudah stabil melalui CreateAISession dan inquiryaisession, penghuraian AST melalui astFromPath dan astFromString, SecretProvider untuk menyimpan rahsia, carian vektor dan hibrid dalam Lucene 3, dan mod gelap untuk pentadbir. Pengedaran teras juga mengecil kira-kira 20MB kerana EHCache tidak lagi dibundel secara lalai dan dipindahkan ke sambungan.
Apa yang baharu dalam Lucee 7.1
7.1 ialah keluaran yang memfokuskan pada penyahpepijatan, prestasi, dan keserasian. Tiga perkara utama: penyahpepijat langkah asli untuk VS Code, Java 25 sebagai garis dasar, dan penambahbaikan Query of Queries supaya lebih serasi dengan Adobe ColdFusion. Sebahagian fungsi teras turut dialihkan ke sambungan berasingan supaya boleh dikemas kini secara bebas: SMTP, FTP, dan Compress kini sambungan, manakala HSQLDB dan pemacu JTDS dikeluarkan daripada teras.
Penyahpepijat langkah DAP untuk VS Code
Ini ciri utama 7.1. Lucee kini mempunyai penyahpepijat Debug Adapter Protocol (DAP) asli yang disepadukan terus dengan VS Code melalui sambungan Extension Debugger (dahulunya LuceeDebug). Anda mendapat titik putus baris dan fungsi termasuk titik putus bersyarat, pemeriksaan dan pengubahsuaian pemboleh ubah, penilaian hover, dan konsol CFML langsung dengan autolengkap.
Pentingnya, ia tidak menambah beban pengeluaran. Penyahpepijat menggunakan instrumentasi ExecutionLog sedia ada dengan bendera pemboleh ubah persekitaran, jadi apabila ia dimatikan, ia betul-betul mati. Tiada agen, tiada poling, tiada kesan prestasi.
Java 25 sebagai garis dasar
Java 25 kini menjadi garis dasar untuk Lucee 7.1; imej Docker dan pemasang membundel Java 25. Java 21 masih berfungsi, tetapi Java 25 memberikan prestasi terbaik dan merupakan versi yang diuji oleh pasukan. Peralihan ini meneruskan arah 7.0: Java 8 sudah tiada, dan Java 17 hingga 20 dielakkan kerana isu Unicode pada pengendalian tarikh. Jika anda menjalankan Lucee dalam Docker, baca panduan deploy Docker.
Penambahbaikan prestasi
7.1 membawa satu siri pengoptimuman yang kebanyakannya telus: kod sedia ada anda hanya berjalan lebih laju. Penyusun CFML jauh lebih pantas, jadi masa permintaan pertama dan penempatan lebih singkat. Mencipta tika CFC juga lebih cepat dan menggunakan kurang memori kerana property dan fungsi aksesor dijana sekali bagi setiap kelas dan dikongsi merentas semua tika, bukan dicipta semula setiap kali anda memanggil new. Baca panduan caching dan prestasi untuk gambaran penuh.
Query of Queries: sensitiviti huruf, enjin, dan kolam sambungan
Query of Queries (QoQ) mendapat tiga penambahbaikan utama. Pertama, pilihan sensitiviti huruf: perbandingan rentetan dalam QoQ secara tradisi tidak peka huruf besar kecil dalam Lucee, manakala Adobe ColdFusion peka huruf sejak ColdFusion MX 7. Kini anda boleh menghidupkan perbandingan peka huruf pada tiga peringkat: setiap query melalui struct dbtype, setiap aplikasi melalui this.query.qoq dalam Application.cfc, atau seluruh pelayan melalui pemboleh ubah persekitaran.
Kedua, pemilihan enjin: anda boleh memilih enjin asli, HSQLDB, atau auto secara eksplisit dan bukannya bergantung pada mekanisme jatuh balik. Ketiga, kolam sambungan HSQLDB: query QoQ yang jatuh balik ke HSQLDB kini menggunakan kolam tika pangkalan data terpencil, menghapuskan kesesakan di bawah beban serentak, dengan peningkatan daya pemprosesan kira-kira 2.4 kali ganda, daripada 30 ribu kepada 79 ribu operasi sesaat.
// Peka huruf dan paksa enjin HSQLDB melalui struct dbtype
var result = queryExecute(
"SELECT name FROM qry WHERE name LIKE '%mod%'",
{},
{ dbtype: { type: "query", caseSensitive: true, engine: "hsqldb" } }
);
Baca panduan Query of Queries untuk perincian penuh.
Sambungan guna koordinat Maven dan SecretProvider yang diperluas
Tag dan fungsi sambungan kini boleh menggunakan koordinat Maven, memudahkan pengurusan kebergantungan dan integrasi dengan ekosistem Java sedia ada. API SecretProvider pula diperluas dengan operasi set, remove, dan list, melengkapi get yang sedia ada, jadi anda boleh mengurus kitaran hayat rahsia sepenuhnya daripada CFML.
Perubahan penting 7.0 ke 7.1 yang boleh mematahkan kod
Perubahan paling ketara ialah susunan kunci struct tidak berurut. Susunan dalaman kunci struct tidak berangkai berubah dalam 7.1, jadi output serializeJSON untuk struct biasa mungkin menghasilkan kunci dalam susunan berbeza berbanding versi sebelumnya. Kod yang bergantung pada susunan kunci yang konsisten boleh patah, contohnya membandingkan rentetan JSON yang disirikan atau menjana markup tercache.
var s = { "data": {}, "includes": ["a.js"], "adhoc": {} };
// 7.0: {"data":{},"includes":["a.js"],"adhoc":{}}
// 7.1: susunan kunci mungkin berbeza, contohnya {"includes":["a.js"],"adhoc":{},"data":{}}
Penyelesaiannya mudah: gunakan structNew("ordered") atau structNew("linked") jika susunan penting, bandingkan struct yang dinyahsiri dan bukannya rentetan JSON mentah, atau gunakan structSort untuk output yang deterministik. Terdapat juga bendera sementara lucee.concurrent.map.impl=legacy untuk mengesahkan sama ada pepijat anda benar-benar berpunca daripada andaian susunan kunci.
Perubahan lain termasuk cara QoQ mengendalikan NULL semasa penyambungan rentetan, penjajaran kedudukan null dalam ORDER BY HSQLDB, dan penghalaan REST yang kini menggunakan pemarkahan kekhususan gaya JAX-RS. Jika anda berhijrah dari Adobe ColdFusion, lihat panduan migrasi.
Garis masa keluaran dan pembangunan semasa
Pada masa penulisan, siri 7.1 sudah stabil dengan 7.1.0.204 sebagai keluaran terkini, manakala 7.1.1 sedang dalam fasa release candidate. Siri 7.0 kekal diselenggara dengan 7.0.5.41 sebagai keluaran terkini; 7.0.4.34 dikeluarkan pada 4 Jun 2026. Lucee 6.2 kekal sebagai barisan LTS. Versi 8.0 pula sedang dibangunkan dalam barisan edge dengan binaan release candidate. Saya sengaja tidak menyenaraikan jadual masa hadapan di sini kerana ia tidak didokumenkan secara rasmi; semak laman muat turun untuk status terkini.
Ciri Utama Lucee 7 dan 7.1
Lucee 7.0 mengubah asas enjin, manakala 7.1 menumpukan pada penyahpepijatan, prestasi dan keserasian. Jadual ini meringkaskan ciri utama kedua-dua keluaran.
| Versi | Ciri | Keterangan |
|---|---|---|
| 7.0 | Mod tunggal | Mod berbilang dibuang, satu konteks web |
| 7.0 | Jakarta EE | import javax jadi jakarta, perlu Tomcat 10.1 |
| 7.0 | Sokongan AI | CreateAISession dan inquiryaisession |
| 7.1 | Penyahpepijat DAP | Titik putus VS Code, tanpa kesan prestasi |
| 7.1 | Java 25 | Garis dasar baharu, prestasi terbaik |
Baca panduan rasmi Lucee 7 dan 7.1 untuk senarai penuh setiap keluaran.
Soalan Lazim (FAQ)
Adakah Lucee 7.1 sudah stabil?
Ya. Siri 7.1 sudah berada dalam status STABLE dengan 7.1.0.204 sebagai keluaran terkini pada masa penulisan.
Perlukah saya naik taraf dari 7.0 ke 7.1?
Jika anda bergantung pada susunan kunci struct dalam serializeJSON, semak dahulu. Kebanyakan aplikasi boleh naik taraf tanpa masalah, tetapi uji suite anda kerana susunan kunci dan tingkah laku QoQ berubah.
Adakah Java 21 masih disokong dalam 7.1?
Ya. Java 21 masih berfungsi, tetapi Java 25 ialah garis dasar dan memberikan prestasi terbaik.
Apakah penyahpepijat DAP memerlukan pelayan berasingan?
Tidak. Ia berjalan secara asli dalam Lucee 7.1 melalui sambungan VS Code Extension Debugger, tanpa agen Java.
Apakah bendera lucee.concurrent.map.impl=legacy?
Ia bendera sementara untuk memulihkan susunan kunci struct sebelum 7.1, berguna untuk mengesahkan sama ada pepijat anda berpunca daripada andaian susunan kunci.