Giáo trình Lập trình Java - Bài 5: Bean và DI

Trước hết phải upload file 

 public String send( @RequestParam("attach") MultipartFile attach) Sau đó đính kèm file với phương thức addAttachment(name, file) String fileName = attach.getOriginalFilename(); String path = context.getRealPath("/images/" + fileName); helper.addAttachment(fileName, new File(path));

pdf38 trang | Chia sẻ: huongthu9 | Lượt xem: 449 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Giáo trình Lập trình Java - Bài 5: Bean và DI, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LẬP TRÌNH JAVA 5 BÀI 5: BEAN & DI MỤC TIÊU Hiểu DI là gì? Xây dựng và sử dụng Bean Sử dung @Autowire và @Qualifier Sử dụng bean CommonsMultipartResolver để upload file lên server Sử dụng bean JavaMailSender để gửi email Xây dựng bean gửi email XÉT TÌNH HUỐNG VỀ DEPENDANCE Giả sử chúng ta có lớp Company nắm giữ thông về doanh nghiệp như tên công ty, khẩu hiệu và logo. Trong website chúng ta muốn sử dụng lớp này để làm việc về thông tin doanh nghiệp. Rõ ràng các lớp trong website phụ thuộc vào lớp Company. Vì vậy khi chúng ta muốn thay đổi thông tin của doanh nghiệp thì phải hiệu chỉnh lại mã các lớp trong website và dịch lại ứng dụng Vấn đề đặt ra là làm thế nào để thay đổi thông tin doanh nghiệp mà không phải hiệu chỉnh lại mã của website. DEPENDANCE INJECTION DI là cách truyền một module vào một module khác thông qua cấu hình XML hay viết mã dưới sự hỗ trợ của DI container Spring framework có trang bị DI container nên có thể thực hiện DI một cách dễ dàng DI được dùng để làm giảm sự phụ thuộc giữa các module, dễ dàng hơn trong việc thay đổi module, bảo trì code và testing. DEPENDANCE INJECTION Để cụ thể hóa DI chúng ta xét lớp bean Company gồm 3 thuộc tính Name: tên công ty Slogan: khẩu hiệu Logo: anh logo KHAI BÁO BEAN Mong muốn tạo một đối tượng từ Company chứa thông tin của một doanh nghiệp và được sử dụng trong website nhưng khi thay đổi thông tin sang doanh nghiệp khác thì không phải dịch lại website Để đạt được mong muốn trên bạn cần khai báo bean trong file cấu hình của Spring. DI container sẽ tạo đối tượng khi khởi khởi động. INJECTION (TIÊM) Sau khi bean được khai báo nó có thể được tiêm vào các thành phần khác để sử dụng bằng cách sử dụng @Autowired và @Qualifier Bean đã được tiêm vào và sẵn sàng phục vụ các action trong Controller Sử dụng bean đã tiêm vào HIỂN THỊ THÔNG TIN DOANH NGHIỆP View index.jsp được thiết kế để hiển thị thông tin doanh nghiệp. DEMO Giải thích home/index.htm + Xây dựng bean + Cấu hình + Sử dụng @Autowired CÁCH DI @Autowired được sử dụng để tiêm bean vào Controller dưới 3 hình thức sau Tiêm vào field Tiêm thông qua constructor Tiêm thông qua setter DEPENDANCE INJECTION Bằng cách nào để DI container nhận biết được bean nào để truyền vào cho Controller khi sử dụng @Autowired? @Autowired sẽ nhận biết bean thông qua kiểu dữ liệu. DEPENDANCE INJECTION Khi có nhiều bean cùng kiểu dữ liệu thì @Autowired không là chưa đủ để xác định bean nào được truyền vào mà cần phải có thêm @Qualifier để nhận biết qua id BEAN TỰ KHAI BÁO Lớp bean được chú thích bởi @Component hoặc @Service, @Repository sẽ tự khai báo mà bạn không cần phải khai báo bằng tay vào file cấu hình. Tuy nhiên bạn cần phải khai báo package chứa bean vào <context:component-scan base-package="poly.controller, poly.components"/> Sử dụng dấu phẩy để phân cách các package. VÍ DỤ BEAN TỰ KHAI BÁO Mã gửi email sẽ được hướng dẫn viết sau Bean tự khai báo với id là mailer UPLOAD FILE Upload file là một chức năng quan trọng trong ứng dụng web Các ứng dụng thường gặp Gửi mail có kèm file Upload hình đại diện trên facebook, gmail Upload video lên Youtube Nộp hồ sơ xin việc Nộp bài học lên LMS  THƯ VIỆN VÀ CẤU HÌNH BEAN Để upload file, trước hết bạn cần khai báo bean CommonsMultipartResolver vào file cấu hình Mặc định tổng kích thước file là 2MB. Bạn có thể cấu hình thuộc tính maxUploadSize để thay đổi thông số này Thư viện cần thiết commons-fileupload-1.2.2.jar commons-io-1.3.2.jar UPLOAD FILE CASE STUDY FORM UPLOAD FILE Form upload file bắt buộc các thuộc tính method=“POST” enctype=“multipart/form-data” XỬ LÝ FILE UPLOAD MULTIPARTFILE API Phương thức Công dụng isEmpty() Kiểm tra xem có file upload không getOriginalFilename() Lấy tên file gốc transferTo(File) Chuyển file đến đường dẫn mới getContentType() Lấy kiểu file getSize() Lấy kích thước file getBytes() Lấy nội dung file getInputStream() Lấy luồng dữ liệu để đọc file XÂY DỰNG VIEW HIỂN THỊ FILE UPLOAD DEMO Giải thích upload/form.htm + Thư viện + Cấu hình + form và controller LẬP TRÌNH JAVA 5 PHẦN 2 GỬI EMAIL Chức năng gửi email đóng vai trò vô cùng quan trọng trong ứng dụng web Email kích hoạt tài khoản Thông thường sau khi đăng ký thành viên thành công hệ thống sẽ gửi cho chúng ta một email chào và có liên kết để kích hoạt tài khoản. Đơn đặt hàng Sau khi đặt hàng chúng ta cũng nhận được email báo đơn hàng Quên mật khẩu Mật khẩu sẽ được gửi qua email nếu chúng ta cung cấp thông tin hợp lệ Gửi thông tin cho bạn bè Khi xem hàng hóa trên internet nếu thấy hàng hóa đó phù hợp với bạn mình thì có thể gửi thông tin hàng hóa đó cho bạn của mình.  JAVAMAILSENDER Spring cung cấp bean JavaMailSender giúp thực hiện chức năng gửi email rất thuận tiện. Thư viện cần thiết cho bean này gồm mail.jar activation.jar Mô hình gửi nhận mail Sender ReceiverSmtp Server Smpt server đóng vai trò như bưu điện thông thường. Trong môn học này chúng ta sử dụng gmail để phân phát email JAVAMAILSENDER Khai báo bean JavaMailSender có cấu hình để gửi email thông qua Gmail như sau Tài khoản Smtp được sử dụng để phát mail đến người nhận TÀI KHOẢN SMPT Bạn phải đăng ký 1 tài khoản Gmail thông thường sau đó đăng nhập vào gmail và tiến hành kích hoạt thông qua liên kết sau https://www.google.com/settings/security/lesssecureapps Chọn mục ‘Turn on’ để kích hoạt tài khoản đang đăng nhập trước khi sử dụng nó để phân phát email qua ứng dụng SEND E-MAIL CASE STUDY Đăng nhập vào hộp mail của TamNT360 bạn sẽ thấy một email mới được gửi đến Nhập thông tin hợp lệ vào form và nhấp nút send 1 2 FORM GỬI MAIL MAILERCONTROLLER Tiêm bean vào để sử dụng Tạo một email Gửi email DEMO Giải thích mailler/form.htm + Thư viện + Cấu hình + Form và controller ĐÍNH KÈM FILE Trước hết phải upload file  <form action=“mailer/send.htm" method="post" enctype="multipart/form-data">  public String send( @RequestParam("attach") MultipartFile attach) Sau đó đính kèm file với phương thức addAttachment(name, file) String fileName = attach.getOriginalFilename(); String path = context.getRealPath("/images/" + fileName); helper.addAttachment(fileName, new File(path)); JAVAMAILSENDER API Phương thức Công cụng setFrom(email, name) Cấp thông tin người gửi setTo(email) Email người nhận setCc(emails) Danh sách email cùng nhận setBcc(emails) Danh sách email cùng nhận ẩn danh setReplyTo(email, name) Cấp thông tin người nhận phản hồi setSubject(subject) Tiêu đề email setText(body, isHtml) Nội dung email addAttachment(name, file) File đính kèm Phương thức Công cụng createMimeMessage() Tạo mail Send(mail) Gửi mail XÂY DỰNG BEAN MAILER SỬ DỤNG BEAN MAILER Tiêm bean vào Gọi phương thức phù hợp để gửi email DEMO Giải thích mailler2/form.htm + Mailler + @Autowired Mailler TỔNG KẾT NỘI DUNG BÀI HỌC Tìm hiểu DI Xây dựng, khai báo và sử dụng bean Upload file Gửi email Xây dựng bean Mailer

Các file đính kèm theo tài liệu này:

  • pdfgiao_trinh_lap_trinh_java_bai_5_bean_va_di.pdf