Bài giảng Lập trình Java 5 - Bài 5: Bean và DI

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.

pdf 38 trang kimcuc 4440
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình Java 5 - Bài 5: Bean và DI", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình Java 5 - Bài 5: Bean và DI

Bài giảng Lập trình Java 5 - Bài 5: Bean và DI
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

File đính kèm:

  • pdfbai_giang_lap_trinh_java_5_bai_5_bean_va_di.pdf