Rumah > Artikel > hujung hadapan web > Bolehkah nodejs melaraskan antara muka java secara langsung?
Dalam pembangunan web, kita selalunya perlu menggunakan pelbagai bahasa dan pelbagai rangka kerja teknikal untuk melengkapkan aplikasi yang lengkap. Sebagai contoh, perkhidmatan bahagian belakang mungkin ditulis dalam Java dan bahagian hadapan mungkin menggunakan rangka kerja React atau Vue.js. Dalam kes ini, kami mahu dapat menggunakan bahasa atau rangka kerja teknologi yang sama untuk memudahkan proses pembangunan. Node.js ialah satu penyelesaian yang sangat popular.
Node.js ialah persekitaran JavaScript yang berjalan pada bahagian pelayan dan menggunakan Chrome V8 sebagai penterjemahnya. Node.js boleh digunakan bukan sahaja untuk menulis perkhidmatan hujung belakang, tetapi juga untuk membina alat baris arahan dan kadangkala untuk menulis kod bahagian hadapan. Node.js ialah projek sumber terbuka dan percuma yang sangat mudah digunakan dan mempunyai banyak modul pihak ketiga yang sangat baik tersedia. Oleh itu, ia digunakan secara meluas dalam pembangunan web.
Java ialah satu lagi bahasa pengaturcaraan yang sangat popular yang sangat baik dalam menulis perkhidmatan bahagian belakang. Java mempunyai ekosistem yang besar, dengan banyak perpustakaan dan rangka kerja pihak ketiga yang matang dan boleh dipercayai tersedia. Java sering digunakan sebagai bahasa pembangunan utama untuk aplikasi peringkat perusahaan.
Node.js dan Java mempunyai kelebihan dan ciri tersendiri, dan ia juga boleh berfungsi dengan baik bersama-sama. Dalam banyak kes, kami mahu dapat memanggil antara muka Java secara langsung dalam aplikasi Node.js untuk mendapatkan beberapa fungsi yang disediakan oleh kod Java.
Malah, adalah sangat mudah untuk menghubungi terus antara muka Java dalam Node.js. Terdapat beberapa kaedah yang tersedia, termasuk menggunakan Antara Muka Asli Java (JNI) dan menggunakan protokol HTTP untuk berkomunikasi dengan perkhidmatan Java.
Menggunakan Java Native Interface (JNI)
Java Native Interface (JNI) ialah teknologi Java yang membolehkan aplikasi Java memanggil fungsi perpustakaan yang ditulis dalam bahasa lain. JNI membolehkan aplikasi Java berkomunikasi dengan fungsi perpustakaan yang ditulis dalam C, C++, Python, Ruby dan bahasa lain. Jika kita mahu memanggil antara muka Java secara langsung dalam Node.js, JNI ialah alat yang sangat baik.
Menggunakan JNI memerlukan kami menulis beberapa kod JNI dan memautkan Pustaka Asli Java ke dalam kod Node.js kami. Pertama, kita perlu menulis kod Java untuk mencipta antara muka Java yang perlu dipanggil. Kami kemudiannya perlu menggunakan spesifikasi JNI untuk mencipta beberapa kod asli supaya Node.js boleh berkomunikasi dengan kod Java.
Dalam Node.js, kami menggunakan modul nod-java untuk mengendalikan Mesin Maya Java (JVM) dan membenamkan antara muka Java ke dalam kod Node.js kami. Modul node-java ialah alat yang sangat berkuasa yang menyediakan kami set API yang kaya untuk membenamkan kod Java dengan mudah ke dalam aplikasi Node.js kami.
Sebagai contoh, kita boleh menggunakan kod berikut untuk memanggil antara muka Java melalui JNI dalam Node.js:
const java = require('node-java'); java.classpath.push('/path/to/java/class/files'); const StaticClass = java.import('com.example.StaticClass'); const result = StaticClass.add(1, 2); console.log(result);
Berkomunikasi dengan perkhidmatan Java menggunakan protokol HTTP
Dalam beberapa kes , kami mungkin tidak mahu membenamkan kod Java ke dalam aplikasi Node.js, tetapi mahu berinteraksi dengan perkhidmatan Java melalui komunikasi rangkaian. Oleh itu, kami boleh mencipta perkhidmatan Java dan menyediakan satu set API RESTful melalui protokol HTTP supaya aplikasi Node.js boleh mengakses perkhidmatan tersebut.
Kami boleh menggunakan rangka kerja Java seperti Spring Boot untuk mencipta perkhidmatan Java dan menggunakan protokol HTTP untuk menyediakan API RESTful. Kemudian, kami menggunakan perpustakaan klien HTTP seperti axios dalam aplikasi Node.js untuk mengakses perkhidmatan Java dan memanggil antara mukanya:
const axios = require('axios'); const response = await axios.post('http://java-service-url/path/to/api', { key: 'value' }, { headers: { 'Content-Type': 'application/json', }, }); console.log(response.data);
Ringkasan
Node.js boleh terus memanggil Antara Muka Java, menggunakan Antara Muka Asli Java (JNI) dan protokol HTTP kedua-duanya boleh dilaksanakan. Menggunakan JNI memerlukan menulis beberapa kod JNI dan memautkan pustaka asli Java ke dalam kod Node.js menggunakan protokol HTTP memerlukan membuat perkhidmatan Java dan menggunakan API RESTful untuk menyediakan antara muka. Tidak kira kaedah yang digunakan, Node.js boleh berfungsi dengan Java untuk menyediakan kefungsian lengkap untuk aplikasi web.
Atas ialah kandungan terperinci Bolehkah nodejs melaraskan antara muka java secara langsung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!