Hệ Thống Đặt Món Ăn Trường Học Sử Dụng WeChat Mini Program và Web Quản Trị

Ứng dụng công nghệ Java trong logic backend

Java đóng vai trò quan trọng trong xử lý logic phía server nhờ khả năng đa nền tảng, hệ sinh thái phong phú và hỗ trợ doanh nghiệp mạnh mẽ. Sự phát triển từ kiến trúc Servlet truyền thống đến kiến trúc microservice hiện đại giúp Java duy trì vị thế trong phát triển ứng dụng doanh nghiệp.

@WebServlet("/chao")
public class ChaoServlet extends HttpServlet {
    protected void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
        res.setContentType("text/html");
        PrintWriter writer = res.getWriter();
        writer.println("<h1>Xin chào, Java Backend!</h1>");
    }
}

Sử dụng và thực hành framework SpringBoot

Cấu hình cơ bản của SpringBoot

SpringBoot giúp đơn giản hóa phát triển ứng dụng Spring với cấu hình mặc định thông minh. Cấu trúc dự án chuẩn bao gồm:

  • src/main/java: Mã nguồn chính
  • src/main/resources: Tài nguyên và cấu hình
  • src/test/java: Kiểm thử

Tương tác cơ sở dữ liệu

SpringBoot hỗ trợ tích hợp JPA để quản lý dữ liệu:

public interface NguoiDungRepository extends JpaRepository<NguoiDung, Long> {
    List<NguoiDung> timTheoTen(String ten);
}

Các tính năng nâng cao

Quản lý giao dịch

@Transactional
public class DonHangService {
    public void taoDonHang(DonHang donhang) {
        // Xử lý tạo đơn
    }
}

Bảo mật với Spring Security

@EnableWebSecurity
public class CauHinhBaoMat extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
            .antMatchers("/congkhai/**").permitAll()
            .anyRequest().authenticated();
    }
}

Thiết kế giao diện và tương tác trên WeChat Mini Program

Cơ bản về Mini Program

WeChat Mini Program sử dụng WXML cho cấu trúc và WXSS cho giao diện:

<view class="danhsach">
  <block wx:for="{{danhsachmon}}" wx:key="id">
    <text>{{item.ten}}</text>
  </block>
</view>

Thực hành tương tác frontend

Xử lý sự kiện và liên kết dữ liệu:

Page({
  onTap: function() {
    wx.navigateTo({url: '/trang-chi-tiet'});
  }
});

Xử lý mạng và dữ liệu

wx.request({
  url: 'https://api.example.com/monan',
  success: res => this.setData({danhsachmon: res.data})
});

Tích hợp API giữa backend và frontend

Thiết kế API RESTful

Nguyên tắc thiết kế:

  • Sử dụng HTTP methods: GET, POST, PUT, DELETE
  • Đặt tên tài nguyên bằng danh từ số nhiều: /monan, /donhang
  • Mã trạng thái HTTP chuẩn: 200, 201, 400, 404

Tích hợp API

Sử dụng Swagger cho tài liệu API:

@Configuration
@EnableSwagger2
public class CauHinhSwagger {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2).select().build();
    }
}

Cơ chế xác thực người dùng

Quy trình xác thực JWT:

public String taoJWT(String tenDangNhap) {
    return Jwts.builder()
        .setSubject(tenDangNhap)
        .signWith(SignatureAlgorithm.HS512, SECRET_KEY)
        .compact();
}

Hiển thị món ăn và quản lý đơn hàng

Thiết kế hiển thị món ăn

Cấu trúc dữ liệu món ăn:

{
  "id": 101,
  "ten": "Phở Bò",
  "gia": 45000,
  "anh": "/images/pho.jpg"
}

Giỏ hàng và xử lý đơn hàng

Logic giỏ hàng:

class GioHang {
    constructor() {
        this.danhSach = [];
    }
    
    themMon(mon) {
        const tonTai = this.danhSach.find(m => m.id === mon.id);
        tonTai ? tonTai.soLuong++ : this.danhSach.push({...mon, soLuong:1});
    }
}

Thẻ: Java SpringBoot WeChat-Mini-Program restful-api JWT

Đăng vào ngày 9 tháng 7 lúc 01:39