0. Tulis di depan
Tips Friendly: Alamat unduhan di bawah ini.
Proyek ini pada dasarnya telah selesai. Dengan ringkasan ini, saya telah menulis 30 blog yang terkait dengan proyek ini, yang telah mengumpulkan banyak hal. Proses menulis blog adalah proses pemadatan ide. Ini sangat berguna bagi diri saya sendiri dan juga dapat membantu orang lain. Ngomong -ngomong, pasti akan ada banyak pengecualian dalam proses pembelajaran. Hal pertama yang perlu kita lakukan adalah menemukan pengecualian ini. Umumnya, satu atau lebih yang disebabkan oleh: xxx diikuti oleh pengecualian. Ini adalah penyebab pengecualian. Secara umum, kami mencari yang disebabkan oleh bagian bawah, yang seringkali merupakan akar dari masalah. Jika Anda tidak dapat menyelesaikannya sendiri, Anda dapat mencari di Google atau Baidu (jangan memposting banyak kelainan saat mencari, perhatikan bagian -bagian utama!). Secara umum, 99,9% dari masalah yang kami temui telah ditemui oleh para pendahulu kami, dan pada dasarnya semuanya dapat diselesaikan. Saya pada dasarnya melakukan ini ketika saya menghadapi masalah yang tidak dapat diselesaikan. Jika saya menyelesaikannya sendiri lebih banyak, saya akan merasakannya ~ Akhirnya, saya harap semua orang akan mendapatkan sesuatu saat membaca blog saya!
Saya tidak akan mengatakan omong kosong. Mari kita ringkas proyek mal online di bawah ini. Saya tidak akan membahas semuanya. Ini terutama dibagi menjadi beberapa modul untuk diringkas, termasuk teknologi mana yang digunakan, dll. Saya akan melampirkan tautan cepat ke detail spesifik dalam artikel. Anda dapat memeriksa artikel tertentu.
Mengingat proyek ini, dapat dibagi menjadi modul -modul utama ini:
--- membangun lingkungan proyek
--- membangun sistem manajemen backend
--- Bangun halaman tampilan meja depan
--- fungsi terkait keranjang belanja
--- fungsi pembayaran online
--- Kirim email dan pesan teks
--- aplikasi nama domain dan penyebaran proyek
--- Formulir Verifikasi dan Laporan Tampilan
Berikut ini adalah analisis khusus untuk setiap modul.
1. Konstruksi lingkungan proyek
Ini adalah tautan yang sangat diperlukan di setiap proyek, dan akan ada banyak masalah yang berantakan. Ketika saya pertama kali mulai belajar SSH, saya selalu berjuang untuk membangun lingkungan karena saya tidak terlalu terampil, tetapi saya hanya ingin membangunnya "berirama". Dengan kata lain, membangun proyek lingkungan membutuhkan langkah demi langkah, sedikit demi sedikit. Banyak orang akan mengimpor semua paket toples ke dalamnya, dan kemudian menulis semua file konfigurasi atau menempelkannya dari tempat lain, dan kemudian menjalankannya, dan kemudian menggantungnya ... dan kemudian menemukan berbagai masalah. Mengapa repot -repot? Dengan cara ini, bahkan jika Anda membangunnya 10 kali, Anda tidak akan dapat melakukannya dengan mudah. Anda harus makan nasi dalam satu gigitan, dan Anda harus berjalan selangkah demi selangkah.
Proses yang saya ikuti secara pribadi untuk konstruksi lingkungan SSH adalah:
Spring> Hibernate> Spring Integration Hibernate> Struts2> Spring Integration Struts2
Setelah setiap langkah, tulis tes tes. Ini sangat penting, karena jika Anda melangkah demi langkah, Anda akan tahu ke mana harus pergi jika Anda melakukan kesalahan dan ke mana menemukan masalahnya. Yang paling penting adalah bahwa jika Anda menjadi mahir dalam proses ini, akan mudah untuk mendapatkan lingkungan di lain waktu. Untuk informasi lebih lanjut tentang konstruksi lingkungan SSH, silakan lihat artikel berikut:
Integrasi Struts2, Hibernate4.3 dan Spring4.2
Penambahan Dasar, Penghapusan, Pencarian dan Modifikasi, Ekstraksi Layanan dan Tindakan, dan Mengganti XML dengan Anotasi
2. Bangun sistem manajemen backend
Saya menggunakan easyui untuk membangun sistem manajemen backend. Sejujurnya, saya hanya memiliki sedikit pemahaman tentang easyui. Saya tidak tahu banyak tentang hal-hal front-end, tetapi saya sedikit mengerti. Saya juga memeriksa semuanya ketika saya menggunakannya. Saya belum mempelajarinya secara sistematis, jadi saya tidak memiliki sistem pengetahuan yang baik, tetapi itu tidak mempengaruhi bermain. Programmer suka mengatakan bahwa mereka sedang memainkan teknologi, dan mereka terdengar cukup kelas atas. Saya secara bertahap terpengaruh dan saya suka mengatakan itu, tetapi saya benar-benar bermain dengan front-end ...
JQuery Easyui adalah kumpulan plug-in UI berdasarkan jQuery, dan tujuan jQuery easyui adalah untuk membantu pengembang web membuat antarmuka UI yang kaya akan fitur dan indah. Pengembang tidak perlu menulis javascript yang kompleks, juga tidak perlu memiliki pemahaman mendalam tentang gaya CSS. Yang perlu diketahui oleh semua pengembang adalah beberapa tag HTML sederhana.
Permintaan easyui adalah semua permintaan AJAX, dan tidak ada halaman baru yang akan muncul, semuanya ada di tab tab atau jendela muncul. Sistem manajemen backend terutama dibagi menjadi tiga bagian: manajemen kategori produk, manajemen produk dan manajemen penjualan. Manajemen penjualan terakhir.
2.1 Manajemen Kategori Produk
Bagian ini terutama melibatkan pembangunan kerangka kerja lingkungan dan latar belakang easyui, kueri cascading dan pagination basis data, tampilan data datagrid, integrasi struts2 JSON, dan penambahan kategori produk, penghapusan, pembaruan dan pencarian. Ini juga mengikuti urutan penyelesaian di bagian ini.
Datagrid menampilkan data dalam bentuk tabel, dan pengembang tidak perlu memiliki pengetahuan khusus untuk mengoperasikannya. Ini memiliki dokumen bantuan yang baik dan lebih rinci. Dalam proyek ini, saya juga telah memperkenalkan beberapa cara untuk membuat Datagrid, dan juga secara singkat memperkenalkan beberapa properti Datagrid. Itu adalah awal. Saya juga alat pengantar. Hanya dengan mengembangkan lebih banyak saya dapat menguasai teknologi ini.
Penambahan, penghapusan, pembaruan, dan fungsi pencarian kategori terutama menggunakan fungsi verifikasi yang disertakan dengan easyui. Saat menambahkan kategori produk, verifikasi apakah input dalam kotak input benar, apakah diperlukan, dll.; apakah garis tertentu atau beberapa baris dipilih terlebih dahulu saat menghapus; Saat memperbarui, hanya satu baris yang dapat diperbarui sekaligus, dll., Yang semuanya adalah permintaan AJAX.
Untuk informasi lebih lanjut tentang bagian ini, saya sudah mengklasifikasikannya, silakan merujuk ke artikel ini:
Gunakan easyui untuk membangun kerangka halaman backend. Menu easyui untuk mengimplementasikan kueri cascading dan pagination basis data. DataGrid Data Display Function Struts2 dan JSON terintegrasi Datagrid untuk mengimplementasikan kueri dan menghapus fungsi datagrid untuk mengimplementasikan penambahan dan memperbarui fungsi DataGrid untuk mengimplementasikan fungsi penambahan dan memperbarui fungsi
Inilah masalah yang saya temui:
Masalah Pengecualian Pemuatan Lazy di Struts2 dan JSON Integrasi Hibernate4 Eksekusi Simpan () atau pembaruan () tidak valid
2.2 Manajemen Produk
Manajemen produk juga mencakup operasi seperti menambahkan dan menghapus, yang sama dengan manajemen kategori. Ada satu hal yang menambahkan produk dan perlu mengunggah foto produk. Ini melibatkan fungsi Struts2 untuk mengimplementasikan unggahan file. Kita perlu membangun folder di sisi server untuk menyimpan file yang diunggah, dan kemudian menulis model untuk menerima file. Mengenai unggahan file, kita perlu menulis kelas alat secara khusus. Beginilah pengembangan dalam proyek ini. Kode umum harus diekstraksi, bahkan jika hanya ada satu kalimat kode, itu harus diekstraksi! Ini adalah kebiasaan dan harus dilakukan. Untuk detail spesifik, silakan merujuk ke artikel yang tercantum di bawah ini:
Modul dasar kategori produk dibangun dan permintaan dan menghapus fungsi produk diimplementasikan. Implementasi fungsi produk diimplementasikan. Implementasi fungsi unggahan file diimplementasikan.
3. Bangun halaman tampilan meja depan
Tentu saja, halaman front-end tidak dirancang oleh saya. Saya merangkum beberapa teknologi back-end yang terkait dengan tampilan front-end, seperti: pendengar memperoleh data halaman beranda, timer menyinkronkan data halaman beranda, dan cache cache level 2 hibernate 2 dari produk populer.
Ketika saya belajar Servlet, beginilah cara saya melakukan data tampilan beranda. Saya menggunakan bingkai dan menampilkan data di sebelah kanan. Kemudian saya melompat ke servlet di bagian kanan di index.jsp, dan kemudian pergi ke servlet untuk mengambil semua produk dari database, meletakkannya di bidang permintaan dan membawa halaman JSP baru untuk ditampilkan. Meskipun ini bisa dicapai, itu sangat bodoh. Di sini saya menggunakan pendengar untuk melakukan ini. Pertama, saya mendefinisikan pendengar sendiri, dan ketika proyek dimulai, saya mengambil semua informasi produk dalam database, memasukkannya ke dalam domain aplikasi, dan kemudian secara langsung menggunakan Expressions untuk mengambilnya dari domain aplikasi di beranda.
Ada masalah lain. Ketika saya menambahkan produk baru ke sistem manajemen, saya harus memulai kembali Tomcat untuk menambahkan produk baru ke domain aplikasi. Karena telah berada di domain aplikasi setelah pertama kali saya mengeluarkannya, itu bertekad untuk mati. Yang baru ditambahkan nanti tidak ada di domain aplikasi. Untuk menyelesaikan masalah ini, saya menggunakan timer untuk menyinkronkan data beranda. Jadi saya menulis ulang pendengar yang saya tulis sebelumnya, atur timer di pendengar, letakkan kode untuk mendapatkan data produk dalam database ke dalam tugas timer, dan jalankan segera untuk pertama kalinya, dan kemudian jalankan setiap 6 jam (waktu dapat diatur sendirian), yaitu, peroleh kembali produk dalam database setiap 6 jam dan hemat dalam dominasi sendiri), yaitu, peroleh kembali produk dalam basis data setiap 6 jam dan hemat dalam dominasi sendiri), yaitu, pertahankan kembali produk dalam database setiap 6 jam dan menghematnya dalam dominasi sendiri), yaitu, akui kembali dengan produk dalam database setiap 6 jam dan menghematnya dalam dominasi. Inilah yang dilakukan situs web umum, seperti beranda blog pribadi CSDN, peringkatnya diperbarui setiap hari, mungkin sekitar jam 10 malam, saya lupa waktu tertentu. Pada saat itu, penyegaran akan melihat pembaruan data, yang juga akan mengurangi tekanan pada server.
Untuk detail teknis tertentu di bagian ini, silakan merujuk ke artikel berikut:
Gunakan pendengar untuk mendapatkan data yang ditampilkan di beranda. Cara Mendapatkan Utas File Konfigurasi Musim Semi, Pengatur Waktu Sinkronisasi Halaman Beranda Data Hibernate Secondary Cache Processing Halaman Beranda Tampilan Populer
4. Fungsi terkait keranjang belanja
Teknologi utama yang terlibat dalam keranjang belanja meliputi: pemrosesan latar belakang logika keranjang belanja dan barang -barang belanja, login penilaian filter, pesanan cascading ke dalam database, dan caching halaman.
Untuk keranjang belanja, ini terutama berisi beberapa logika implementasi di backend. Ada barang -barang belanja di keranjang belanja. Apa artinya? Kita semua tahu bahwa ketika kita membeli barang -barang di Tmall, kita dapat memasukkan berbagai produk di keranjang belanja, dan kemudian ada banyak produk di keranjang belanja, dan setiap produk dapat memiliki banyak jumlah. Setiap produk dan informasi terkait adalah barang belanja. Oleh karena itu, saat menambahkan keranjang belanja, pertama -tama kita harus melengkapi barang belanja dan kemudian menambahkan barang belanja ini ke keranjang belanja.
Ketika pengguna ingin menyelesaikan, pertama -tama kita harus menentukan apakah pengguna telah masuk. Ini menggunakan teknologi filter, yang secara khusus memfilter jenis URL tertentu, dan menentukan apakah ada objek pengguna dalam sesi saat ini di filter. Jika ada indikasi bahwa login telah masuk, lepaskan saja secara langsung. Jika tidak, lompat ke halaman login untuk membiarkan pengguna login. Setelah masuk, lompat ke halaman yang awalnya diinginkan pengguna. Ini seperti penjaga pintu ~ melihat pintu ~
Seperti yang disebutkan sekarang, informasi pesanan termasuk keranjang belanja dan barang -barang belanja. Ketika kita memasukkan pesanan, kita harus mempertimbangkan masalah cascading mereka. Kita dapat mengatur atribut anotasi yang sesuai di pojos keduanya. Namun, ada prasyarat. Misalnya, jika ada korelasi kunci asing, bidang di bagian kunci asing dari POJO yang sesuai harus diberi nilai yang baik sebelum memasuki pojo. Misalnya, pesanan harus ditambahkan ke item baris, dan atribut pesanan dalam item baris juga harus diberi nilai yang baik sebelum dapat diserahkan kepada Hibernate. Hibernate mengalir ke perpustakaan sesuai dengan anotasi yang dikonfigurasi (atau file XML).
Masalah dengan caching halaman mengacu pada itu ketika pengguna mengkonfirmasi pesanan, jika dia mengklik kembali, dia akan kembali ke halaman konfirmasi pesanan. Halaman konfirmasi pesanan baru saja keluar lagi, dan sesi masih ada, dan informasinya masih informasi sekarang. Ini jelas bukan hasil yang kami inginkan. Kita perlu memprosesnya di meja depan dan backend secara bersamaan.
Silakan merujuk ke artikel berikut untuk detail teknis tertentu di bagian ini:
Implementasi Fungsi Dasar Filter Belanja Belanja untuk mewujudkan fungsi login untuk menentukan penyimpanan cascading dan masalah caching halaman informasi pesanan
5. Fungsi Pembayaran Online
Bagian ini terutama memperkenalkan beberapa hal tentang antarmuka pembayaran YIBAO. Faktanya, fungsi pembayaran online berbeda untuk pihak ketiga yang berbeda. Tujuan utamanya adalah untuk memahami proses pengembangan fungsi pembayaran online. Detail teknis spesifik tergantung pada informasi yang diberikan oleh pihak ketiga tertentu. Tetapi proses umum adalah: memanggil antarmuka pihak ketiga> memanggil antarmuka bank> menyelesaikan pembayaran> pihak ketiga melompat kembali ke halaman yang kami tentukan.
Bagian ini juga melibatkan teknologi penting, yang merupakan bagaimana Struts2 menangani banyak permintaan model. Secara umum, Struts2 dapat menggunakan model dalam aksi setelah menerapkan Modedriven <Model>, tetapi bagaimana jika ada dua model sekarang? Ada antarmuka lain yang disebut ParametersAware di Struts2. Selama antarmuka ini diimplementasikan dan peta yang menyimpan parameter didefinisikan, dapat menerima semua parameter dalam permintaan permintaan. Kami dapat menilai model mana yang akan digunakan berdasarkan parameter yang berbeda. Metode ini dapat menyelesaikan masalah struts2 menangani beberapa permintaan model.
Untuk detail teknis di bagian ini, silakan merujuk ke posting blog berikut:
Pengantar platform pembayaran online, demo proses pembayaran Yibao
Dapatkan tampilan ikon bank dan halaman pembayaran untuk menyelesaikan logika fungsi pembayaran online bagaimana menangani beberapa permintaan model di struts2
6. Fungsi Kirim Email dan SMS
Pengiriman email dan mengirim pesan teks relatif sederhana. Mereka berdua adalah API tetap, hanya tahu cara menggunakannya. Periksa saja, dan saya juga tidak dapat mengingatnya. Fungsi pengiriman email perlu mengimpor paket mail.jar, dan kemudian mengirim email sesuai prosesnya. Fungsi SMS pertama -tama harus berlaku untuk fungsi pengirim SMS. Setelah aplikasi selesai, pihak ketiga akan memberi kami beberapa antarmuka API. Kami dapat mengembangkan fungsi pengiriman SMS selama kami merujuknya. Ini agak mirip dengan fungsi pembayaran, dan mereka semua bergantung pada platform pihak ketiga.
Tidak ada kesulitan teknis di bagian ini, terutama prosesnya, artikel terkait adalah sebagai berikut:
Kirim Fungsi SMS Setelah Pembayaran Pesanan Sukses selesai menggunakan email Java untuk pengguna
7. Aplikasi untuk Domain Namespace dan Penyebaran dan Pelepasan Proyek
Bagian ini terutama memperkenalkan cara mendaftar untuk ruang nama domain gratis (gratis hanya untuk 15 hari ~ tetapi untuk belajar, cukup ~). Meskipun tidak semuanya gratis, kami terutama perlu mencari tahu proses ini. Lebih baik melewatinya sendiri. Itu tidak harus mengunggah proyek lengkap. Halaman JSP atau halaman statis HTML baik -baik saja.
Ada dua cara utama untuk menggunakan dan menerbitkan proyek: satu adalah mengunggah menggunakan FTP, tetapi ini lambat dan mungkin kehilangan data. Pengalaman pribadi adalah mengeluarkannya sedikit demi sedikit; Cara lain adalah mengajukan ruang nama domain untuk menyediakan lingkungan penyebaran. Kami hanya perlu mengekspor proyek sebagai paket perang dan kemudian menggunakan paket perang.
Ada banyak detail yang harus diperhatikan sebelum proyek digunakan, seperti memodifikasi beberapa jalur, memodifikasi beberapa data, dll. Rincian ini dijelaskan secara rinci di blog saya. Bagian ini berisi satu artikel, sebagai berikut:
Aplikasi untuk ruang nama domain dan penyebaran dan pelepasan proyek
8. Formulir Verifikasi dan Laporan Tampilan
Beberapa hal ditambahkan kemudian, yang secara dinamis memperbarui jumlah produk dalam keranjang belanja, verifikasi formulir dan tampilan laporan.
Jumlah produk dalam pembaruan dinamis keranjang belanja adalah teknologi AJAX murni. Saya baru saja mempelajarinya. Verifikasi formulir terutama adalah bentuk login. Saya tidak masuk dalam proyek ini, tetapi saya membuat formulir login dan fungsi verifikasi juga dilakukan. Penggunaan utama adalah plug-in verifikasi validasi jQuery. Plug-in ini masih sangat kuat. Anda dapat secara langsung menambahkan formulir login ke proyek dan mengatur lompatan yang sesuai. Penggunaan utama jschart untuk tampilan laporan adalah jschart. Alat ini sangat berguna dan dapat menghasilkan kode JS respons. Yang perlu kita lakukan adalah mengirim permintaan AJAX ke backend, mengambil data dari backend sesuai dengan kebutuhan aktual, dan meneruskannya ke frontend untuk menampilkannya dengan grafik jschart.
Saya akan mencantumkan posting blog di bagian ini di bawah ini:
Gunakan Teknologi AJAX untuk memperbarui kuantitas produk sebagian dan total harga verifikasi validasi validasi untuk menampilkan laporan penjualan produk di latar belakang menggunakan teknologi jschart
Ini adalah proyek mal online yang telah banyak menulis. Kode sumber dalam saluran unduhan CSDN disinkronkan dengan blog saya. Jika Anda membutuhkannya, Anda dapat mengunduh kode sumber yang saya unggah di CSDN (gratis ~ semua sumber daya saya gratis). Jika saya ingin terus memperbaikinya nanti, saya akan memasukkannya ke dalam github saya. Setiap orang juga dipersilakan untuk mengikuti Proyek Bintang GitHub (walaupun itu rata -rata ~) yang saya unggah ~ Berikut ini adalah alamat unduhan khusus:
Download Address (Sinkronisasi dengan Konten Blog)
Alamat unduhan GitHub (jika ada pembaruan nanti, itu akan ditempatkan di sini)
Alamat asli: http://blog.csdn.net/eson_15/article/details/51479994#download
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.