Hi, trước giờ em học java, C# toàn chạy trên console hoặc các app mini. Không biết trong các hệ thống, ứng dụng lớn có sử dụng hàm main để launch app không? Dù app có to cỡ nào cũng cần hàm main đúng không ạ? Nhưng em code java servlet không có hàm main nào cả mà web vẫn chạy, query database như bình thường? Mong được giải thích, em cảm ơn.
Khởi chạy ứng dụng không cần hàm main
Một cái app sẽ có một Entry Point là cái hàm sẽ được gọi khi khởi động ứng dụng.
Ở rất nhiều chỗ thì nó mặc định nó sẽ tên là main nhưng nó không phải là quy tắc bắt buộc đặt tên như vậy. Ở nhiều chỗ khác có thể tên là user_app, app_main, WinMain… hoặc một cái tên bất kỳ nào đó và người lập trình có thể chọn được entry point là hàm nào.
Ở nhiều ngôn ngữ, công nghệ, entry point sẽ được ẩn đi chứ không phải nó không cần, không có.
Ở nhiều ngôn ngữ script khác thì sẽ có một ứng dụng khác đọc và thực thi script nên cũng không thấy có hàm main.
Có chứ cậu
Như @Duong_Act đề cập, sẽ luôn có một nơi được gọi là entry point. Khi cậu code các phần mềm thông thường, đó chính là hàm main của cậu. Nhưng, đôi khi, khi cậu dùng một framework nào đó chẳng hạn, hàm main sẽ được ẩn đi bởi framework, và cậu chỉ cần viết code cho phần entry point mà framework đó định nghĩa/quy định thôi.
Ở servlet, cậu chỉ code phần “mở rộng” xử lý business logic của cậu thôi. Main method sẽ được gọi từ container của servlet ấy (trong TH cậu deploy servlet lên tomcat, thì tomcat chính là “container”).
Thế nên, cậu không cần main method ở java servlet.
Tựu chung lại:
- Main method luôn tồn tại, dù nó có thể được ẩn đi bởi các framework.
- Mỗi framework sẽ có thể định nghĩa lại entry point của riêng nó. Đó là lý do cậu đôi khi sẽ không thấy hàm main này.
Hope it helps!