Ứ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ínhsrc/main/resources: Tài nguyên và cấu hìnhsrc/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});
}
}