text:
Mẫu crossover hoàn toàn mới của Mazda nhiều khả năng sẽ được giới thiệu tại Trung Quốc vào tháng 4 tới trong khuôn khổ triển lãm ôtô Bắc Kinh 2016.
Dựa vào những hình ảnh mới nhất vừa bị rò rỉ tại một nhà máy ở Trung Quốc có thể thấy rõ CX-4 chính là phiên bản được phát triển dựa trên nền tảng của mẫu Concept Koeru từng được giới thiệu hồi tháng 9 năm ngoái. Tân binh nhà Mazda sẽ vẫn mang trên mình ngôn ngữ KODO đang rất được ưa chuộng trên thị trường.
Mặt trước nổi bật với lưới tản nhiệt 4 nan đi kèm viền kim loại mạ chrome sáng, logo đặt trên 2 nan cao nhất, đèn pha công nghệ LED, dải LED chạy ngày sắc sảo, đèn sương mù boomerang nhỏ. Trong khi đó đuôi xe không có nhiều khác biệt với mẫu concept Koeru, ống xả đơn đặt hai bên, đèn hậu lớn thiết kế ôm trọn phần bo 2 góc đuôi xe.
Nội thất của CX-4 chia sẻ khá nhiều từ đàn anh CX-9 2016 vừa ra mắt tại Los Angeles Motor Show 2015. Một màn hình đa phương tiện đặt nhô cao tích hợp hệ thống giải trí Mazda Connect Freestanding, vô-lăng thể thao 3 chấu tích hợp nhiều phím chức năng, …
Theo thông tin mới nhất, mẫu Crossover nằm giữa CX-3 và CX-5 sẽ được trang bị 2 loại động cơ khác nhau gồm 2.0L SKYACTIV-G chạy xăng và 1.5L SKYACTIV-D chạy diesel đi kèm hộp số 6 cấp tự động hoặc sang số bằng tay.
Thitruongxeoto.com Theo TTTĐ
Không có nhận xét nào:

markdown:
## Mẫu crossover hoàn toàn mới của Mazda nhiều khả năng sẽ được giới thiệu tại Trung Quốc vào tháng 4 tới trong khuôn khổ triển lãm ôtô Bắc Kinh 2016.
*Dựa vào những hình ảnh mới nhất vừa bị rò rỉ tại một nhà máy ở Trung Quốc có thể thấy rõ CX-4 chính là phiên bản được phát triển dựa trên nền tảng của mẫu Concept Koeru từng được giới thiệu hồi tháng 9 năm ngoái. Tân binh nhà Mazda sẽ vẫn mang trên mình ngôn ngữ KODO đang rất được ưa chuộng trên thị trường.*
![]()
|Xe ô tô Mazda CX-4 đã xuất hiện trên thị trường Trung Quốc|
Mặt trước nổi bật với lưới tản nhiệt 4 nan đi kèm viền kim loại mạ chrome sáng, logo đặt trên 2 nan cao nhất, đèn pha công nghệ LED, dải LED chạy ngày sắc sảo, đèn sương mù boomerang nhỏ. Trong khi đó đuôi xe không có nhiều khác biệt với mẫu concept Koeru, ống xả đơn đặt hai bên, đèn hậu lớn thiết kế ôm trọn phần bo 2 góc đuôi xe.
![Mazda CX-4 lộ diện không ngụy trang ảnh 1 mazda cx 4 lo dien khong nguy trang anh 1](http://autof5.com/wp-content/uploads/2016/01/mazda-cx-4-lo-dien-khong-nguy-trang-1.jpg)
Nội thất của
**CX-4**chia sẻ khá nhiều từ đàn anh **CX-9 2016**vừa ra mắt tại __Los Angeles Motor Show 2015__. Một màn hình đa phương tiện đặt nhô cao tích hợp hệ thống giải trí *Mazda Connect Freestanding*, vô-lăng thể thao 3 chấu tích hợp nhiều phím chức năng, … ![Mazda CX-4 lộ diện không ngụy trang ảnh 2 mazda cx 4 lo dien khong nguy trang anh 2](http://autof5.com/wp-content/uploads/2016/01/mazda-cx-4-lo-dien-khong-nguy-trang-2.jpg)
#### Theo thông tin mới nhất, mẫu
__Crossover__ nằm giữa __CX-3__ và CX-5 sẽ được trang bị 2 loại động cơ khác nhau gồm 2.0L SKYACTIV-G chạy xăng và 1.5L SKYACTIV-D chạy diesel đi kèm hộp số 6 cấp tự động hoặc sang số bằng tay.
Thitruongxeoto.com Theo
*TTTĐ*
## Không có nhận xét nào:

X-Robots-Tag: all


text:
Ford F-150 Raptor 2017 hoàn toàn mới sẽ nâng tầm Ford F-150 lên đỉnh cao hơn trong phân khúc VUA BÁN TẢI
[button size="large" color="red" src="http://www.terocket.com/2016/01/ford-f-150-raptor-2017-photos.html"] Xem ảnh xe Ford F-150 Raptor 2017[/button]Ford F-150 Raptor 2017 sẽ đi cực nhanh với hiệu suất cao. Xe được cấu tạo bởi khung gầm và hệ thống treo cho phép nó đi nhanh hơn trên địa hình sa mạc hoặc núi đá.
Ford F-150 Raptor SuperCrew mới với bốn cửa kích thước lớn mang lại cho hành khách phía sau có nhiều chỗ để chân và thoải mái trên những con đường mòn và không gian hơn để khám phá vùng hoang dã của Mỹ và Canada.Xe dài hơn 12 inch so với các đời tiền nhiệm trước đây, giúp xe rộng hơn và thoải mái hơn. Xe có khả năng được khẳng định là offroad vô địch.
Quá hầm hố, quá mạnh mẽ và trông cực kỳ dữ dằn
Ngoài ra xe còn được trang bị nhiều hệ thống, thiết bị thông minh
Bộ khung của Ford F-150 Raptor 2017 được cấu trúc giống xe tải, trông qua Ford F-150 Raptor 2017 sẽ có nhiều điểm giống Trophy Truck - lớp nhanh nhất và mạnh nhất của dòng xe bán tải có khả năng off-road siêu hạng. F-150 Raptor mới rộng hơn 6 inch so với các bản tiêu chuẩn của F-150.
Các bài mới F-150 Raptor cũng tự hào xả kép đầu tiên của nó và bánh xe 17-inch mới với thế hệ tiếp theo BFGoodrich All-Terrain KO2 lốp xe được thiết kế cho hiệu năng off-road.
Thông minh hơn bao giờ hếtFord F-150 Raptor được trang bị nhiều thiết bị mới, sở hữu thế hệ thứ 2 của động cơ EcoBoost® 3,5 lít của Ford hoạt động hiệu quả hơn so với động cơ V8 6.2 lít hiện nay, với công suất 411 mã lực và 434 lb.-ft . mô-men xoắn. Xe được trang bị hộp số 10 cấp hoàn toàn mới để cải thiện hiệu quả lái xe cũng như trải nghiệm.
Động cơ của Ford F-150 Raptor 2017 sẽ có hiệu suất cực mạnh
Ngoài ra xe Ford F-150 Raptor 2017 còn có hỗ trợ bởi chế độ lái Management System ™ cho phép người lái xe để lựa chọn phương thức để tối ưu hóa hệ thống truyền động với điều kiện môi trường như tuyết bùn, cát và nhiều hơn nữa.
Xe có khả năng lội bùn hay đầm lầy
Khả năng đi trên tuyết tuyệt vời, không bị lún
Vượt địa hình cát dễ dàng hơn bao giờ hết
Trèo đèo lội suối thật giản đơn
Núi đá hay bất cứ ổ gà, ổ vịt nào cũng không cản được Ford F-150 Raptor 2017
- Chế độ Bình thường cho lái xe hàng ngày
- Chế độ Street cho hiệu suất cao hơn khi đi trên đường
- Chế độ Thời tiết mưa, tuyết hoặc băng
- Chế độ Bùn và cát cho xe sẵn sàng đi trên những con đường mòn và địa hình bùn cát
- Chế độ Sa mạc cho xe có khả năng đi ở sa mạc
- Chế độ Đá cho xe có khả năng vượt địa hình đá
Mạnh nhất từ trước đến nayNgoài khả năng Offroad vô địch, Ford F-150 Raptor 2017 còn có khả năng kéo và vượt dốc thần kỳ. Các địa hình gồ ghề hầu như không làm ảnh hưởng đến việc chạy của Ford F-150 Raptor 2017.
Xem thêm thông tin xe Ford
Tác giả Nguyễn An Thành
Thuộc Đánh giá xe ô tô
Bản quyền thuộc Terocket
0 nhận xét:
Post a Comment

markdown:
**Ford vừa ra mắt dòng xe bán tải huyền thoại Ford F-150 Raptor 2017 với sự nhanh nhẹn, linh hoạt và có khả năng vượt mọi địa hình khó khăn nhất, thông minh nhất, có khả năng nhất trong các dòng xe F-150 Raptor từ trước đến nay. Trước đó, Ford cũng ra mắt dòng** [Ford F-Series Super Duty 2017](http://www.terocket.com/2016/01/ford-f-series-super-duty-2017-reviews.html). ![Ford F-150 Raptor 2017 Ford F-150 Raptor 2017](http://2.bp.blogspot.com/-q_diD4SCDiY/VqsRpcshJ0I/AAAAAAACQGo/x18bD3BEtxk/s1600/2017%2BFord%2BF-150%2BRaptor%2B%252816%2529.jpg)
*Ford F-150 Raptor 2017 hoàn toàn mới sẽ nâng tầm Ford F-150 lên đỉnh cao hơn trong phân khúc VUA BÁN TẢI*
[button size="large" color="red" src="http://www.terocket.com/2016/01/ford-f-150-raptor-2017-photos.html"] Xem ảnh xe Ford F-150 Raptor 2017[/button]
[Ford F-150 Raptor 2017 sẽ đi cực nhanh với hiệu suất cao. Xe được cấu tạo bởi khung gầm và hệ thống treo cho phép nó đi nhanh hơn trên địa hình sa mạc hoặc núi đá.]
Ford F-150 Raptor SuperCrew mới với bốn cửa kích thước lớn mang lại cho hành khách phía sau có nhiều chỗ để chân và thoải mái trên những con đường mòn và không gian hơn để khám phá vùng hoang dã của Mỹ và Canada.Xe dài hơn 12 inch so với các đời tiền nhiệm trước đây, giúp xe rộng hơn và thoải mái hơn. Xe có khả năng được khẳng định là offroad vô địch.
![Ford F-150 Raptor 2017 Ford F-150 Raptor 2017](http://2.bp.blogspot.com/-0GD7AXYsV3U/VqsSSFPSyvI/AAAAAAACQLo/yItNTIRZS8g/s1600/2017%2BFord%2BF-150%2BRaptor%2B%25283%2529.jpg)
*Quá hầm hố, quá mạnh mẽ và trông cực kỳ dữ dằn* ![Ford F-150 Raptor 2017 Ford F-150 Raptor 2017](http://1.bp.blogspot.com/-s_s1H8LJfD4/VqsR9Jq8osI/AAAAAAACQJU/h407E5GXQJI/s1600/2017%2BFord%2BF-150%2BRaptor%2B%252824%2529.jpg)
*Ngoài ra xe còn được trang bị nhiều hệ thống, thiết bị thông minh*
Bộ khung của Ford F-150 Raptor 2017 được cấu trúc giống xe tải, trông qua Ford F-150 Raptor 2017 sẽ có nhiều điểm giống Trophy Truck - lớp nhanh nhất và mạnh nhất của dòng xe bán tải có khả năng off-road siêu hạng. F-150 Raptor mới rộng hơn 6 inch so với các bản tiêu chuẩn của F-150.
Các bài mới F-150 Raptor cũng tự hào xả kép đầu tiên của nó và bánh xe 17-inch mới với thế hệ tiếp theo BFGoodrich All-Terrain KO2 lốp xe được thiết kế cho hiệu năng off-road.
### Thông minh hơn bao giờ hếtFord F-150 Raptor được trang bị nhiều thiết bị mới, sở hữu thế hệ thứ 2 của động cơ EcoBoost® 3,5 lít của Ford hoạt động hiệu quả hơn so với động cơ V8 6.2 lít hiện nay, với công suất 411 mã lực và 434 lb.-ft . mô-men xoắn. Xe được trang bị hộp số 10 cấp hoàn toàn mới để cải thiện hiệu quả lái xe cũng như trải nghiệm.
![Ford F-150 Raptor 2017 Ford F-150 Raptor 2017](http://4.bp.blogspot.com/-yEERkBDIZcs/VqsRytuGxuI/AAAAAAACQH0/ascuzUNBPV0/s1600/2017%2BFord%2BF-150%2BRaptor%2B%25282%2529.jpg)
*Động cơ của Ford F-150 Raptor 2017 sẽ có hiệu suất cực mạnh*
Ngoài ra xe Ford F-150 Raptor 2017 còn có hỗ trợ bởi chế độ lái Management System ™ cho phép người lái xe để lựa chọn phương thức để tối ưu hóa hệ thống truyền động với điều kiện môi trường như tuyết bùn, cát và nhiều hơn nữa.
![Ford F-150 Raptor 2017 Ford F-150 Raptor 2017](http://2.bp.blogspot.com/-TxRigM2wu7M/VqsRcfpZELI/AAAAAAACQFg/Z9OtOzha5ck/s1600/2017%2BFord%2BF-150%2BRaptor%2B%252814%2529.jpg)
*Xe có khả năng lội bùn hay đầm lầy* ![Ford F-150 Raptor 2017 Ford F-150 Raptor 2017](http://4.bp.blogspot.com/-9d9L65OiDP4/VqsRo8g9uyI/AAAAAAACQGg/ZKAB9tgunTA/s1600/2017%2BFord%2BF-150%2BRaptor%2B%252815%2529.jpg)
*Khả năng đi trên tuyết tuyệt vời, không bị lún* ![Ford F-150 Raptor 2017 Ford F-150 Raptor 2017](http://2.bp.blogspot.com/-q_diD4SCDiY/VqsRpcshJ0I/AAAAAAACQGo/x18bD3BEtxk/s1600/2017%2BFord%2BF-150%2BRaptor%2B%252816%2529.jpg)
*Vượt địa hình cát dễ dàng hơn bao giờ hết* ![Ford F-150 Raptor 2017 Ford F-150 Raptor 2017](http://1.bp.blogspot.com/-1unilLU61p4/VqsRr9gHMRI/AAAAAAACQHI/M_Pp8nlytIs/s1600/2017%2BFord%2BF-150%2BRaptor%2B%252818%2529.jpg)
*Trèo đèo lội suối thật giản đơn* ![Ford F-150 Raptor 2017 Ford F-150 Raptor 2017](http://1.bp.blogspot.com/-L6bGv7mfdO0/VqsS0-rSq4I/AAAAAAACQQY/-9lFXrGVxdw/s1600/2017%2BFord%2BF-150%2BRaptor%2B%25289%2529.jpg)
*Núi đá hay bất cứ ổ gà, ổ vịt nào cũng không cản được Ford F-150 Raptor 2017*
- Chế độ Bình thường cho lái xe hàng ngày
- Chế độ Street cho hiệu suất cao hơn khi đi trên đường
- Chế độ Thời tiết mưa, tuyết hoặc băng
- Chế độ Bùn và cát cho xe sẵn sàng đi trên những con đường mòn và địa hình bùn cát
- Chế độ Sa mạc cho xe có khả năng đi ở sa mạc
- Chế độ Đá cho xe có khả năng vượt địa hình đá
### Mạnh nhất từ trước đến nayNgoài khả năng Offroad vô địch, Ford F-150 Raptor 2017 còn có khả năng kéo và vượt dốc thần kỳ. Các địa hình gồ ghề hầu như không làm ảnh hưởng đến việc chạy của Ford F-150 Raptor 2017.
### Xem thêm thông tin xe Ford
**Tác giả Nguyễn An Thành** **Thuộc** [Đánh giá xe](http://www.terocket.com/p/car-reviews.html)ô tô **Bản quyền thuộc**
## 0 nhận xét:
## Post a Comment

WARC-Type: response

Content-Type: application/http; msgtype=response

WARC-Identified-Payload-Type: application/xhtml+xml

Server: GSE

X-Content-Type-Options: nosniff

Cache-Control: private, max-age=0

X-XSS-Protection: 1; mode=block

Content-Type: text/html; charset=UTF-8


text:
Chúc bạn tìm được một chiếc Saab 90 1985 và rước về nhà của mình với mức giá phù hợp. Nếu được bạn hãy gửi bình luận về xe Saab 90 1985 dưới đây và cùng bàn về ảnh, hình dáng, thiết kế của Saab 90 1985 cùng Terocket.
Xem Ảnh xe Saab
Trong Ảnh xe ô tô
Bản quyền Terocket
0 nhận xét:
Post a Comment

markdown:
**Những hình ảnh về xe Saab 90 1985 sẽ được Terocket gửi đến bạn đọc qua bộ ảnh Saab 90 1985 chất lượng cao. Những thông tin chi tiết cũng như cách nhìn tổng quan về hình dáng xe Saab 90 1985 và đặc điểm cơ bản xe Saab 90 1985. Và khi bạn thích những hình ảnh của xe Saab 90 1985 này, hãy xem thêm video về Saab 90 1985 cũng như bài đánh giá xe Saab 90 1985 của** [Terocket](http://www.terocket.com/). Cùng Terocket trải nghiệm và chiêm ngưỡng hình ảnh nội thất, ngoại thất, màu sắc...chiếc Saab 90 1985.
Chúc bạn tìm được một chiếc Saab 90 1985 và rước về nhà của mình với mức giá phù hợp. Nếu được bạn hãy gửi bình luận về xe Saab 90 1985 dưới đây và cùng bàn về ảnh, hình dáng, thiết kế của Saab 90 1985 cùng Terocket.
**Xem** [Ảnh xe Saab](http://www.terocket.com/p/saab-photos.html) **Trong** [Ảnh xe ô tô](http://www.terocket.com/p/car-photos.html) **Bản quyền Terocket**
## 0 nhận xét:
## Post a Comment


text:
Cổ Linh Chi
Linh chi và cổ linh chi, loại nào tốt hơn?
Linh chi là vị thuốc quý của y học Phương Đông, cách đây hơn 2000 năm, đã được ghi trong Thần nông bản thảo của Trung Quốc. Linh chi có nhiều tên khác như nấm trường thọ, thuốc thần tiên, cỏ trường sinh… Là nấm mọc hoang trong thiên nhiên, linh chi có hàng trăm
Những điểm đáng lưu ý khi có ý định sử dụng nấm cổ linh chi
Phó Giáo sư, Tiến sĩ Nguyễn Thượng Dong, Viện trưởng viện dược liệu (Bộ Y tế) khuyến cáo rằng người dân không nên “thần thánh hóa” nấm cổ linh chinhư một thần dược vì nó chỉ có tác dụng bồi bổ sức khỏe và hỗ trợ điều trị bệnh chứ không có tác dụng chữa khỏi

markdown:
**Cổ Linh Chi**
[Linh chi và cổ linh chi, loại nào tốt hơn?](http://www.thegioicaythuoc.com/linh-chi-va-co-linh-chi-loai-nao-tot-hon.html) [Linh chi là vị thuốc quý của y học Phương Đông, cách đây hơn 2000 năm, đã được ghi trong Thần nông bản thảo của Trung Quốc. Linh chi có nhiều tên khác như nấm trường thọ, thuốc thần tiên, cỏ trường sinh… Là nấm mọc hoang trong thiên nhiên, linh chi có hàng trăm](http://www.thegioicaythuoc.com/linh-chi-va-co-linh-chi-loai-nao-tot-hon.html) ![ Cổ linh chi và nấm linh chi loại nào tốt hơn?](http://www.thegioicaythuoc.com/wp-content/uploads/2014/10/131-tq92-100x100.jpg)
![ Cổ linh chi và nấm linh chi loại nào tốt hơn?](http://www.thegioicaythuoc.com/wp-content/uploads/2014/10/131-tq92-100x100.jpg)
[Những điểm đáng lưu ý khi có ý định sử dụng nấm cổ linh chi](http://www.thegioicaythuoc.com/nhung-diem-dang-luu-y-khi-co-y-dinh-su-dung-nam-co-linh-chi.html) [Phó Giáo sư, Tiến sĩ Nguyễn Thượng Dong, Viện trưởng viện dược liệu (Bộ Y tế) khuyến cáo rằng người dân không nên “thần thánh hóa” nấm cổ linh chinhư một thần dược vì nó chỉ có tác dụng bồi bổ sức khỏe và hỗ trợ điều trị bệnh chứ không có tác dụng chữa khỏi](http://www.thegioicaythuoc.com/nhung-diem-dang-luu-y-khi-co-y-dinh-su-dung-nam-co-linh-chi.html) ![ Cẩn thận khi bạn có ý định sử dụng nấm cổ linh chi](http://www.thegioicaythuoc.com/wp-content/uploads/2014/10/130-tq91-100x100.jpg)
![ Cẩn thận khi bạn có ý định sử dụng nấm cổ linh chi](http://www.thegioicaythuoc.com/wp-content/uploads/2014/10/130-tq91-100x100.jpg)

Server: nginx

Connection: close

Vary: Accept-Encoding,User-Agent


text:
Kết hợp Java Reflection và Java Annotations - Bạn đã biết chưa?
Bạn có thể sử dụng Reflection để truy cập (access) các annotations được áp dụng trong các class tại thời điểm Runtime. Và theo tôi thì, Java Reflection + Annotations = bí kíp võ công đầu tiên mà bạn cần phải luyện nếu muốn trở thành cao thủ. Các bạn có thể xem lại hai bài viết mà tôi đã hướng dẫn cách sử dụng Java Annotation cũng như giới thiệu về Java Reflection trước khi luyện công.
Trường hợp đặc biệt, nếu như bạn đã sử dụng qua Hibernate và nắm bắt được cách mà các Annotation được Hibernate hỗ trợ hoạt động như thế nào. Trong khi đó bạn chỉ cần một vài chức năng cơ bản giống như Hibernate thì bạn cũng có thể tự mình viết ra các lớp Util để hỗ trợ công việc dựa trên ý tưởng đó thông qua Java Annotation và Java Reflection
Để giúp các bạn dễ hiểu hơn khi đọc code example, tôi sẽ tạo một dự án Java demo nho nhỏ với structure như sau:
Tiếp theo, các bạn copy dán code vào các file tương ứng như sau:
com.vanthuong.example.annotations.Column
com.vanthuong.example.annotations.Table
com.vanthuong.example.annotations.Permission
Tạo file Customer.java trong package com.vanthuong.example.model và chép đoạn code bên dưới đây vào
Giải thích chút xíu, ở đây các annotation được tạo ra mới mục đích như sau:
- @Table: Được sử dụng cho class với mục đích đánh dấu model (Customer, Employee...) map với 1 table cụ thể nào đó dưới database thông qua method name().
- @Column: Sử dụng cho các field trong Model - map tên các field xuống tên Column trong database
- @Permission: Annotation dùng để chú thích rằng chỉ có những ai có quyền được liệt kê mới cho phép sử dụng phương thức đã apply nó.
Tại thời điểm Runtime tôi có thể get được một mảng các Annotation đã áp dụng cho Customer class bằng cách đơn giản nhất là gọi phương thức getAnnotations() của đối tượng Class.
Bên cạnh đó, bạn có thể sử dụng một phương thức khác có tên là getAnnotation() để lấy chính xác Annotation mà mình mong muốn như sau:
Đầu tiên, các bạn cần xem lại bài viết về cách làm việc với các Field trong Class với Java Reflection mà tôi đã giới thiệu trước đó để ôn tập nhé. Dưới đây là đoạn code mà tôi dùng để lấy được một mảng các Annotations đã áp dụng cho một field.
Cũng tương tự như ở Class level, bạn hoàn toàn có thể lấy được Annotation cụ thể mà bạn biết chắc đã áp dụng cho Field như sau:
Tương tự như vậy, bạn cũng có thể lấy được đối tượng Annotation cụ thể đã áp dụng cho một phương thức nếu như bạn biết trước.
Ví dụ chúng ta có doSomething() method và parameter của nó được đánh dấu chú thích như sau:
Chúng ta sẽ lấy được các Annotation đã áp dụng cho các parameter từ đối tượng Method như sau:
Các bạn lưu ý, phương thức Method.getParameterAnnotations() sẽ trả về một mảng Annotation 2 chiều. Mỗi array tương ứng với danh sách các Annotation được dùng cho một parameter của method.
com.vanthuong.example.enums.Action
com.vanthuong.example.enums.UserRole
Tiếp theo, hãy tạo mới một package khác và đặt tên nó là dao. Trong package này, chúng ta sẽ có các lớp giao tiếp với database. Tuy nhiên, trong bài viết này chỉ dừng lại mức giới thiệu về cách sử dụng Java Reflection + Annotation nên tôi sẽ không làm trực tiếp với database mà sẽ tạo một đối tượng Store như 1 DB giả để lưu trữ dự liệu. Dưới đây là nội dung của các tập tin này.
com.vanthuong.example.dao.Store
- Phương thức getCustomers() được dùng để tất cả dữ liệu có trong customerPropsByIds để trả về. Giả sử nếu tôi dùng database thì đoạn code bên trong sẽ thay thế bằng việc parse đối tượng SQL sang Customer Object.
- Phương thức add() được dùng để thêm mới một customer vào database.
- Phương thức convert() được sử dụng để convert một đối tượng Customer sang dữ liệu có thể lưu vào customerPropsByIds. Tuy nhiên, nếu như các bạn sử dụng Database thì phương thức này sẽ được dùng để chuyển thành câu lệnh SQL chẳng hạn.
Tóm lại, lớp mục đích của tôi là muốn cho các bạn thấy cách mà tôi đang thực hiện reflection với các annotation của các field trong một class, cụ thể là @Column và lớp Customer.
com.vanthuong.example.dao.CustomerDAO
Ở lớp CustomerDAO này chúng ta chủ yếu tập trung vào phương thức hasPermission(). Và đây là cách mà tôi sử dụng Reflection cho các annotation được áp dụng cho một phương thức.
OK, bây giờ chúng ta lại tạo thêm một package mới là exceptions và một lớp mới có tên là CustomException.
com.vanthuong.example.exceptions.CustomException
Cuối cùng, tạo mới class Application và chép nội dung bên dưới đây vào để chạy thử chương trình.
com.vanthuong.example.Application
Dưới đây là liên kết để các bạn tải về dự án này đầy đủ và tiếp tục thực hành.
Chúc các bạn học tốt.
Kết hợp Reflection và AnnotationNếu như bạn mới chập chững bước vào tìm hiểu về ngôn ngữ Java thì tôi xin cam đoan đây là phần cực kỳ thú vị mà bạn không nên bỏ qua. Bên cạnh đó, nếu như bạn muốn sử dụng JDBC để làm việc với Database mà không cần đến sự hỗ trợ của Hibernate thì đây là cách hiệu quả nhất cho bạn. Với sự kết hợp của Java Reflection và Annotation, bạn có thể ứng dụng nó trong nhiều trường hợp như cần Generic, validate dữ liệu, cấu hình,...
Trường hợp đặc biệt, nếu như bạn đã sử dụng qua Hibernate và nắm bắt được cách mà các Annotation được Hibernate hỗ trợ hoạt động như thế nào. Trong khi đó bạn chỉ cần một vài chức năng cơ bản giống như Hibernate thì bạn cũng có thể tự mình viết ra các lớp Util để hỗ trợ công việc dựa trên ý tưởng đó thông qua Java Annotation và Java Reflection
Để giúp các bạn dễ hiểu hơn khi đọc code example, tôi sẽ tạo một dự án Java demo nho nhỏ với structure như sau:
Tiếp theo, các bạn copy dán code vào các file tương ứng như sau:
com.vanthuong.example.annotations.Column
package com.vanthuong.example.annotations; import java.lang.annotation.*; @Documented @Target(ElementType.FIELD) @Inherited @Retention(RetentionPolicy.RUNTIME) public @interface Column { String name() default ""; }
com.vanthuong.example.annotations.Table
package com.vanthuong.example.annotations; import java.lang.annotation.*; @Documented @Target(ElementType.TYPE) @Inherited @Retention(RetentionPolicy.RUNTIME) public @interface Table { String name() default ""; }
com.vanthuong.example.annotations.Permission
package com.vanthuong.example.annotations; import java.lang.annotation.*; @Documented @Target(ElementType.METHOD) @Inherited @Retention(RetentionPolicy.RUNTIME) public @interface Permission { String[] value(); }
Tạo file Customer.java trong package com.vanthuong.example.model và chép đoạn code bên dưới đây vào
package com.vanthuong.example.model; import com.vanthuong.example.annotations.Column; import com.vanthuong.example.annotations.Table; @Table(name = "customers") public class Customer { @Column(name = "id") private Long id; @Column(name = "name") private String contactName; @Column(name = "title") private String contactTitle; @Column(name = "address") private String address; @Column(name = "phoneNumber") private String phoneNumber; public Customer() { } public Customer(Long id, String contactName, String contactTitle, String address, String phoneNumber) { this.id = id; this.contactName = contactName; this.contactTitle = contactTitle; this.address = address; this.phoneNumber = phoneNumber; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getContactName() { return contactName; } public void setContactName(String contactName) { this.contactName = contactName; } public String getContactTitle() { return contactTitle; } public void setContactTitle(String contactTitle) { this.contactTitle = contactTitle; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } @Override public String toString() { return "Customer{" + "id=" + id + ", contactName='" + contactName + '\'' + ", contactTitle='" + contactTitle + '\'' + ", address='" + address + '\'' + ", phoneNumber='" + phoneNumber + '\'' + '}'; } }
Giải thích chút xíu, ở đây các annotation được tạo ra mới mục đích như sau:
- @Table: Được sử dụng cho class với mục đích đánh dấu model (Customer, Employee...) map với 1 table cụ thể nào đó dưới database thông qua method name().
- @Column: Sử dụng cho các field trong Model - map tên các field xuống tên Column trong database
- @Permission: Annotation dùng để chú thích rằng chỉ có những ai có quyền được liệt kê mới cho phép sử dụng phương thức đã apply nó.
Class AnnotationsĐầu tiên, chúng ta sẽ tìm hiểu cách lấy các annotation được áp dụng cho class. Như các bạn thấy, tôi đã áp dụng annotation @Table(name = "customers") cho lớp com.vanthuong.example.model.Customer.
Tại thời điểm Runtime tôi có thể get được một mảng các Annotation đã áp dụng cho Customer class bằng cách đơn giản nhất là gọi phương thức getAnnotations() của đối tượng Class.
Class<Customer> customerClass = Customer.class; // obtain class object Annotation[] annotations = customerClass.getAnnotations(); // Lọc ra các annotations là thể hiện của Table for (Annotation annotation : annotations) { if (annotation instanceof Table) { Table tableAnnotation = (Table) annotation; System.out.println("name: " + tableAnnotation.name()); } }
Bên cạnh đó, bạn có thể sử dụng một phương thức khác có tên là getAnnotation() để lấy chính xác Annotation mà mình mong muốn như sau:
Class<Customer> customerClass = Customer.class; Annotation tableAnnotation = customerClass.getAnnotation(Table.class); if (tableAnnotation != null) { System.out.println(((Table) tableAnnotation).name()); } else { System.out.println("Table annotation is not applied to Customer class"); }
Field AnnotationsCũng từ lớp Customer ở trên, bạn thấy rằng tôi đang áp dụng annotation @Column cho các field được khai báo như: id, contactName, contactTitle,... Vậy làm sao để access được các Annotation mà bạn đã áp dụng cho field?
Đầu tiên, các bạn cần xem lại bài viết về cách làm việc với các Field trong Class với Java Reflection mà tôi đã giới thiệu trước đó để ôn tập nhé. Dưới đây là đoạn code mà tôi dùng để lấy được một mảng các Annotations đã áp dụng cho một field.
Field field = // ... obtain Field object Annotation[] annotations = field.getDeclaredAnnotations(); for (Annotation annotation : annotations) { if (annotation instanceof Column) { Column columnAnnotation = (Column) annotation; System.out.println(columnAnnotation.name()); } }
Cũng tương tự như ở Class level, bạn hoàn toàn có thể lấy được Annotation cụ thể mà bạn biết chắc đã áp dụng cho Field như sau:
Field field = // ... obtain Field object Annotation annotation = field.getDeclaredAnnotation(Column.class); if (annotation instanceof Column) { Column columnAnnotation = (Column) annotation; System.out.println(columnAnnotation.name()); }
Method AnnotationsAnnotation còn được áp dụng cho các phương thức trong một Class. Ví dụ như bên dưới đây, tôi đã áp dụng Annotation @Permission cho phương thức public void add(Customer customer).
@Permission(value = {"Administration", "Manager"}) public void add(Customer customer) { if (customer != null) { customerPropsByIds.put(customer.getId(), convert(customer)); } }OK bây giờ tôi có thể lấy ra mảng các Annotation đã áp dụng cho method như sau:
Method method = //...obtain method object Annotation[] annotations = method.getDeclaredAnnotations(); for (Annotation annotation : annotations) { if (annotation instanceof Permission) { Permission permissionAnnotation = (Permission) annotation; String[] permissions = permissionAnnotation.value(); } }
Tương tự như vậy, bạn cũng có thể lấy được đối tượng Annotation cụ thể đã áp dụng cho một phương thức nếu như bạn biết trước.
Method method = // ...obtain method object Annotation annotation = method.getAnnotation(Permission.class); if (annotation instanceof Permission) { Permission permissionAnnotation = (Permission) annotation; System.out.println(permissionAnnotation.value()); }
Parameter AnnotationsCác parameter truyền vào một method cũng có thể dùng Annotation. Với Java Reflection chúng ta cũng có thể access được các Annotation này.
Ví dụ chúng ta có doSomething() method và parameter của nó được đánh dấu chú thích như sau:
public class DemoClass { public static void doSomething ( @MyAnnotation(name = "aName", value = "aValue") String parameter){ } }
Chúng ta sẽ lấy được các Annotation đã áp dụng cho các parameter từ đối tượng Method như sau:
Method method = //...obtain method object Annotation[][] parameterAnnotations = method.getParameterAnnotations(); Class[] parameterTypes = method.getParameterTypes(); int i = 0; for (Annotation[] annotations : parameterAnnotations){ Class parameterType = parameterTypes[i++]; for (Annotation annotation : annotations){ if (annotation instanceof MyAnnotation){ MyAnnotation myAnnotation = (MyAnnotation) annotation; System.out.println("param: " + parameterType.getName()); System.out.println("name : " + myAnnotation.name()); System.out.println("value: " + myAnnotation.value()); } } }
Các bạn lưu ý, phương thức Method.getParameterAnnotations() sẽ trả về một mảng Annotation 2 chiều. Mỗi array tương ứng với danh sách các Annotation được dùng cho một parameter của method.
Thực hànhTừ dự án mà các bạn đã tạo ở đầu bài viết, hãy tạo một package mới và đặt tên nó là enums. Sau đó, tạo ra các enum Action, UserRole với nội dung như sau:
com.vanthuong.example.enums.Action
package com.vanthuong.example.enums; /** * Official blog: http://www.vanthuong.com * Learn and share your java knowledge */ public enum Action { READ("get"), ADD("add"), UPDATE("update"), DELETE("delete"); private final String value; Action(String value) { this.value = value; } public String value() { return this.value; } }
com.vanthuong.example.enums.UserRole
package com.vanthuong.example.enums; /** * Official blog: http://www.vanthuong.com * Learn and share your java knowledge */ public enum UserRole { ADMINISTRATION, MANAGER, USER; }
Tiếp theo, hãy tạo mới một package khác và đặt tên nó là dao. Trong package này, chúng ta sẽ có các lớp giao tiếp với database. Tuy nhiên, trong bài viết này chỉ dừng lại mức giới thiệu về cách sử dụng Java Reflection + Annotation nên tôi sẽ không làm trực tiếp với database mà sẽ tạo một đối tượng Store như 1 DB giả để lưu trữ dự liệu. Dưới đây là nội dung của các tập tin này.
com.vanthuong.example.dao.Store
package com.vanthuong.example.dao; /* * Official blog: http://www.vanthuong.com * Learn and share your java knowledge */ import com.vanthuong.example.annotations.Column; import com.vanthuong.example.annotations.Permission; import com.vanthuong.example.model.Customer; import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import static com.vanthuong.example.enums.UserRole.ADMINISTRATION; import static com.vanthuong.example.enums.UserRole.MANAGER; public class Store { private final Map<Long, Map<String, Object>> customerPropsByIds = new HashMap<>(); public Store() { Map<String, Object> valuesByProperties = new HashMap<>(); System.out.println("--- Init mock database ---"); valuesByProperties.put("id", 1L); valuesByProperties.put("name", "Nguyen Van A"); valuesByProperties.put("title", "MANAGER"); valuesByProperties.put("address", "Somme where"); valuesByProperties.put("phoneNumber", "123456789"); customerPropsByIds.put(1L, valuesByProperties); } public List<Customer> getCustomers() { List<Customer> customers = new ArrayList<>(); customerPropsByIds.values() .forEach(customerPropsByKeys -> { Customer customer = new Customer(); customer.setId((Long) customerPropsByKeys.get("id")); customer.setContactName((String) customerPropsByKeys.get("name")); customer.setContactTitle((String) customerPropsByKeys.get("title")); customer.setAddress((String) customerPropsByKeys.get("address")); customer.setPhoneNumber((String) customerPropsByKeys.get("phoneNumber")); customers.add(customer); }); return customers; } @Permission(value = {ADMINISTRATION, MANAGER}) public void add(Customer customer) { if (customer != null) { customerPropsByIds.put(customer.getId(), convert(customer)); } } public void select(String columnName) { // TODO: add your code here to implement this action } @Permission(value = {ADMINISTRATION, MANAGER}) public void delete() { // TODO: add your code here to implement this action } @Permission(value = {ADMINISTRATION, MANAGER}) public void update() { // TODO: add your code here to implement this action } private Map<String, Object> convert(Customer customer) { Map<String, Object> valuesByProperties = new HashMap<>(); Class<?> customerClass = customer.getClass(); Field[] fields = customerClass.getDeclaredFields(); for (Field field : fields) { getFieldValueByColumn(customer, field, valuesByProperties); } return valuesByProperties; } private void getFieldValueByColumn(Customer customer, Field field, Map<String, Object> valuesByProperties) { field.setAccessible(true); try { Annotation[] annotations = field.getDeclaredAnnotations(); for (Annotation annotation : annotations) { if (annotation instanceof Column) { String propertyName = ((Column) annotation).name(); Object value = field.get(customer); valuesByProperties.put(propertyName, value); } } } catch (Exception e) { e.printStackTrace(); } } }Trong lớp này các bạn thấy rằng, tôi đã tạo ra biến customerPropsByIds để mô phỏng như là một Database để lưu trữ giá trị của các thuộc tính có trong model Customer như là một column.
- Phương thức getCustomers() được dùng để tất cả dữ liệu có trong customerPropsByIds để trả về. Giả sử nếu tôi dùng database thì đoạn code bên trong sẽ thay thế bằng việc parse đối tượng SQL sang Customer Object.
- Phương thức add() được dùng để thêm mới một customer vào database.
- Phương thức convert() được sử dụng để convert một đối tượng Customer sang dữ liệu có thể lưu vào customerPropsByIds. Tuy nhiên, nếu như các bạn sử dụng Database thì phương thức này sẽ được dùng để chuyển thành câu lệnh SQL chẳng hạn.
Tóm lại, lớp mục đích của tôi là muốn cho các bạn thấy cách mà tôi đang thực hiện reflection với các annotation của các field trong một class, cụ thể là @Column và lớp Customer.
com.vanthuong.example.dao.CustomerDAO
package com.vanthuong.example.dao; import com.vanthuong.example.annotations.Permission; import com.vanthuong.example.enums.Action; import com.vanthuong.example.enums.UserRole; import com.vanthuong.example.exceptions.CustomException; import com.vanthuong.example.model.Customer; import java.lang.annotation.Annotation; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import static com.vanthuong.example.enums.Action.ADD; import static com.vanthuong.example.enums.UserRole.ADMINISTRATION; /** * Official blog: http://www.vanthuong.com * Learn and share your java knowledge */ public class CustomerDAO { private final Store store; public CustomerDAO() { store = new Store(); } public List<Customer> getAll() { return store.getCustomers(); } public void add(Customer customer) throws CustomException { // Hard code to execute method with Administration right if (hasPermission(ADD, ADMINISTRATION)) { store.add(customer); } else { throw new CustomException("You don't have permission to execute this action"); } } private boolean hasPermission(Action action, UserRole userRole) throws CustomException { Class<?> storeClass = store.getClass(); List<UserRole> permissions = new ArrayList<>(); try { Method method = storeClass.getMethod(action.value()); Annotation[] annotations = method.getDeclaredAnnotations(); permissions.addAll(getPermissions(annotations)); return permissions.isEmpty() || permissions.contains(userRole); } catch (NoSuchMethodException e) { throw new CustomException( String.format("Action %s is not existing in %s class", action.value(), storeClass.getName())); } } private List<UserRole> getPermissions(Annotation[] annotations) { List<UserRole> roles = new ArrayList<>(); for (Annotation annotation : annotations) { if (annotation instanceof Permission) { Permission permission = (Permission) annotation; UserRole[] permissionRoles = permission.value(); if (permissionRoles.length > 0) { roles.addAll(Arrays.asList(permissionRoles)); } } } return roles; } }
Ở lớp CustomerDAO này chúng ta chủ yếu tập trung vào phương thức hasPermission(). Và đây là cách mà tôi sử dụng Reflection cho các annotation được áp dụng cho một phương thức.
OK, bây giờ chúng ta lại tạo thêm một package mới là exceptions và một lớp mới có tên là CustomException.
com.vanthuong.example.exceptions.CustomException
package com.vanthuong.example.exceptions; /** * Official blog: http://www.vanthuong.com * Learn and share your java knowledge */ public class CustomException extends Exception { public CustomException() { super(); } public CustomException(String message) { super(message); } public CustomException(String message, Throwable cause) { super(message, cause); } public CustomException(Throwable cause) { super(cause); } }
Cuối cùng, tạo mới class Application và chép nội dung bên dưới đây vào để chạy thử chương trình.
com.vanthuong.example.Application
package com.vanthuong.example; /* * Official blog: http://www.vanthuong.com * Learn and share your java knowledge */ import com.vanthuong.example.dao.Store; import com.vanthuong.example.model.Customer; import java.util.List; public class Application { public static void main(String[] args) { Store store = new Store(); List<Customer> customers = store.getCustomers(); System.out.println("--- LIST OF CUSTOMERS ---"); customers.forEach(System.out::println); System.out.println("--- ADD NEW CUSTOMER ---"); Customer customer = new Customer(); customer.setId(2L); customer.setContactName("Thuong Van Nguyen"); customer.setContactTitle("Software Engineer"); customer.setPhoneNumber("123123123123"); customer.setAddress("HCM"); store.add(customer); List<Customer> customerList = store.getCustomers(); System.out.println("--- LIST OF CUSTOMERS ---"); customerList.forEach(System.out::println); } }Chương trình sẽ in ra kết quả như hình bên dưới
It's your turnYeah, nãy giờ xem xong bài viết này các bạn cũng thấy rằng trong các lớp Store và CustomerDAO tôi vẫn còn chưa implement các phương thức như select(), update(), delete(). Đây chính là phần để các bạn practice. Ngoài ra, các bạn có thể thay đổi cách tiếp cận sang dùng Database để dễ dàng hơn trong việc thực hành. Thay vì convert chúng thành Map<String, Object> các bạn có thể viết câu Query để giao tiếp với database thật sự.
Dưới đây là liên kết để các bạn tải về dự án này đầy đủ và tiếp tục thực hành.
https://github.com/vanthuongkb/reflectionexample1Trong bài viết sắp tới, tôi sẽ có gắng cho ra một dự án kết hợp sử dụng Reflection + Annotation + MySQL để cho nội dung hay hơn. Các bạn đón đọc nhé.
Chúc các bạn học tốt.
Bình luận

markdown:
# Kết hợp Java Reflection và Java Annotations - Bạn đã biết chưa?
|Mục lục|
[Class Annotations](#class) [Field Annotations](#field) [Method Annotations](#method) [Parameter Annotations](#parameter) [Thực hành](#practice) **Java Reflection + Annotations**= bí kíp võ công đầu tiên mà bạn cần phải luyện nếu muốn trở thành cao thủ. Các bạn có thể xem lại hai bài viết mà tôi đã [hướng dẫn cách sử dụng Java Annotation](http://www.vanthuong.com/2016/03/java-annotation.html)cũng như [giới thiệu về Java Reflection](http://www.vanthuong.com/2016/04/gioi-thieu-ve-java-reflection.html)trước khi luyện công.
## Kết hợp Reflection và AnnotationNếu như bạn mới chập chững bước vào tìm hiểu về ngôn ngữ Java thì tôi xin cam đoan đây là phần cực kỳ thú vị mà bạn không nên bỏ qua. Bên cạnh đó, nếu như bạn muốn
[sử dụng JDBC](http://www.vanthuong.com/2016/05/huong-dan-su-dung-jdbc.html)để làm việc với Database mà không cần đến sự hỗ trợ của [Hibernate](http://www.vanthuong.com/2016/04/huong-dan-cach-cau-hinh-hibernate.html)thì đây là cách hiệu quả nhất cho bạn. Với sự kết hợp của Java Reflection và Annotation, bạn có thể ứng dụng nó trong nhiều trường hợp như cần Generic, validate dữ liệu, cấu hình,... ![Kết hợp Java Reflection và Java Annotations - Bạn đã biết chưa? Kết hợp Java Reflection và Java Annotations - Bạn đã biết chưa?](https://lh3.googleusercontent.com/-jfjmoRmA8fg/V9rJP6YGPvI/AAAAAAAAF6U/K6_7szZJ-pE-xIZ3Q7PQWCdJ5u0YdyBlwCLcB/s1600/java-reflection-va-annotation.png)
Trường hợp đặc biệt, nếu như bạn đã sử dụng qua Hibernate và nắm bắt được cách mà các Annotation được Hibernate hỗ trợ hoạt động như thế nào. Trong khi đó bạn chỉ cần một vài chức năng cơ bản giống như Hibernate thì bạn cũng có thể tự mình viết ra các lớp Util để hỗ trợ công việc dựa trên ý tưởng đó thông qua Java Annotation và Java Reflection
Để giúp các bạn dễ hiểu hơn khi đọc code example, tôi sẽ tạo một dự án Java demo nho nhỏ với structure như sau:
![cấu trúc dự án Java Reflection & Annotation cấu trúc dự án Java Reflection & Annotation](https://lh3.googleusercontent.com/-QbNN95g5h5k/V9V1LPIxnlI/AAAAAAAAF54/rUIjpnUg48QTjYMT8lF2fhmEIdn6w0A5gCLcB/s1600/cau-truc-du-an-java-reflection-annotation.png)
Tiếp theo, các bạn copy dán code vào các file tương ứng như sau:
com.vanthuong.example.annotations.Column
package com.vanthuong.example.annotations; import java.lang.annotation.*; @Documented @Target(ElementType.FIELD) @Inherited @Retention(RetentionPolicy.RUNTIME) public @interface Column { String name() default ""; }
com.vanthuong.example.annotations.Table
package com.vanthuong.example.annotations; import java.lang.annotation.*; @Documented @Target(ElementType.TYPE) @Inherited @Retention(RetentionPolicy.RUNTIME) public @interface Table { String name() default ""; }
com.vanthuong.example.annotations.Permission
package com.vanthuong.example.annotations; import java.lang.annotation.*; @Documented @Target(ElementType.METHOD) @Inherited @Retention(RetentionPolicy.RUNTIME) public @interface Permission { String[] value(); }
Tạo file Customer.java trong package com.vanthuong.example.model và chép đoạn code bên dưới đây vào
package com.vanthuong.example.model; import com.vanthuong.example.annotations.Column; import com.vanthuong.example.annotations.Table; @Table(name = "customers") public class Customer { @Column(name = "id") private Long id; @Column(name = "name") private String contactName; @Column(name = "title") private String contactTitle; @Column(name = "address") private String address; @Column(name = "phoneNumber") private String phoneNumber; public Customer() { } public Customer(Long id, String contactName, String contactTitle, String address, String phoneNumber) { this.id = id; this.contactName = contactName; this.contactTitle = contactTitle; this.address = address; this.phoneNumber = phoneNumber; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getContactName() { return contactName; } public void setContactName(String contactName) { this.contactName = contactName; } public String getContactTitle() { return contactTitle; } public void setContactTitle(String contactTitle) { this.contactTitle = contactTitle; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } @Override public String toString() { return "Customer{" + "id=" + id + ", contactName='" + contactName + '\'' + ", contactTitle='" + contactTitle + '\'' + ", address='" + address + '\'' + ", phoneNumber='" + phoneNumber + '\'' + '}'; } }
Giải thích chút xíu, ở đây các annotation được tạo ra mới mục đích như sau:
- @Table: Được sử dụng cho class với mục đích đánh dấu model (Customer, Employee...) map với 1 table cụ thể nào đó dưới database thông qua method name().
- @Column: Sử dụng cho các field trong Model - map tên các field xuống tên Column trong database
- @Permission: Annotation dùng để chú thích rằng chỉ có những ai có quyền được liệt kê mới cho phép sử dụng phương thức đã apply nó.
## Class AnnotationsĐầu tiên, chúng ta sẽ tìm hiểu cách lấy các annotation được áp dụng cho class. Như các bạn thấy, tôi đã áp dụng annotation @Table(name = "customers") cho lớp com.vanthuong.example.model.Customer.
Tại thời điểm Runtime tôi có thể get được một mảng các Annotation đã áp dụng cho Customer class bằng cách đơn giản nhất là gọi phương thức
**getAnnotations()**của đối tượng Class.
Class<Customer> customerClass = Customer.class; // obtain class object Annotation[] annotations = customerClass.getAnnotations(); // Lọc ra các annotations là thể hiện của Table for (Annotation annotation : annotations) { if (annotation instanceof Table) { Table tableAnnotation = (Table) annotation; System.out.println("name: " + tableAnnotation.name()); } }
Bên cạnh đó, bạn có thể sử dụng một phương thức khác có tên là
**getAnnotation()**để lấy chính xác Annotation mà mình mong muốn như sau:
Class<Customer> customerClass = Customer.class; Annotation tableAnnotation = customerClass.getAnnotation(Table.class); if (tableAnnotation != null) { System.out.println(((Table) tableAnnotation).name()); } else { System.out.println("Table annotation is not applied to Customer class"); }
## Field AnnotationsCũng từ lớp Customer ở trên, bạn thấy rằng tôi đang áp dụng annotation @Column cho các field được khai báo như: id, contactName, contactTitle,... Vậy làm sao để access được các Annotation mà bạn đã áp dụng cho field?
Đầu tiên, các bạn cần xem lại bài viết về
[cách làm việc với các Field trong Class với Java Reflection](http://www.vanthuong.com/2016/04/java-reflection-lam-viec-voi-cac-field.html)mà tôi đã giới thiệu trước đó để ôn tập nhé. Dưới đây là đoạn code mà tôi dùng để lấy được một mảng các Annotations đã áp dụng cho một field.
Field field = // ... obtain Field object Annotation[] annotations = field.getDeclaredAnnotations(); for (Annotation annotation : annotations) { if (annotation instanceof Column) { Column columnAnnotation = (Column) annotation; System.out.println(columnAnnotation.name()); } }
Cũng tương tự như ở Class level, bạn hoàn toàn có thể lấy được Annotation cụ thể mà bạn biết chắc đã áp dụng cho Field như sau:
Field field = // ... obtain Field object Annotation annotation = field.getDeclaredAnnotation(Column.class); if (annotation instanceof Column) { Column columnAnnotation = (Column) annotation; System.out.println(columnAnnotation.name()); }
## Method AnnotationsAnnotation còn được áp dụng cho các phương thức trong một Class. Ví dụ như bên dưới đây, tôi đã áp dụng Annotation @Permission cho phương thức public void add(Customer customer).
@Permission(value = {"Administration", "Manager"}) public void add(Customer customer) { if (customer != null) { customerPropsByIds.put(customer.getId(), convert(customer)); } }OK bây giờ tôi có thể lấy ra mảng các Annotation đã áp dụng cho method như sau:
Method method = //...obtain method object Annotation[] annotations = method.getDeclaredAnnotations(); for (Annotation annotation : annotations) { if (annotation instanceof Permission) { Permission permissionAnnotation = (Permission) annotation; String[] permissions = permissionAnnotation.value(); } }
Tương tự như vậy, bạn cũng có thể lấy được đối tượng Annotation cụ thể đã áp dụng cho một phương thức nếu như bạn biết trước.
Method method = // ...obtain method object Annotation annotation = method.getAnnotation(Permission.class); if (annotation instanceof Permission) { Permission permissionAnnotation = (Permission) annotation; System.out.println(permissionAnnotation.value()); }
## Parameter AnnotationsCác parameter truyền vào một method cũng có thể dùng Annotation. Với Java Reflection chúng ta cũng có thể access được các Annotation này.
Ví dụ chúng ta có doSomething() method và parameter của nó được đánh dấu chú thích như sau:
public class DemoClass { public static void doSomething ( @MyAnnotation(name = "aName", value = "aValue") String parameter){ } }
Chúng ta sẽ lấy được các Annotation đã áp dụng cho các parameter từ đối tượng Method như sau:
Method method = //...obtain method object Annotation[][] parameterAnnotations = method.getParameterAnnotations(); Class[] parameterTypes = method.getParameterTypes(); int i = 0; for (Annotation[] annotations : parameterAnnotations){ Class parameterType = parameterTypes[i++]; for (Annotation annotation : annotations){ if (annotation instanceof MyAnnotation){ MyAnnotation myAnnotation = (MyAnnotation) annotation; System.out.println("param: " + parameterType.getName()); System.out.println("name : " + myAnnotation.name()); System.out.println("value: " + myAnnotation.value()); } } }
Các bạn lưu ý, phương thức Method.getParameterAnnotations() sẽ trả về một mảng Annotation 2 chiều. Mỗi array tương ứng với danh sách các Annotation được dùng cho một parameter của method.
## Thực hànhTừ dự án mà các bạn đã tạo ở đầu bài viết, hãy tạo một package mới và đặt tên nó là enums. Sau đó, tạo ra các enum Action, UserRole với nội dung như sau:
com.vanthuong.example.enums.Action
package com.vanthuong.example.enums; /** * Official blog: http://www.vanthuong.com * Learn and share your java knowledge */ public enum Action { READ("get"), ADD("add"), UPDATE("update"), DELETE("delete"); private final String value; Action(String value) { this.value = value; } public String value() { return this.value; } }
com.vanthuong.example.enums.UserRole
package com.vanthuong.example.enums; /** * Official blog: http://www.vanthuong.com * Learn and share your java knowledge */ public enum UserRole { ADMINISTRATION, MANAGER, USER; }
Tiếp theo, hãy tạo mới một package khác và đặt tên nó là
**dao**. Trong package này, chúng ta sẽ có các lớp giao tiếp với database. Tuy nhiên, trong bài viết này chỉ dừng lại mức giới thiệu về cách sử dụng Java Reflection + Annotation nên tôi sẽ không làm trực tiếp với database mà sẽ tạo một đối tượng Store như 1 DB giả để lưu trữ dự liệu. Dưới đây là nội dung của các tập tin này.
com.vanthuong.example.dao.Store
package com.vanthuong.example.dao; /* * Official blog: http://www.vanthuong.com * Learn and share your java knowledge */ import com.vanthuong.example.annotations.Column; import com.vanthuong.example.annotations.Permission; import com.vanthuong.example.model.Customer; import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import static com.vanthuong.example.enums.UserRole.ADMINISTRATION; import static com.vanthuong.example.enums.UserRole.MANAGER; public class Store { private final Map<Long, Map<String, Object>> customerPropsByIds = new HashMap<>(); public Store() { Map<String, Object> valuesByProperties = new HashMap<>(); System.out.println("--- Init mock database ---"); valuesByProperties.put("id", 1L); valuesByProperties.put("name", "Nguyen Van A"); valuesByProperties.put("title", "MANAGER"); valuesByProperties.put("address", "Somme where"); valuesByProperties.put("phoneNumber", "123456789"); customerPropsByIds.put(1L, valuesByProperties); } public List<Customer> getCustomers() { List<Customer> customers = new ArrayList<>(); customerPropsByIds.values() .forEach(customerPropsByKeys -> { Customer customer = new Customer(); customer.setId((Long) customerPropsByKeys.get("id")); customer.setContactName((String) customerPropsByKeys.get("name")); customer.setContactTitle((String) customerPropsByKeys.get("title")); customer.setAddress((String) customerPropsByKeys.get("address")); customer.setPhoneNumber((String) customerPropsByKeys.get("phoneNumber")); customers.add(customer); }); return customers; } @Permission(value = {ADMINISTRATION, MANAGER}) public void add(Customer customer) { if (customer != null) { customerPropsByIds.put(customer.getId(), convert(customer)); } } public void select(String columnName) { // TODO: add your code here to implement this action } @Permission(value = {ADMINISTRATION, MANAGER}) public void delete() { // TODO: add your code here to implement this action } @Permission(value = {ADMINISTRATION, MANAGER}) public void update() { // TODO: add your code here to implement this action } private Map<String, Object> convert(Customer customer) { Map<String, Object> valuesByProperties = new HashMap<>(); Class<?> customerClass = customer.getClass(); Field[] fields = customerClass.getDeclaredFields(); for (Field field : fields) { getFieldValueByColumn(customer, field, valuesByProperties); } return valuesByProperties; } private void getFieldValueByColumn(Customer customer, Field field, Map<String, Object> valuesByProperties) { field.setAccessible(true); try { Annotation[] annotations = field.getDeclaredAnnotations(); for (Annotation annotation : annotations) { if (annotation instanceof Column) { String propertyName = ((Column) annotation).name(); Object value = field.get(customer); valuesByProperties.put(propertyName, value); } } } catch (Exception e) { e.printStackTrace(); } } }Trong lớp này các bạn thấy rằng, tôi đã tạo ra biến customerPropsByIds để mô phỏng như là một Database để lưu trữ giá trị của các thuộc tính có trong model Customer như là một column.
- Phương thức getCustomers() được dùng để tất cả dữ liệu có trong customerPropsByIds để trả về. Giả sử nếu tôi dùng database thì đoạn code bên trong sẽ thay thế bằng việc parse đối tượng SQL sang Customer Object.
- Phương thức add() được dùng để thêm mới một customer vào database.
- Phương thức convert() được sử dụng để convert một đối tượng Customer sang dữ liệu có thể lưu vào customerPropsByIds. Tuy nhiên, nếu như các bạn sử dụng Database thì phương thức này sẽ được dùng để chuyển thành câu lệnh SQL chẳng hạn.
Tóm lại, lớp mục đích của tôi là muốn cho các bạn thấy cách mà tôi đang thực hiện reflection với các annotation của các field trong một class, cụ thể là @Column và lớp Customer.
com.vanthuong.example.dao.CustomerDAO
package com.vanthuong.example.dao; import com.vanthuong.example.annotations.Permission; import com.vanthuong.example.enums.Action; import com.vanthuong.example.enums.UserRole; import com.vanthuong.example.exceptions.CustomException; import com.vanthuong.example.model.Customer; import java.lang.annotation.Annotation; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import static com.vanthuong.example.enums.Action.ADD; import static com.vanthuong.example.enums.UserRole.ADMINISTRATION; /** * Official blog: http://www.vanthuong.com * Learn and share your java knowledge */ public class CustomerDAO { private final Store store; public CustomerDAO() { store = new Store(); } public List<Customer> getAll() { return store.getCustomers(); } public void add(Customer customer) throws CustomException { // Hard code to execute method with Administration right if (hasPermission(ADD, ADMINISTRATION)) { store.add(customer); } else { throw new CustomException("You don't have permission to execute this action"); } } private boolean hasPermission(Action action, UserRole userRole) throws CustomException { Class<?> storeClass = store.getClass(); List<UserRole> permissions = new ArrayList<>(); try { Method method = storeClass.getMethod(action.value()); Annotation[] annotations = method.getDeclaredAnnotations(); permissions.addAll(getPermissions(annotations)); return permissions.isEmpty() || permissions.contains(userRole); } catch (NoSuchMethodException e) { throw new CustomException( String.format("Action %s is not existing in %s class", action.value(), storeClass.getName())); } } private List<UserRole> getPermissions(Annotation[] annotations) { List<UserRole> roles = new ArrayList<>(); for (Annotation annotation : annotations) { if (annotation instanceof Permission) { Permission permission = (Permission) annotation; UserRole[] permissionRoles = permission.value(); if (permissionRoles.length > 0) { roles.addAll(Arrays.asList(permissionRoles)); } } } return roles; } }
Ở lớp CustomerDAO này chúng ta chủ yếu tập trung vào phương thức hasPermission(). Và đây là cách mà tôi sử dụng Reflection cho các annotation được áp dụng cho một phương thức.
OK, bây giờ chúng ta lại tạo thêm một package mới là
**exceptions**và một lớp mới có tên là **CustomException**.
com.vanthuong.example.exceptions.CustomException
package com.vanthuong.example.exceptions; /** * Official blog: http://www.vanthuong.com * Learn and share your java knowledge */ public class CustomException extends Exception { public CustomException() { super(); } public CustomException(String message) { super(message); } public CustomException(String message, Throwable cause) { super(message, cause); } public CustomException(Throwable cause) { super(cause); } }
Cuối cùng, tạo mới class Application và chép nội dung bên dưới đây vào để chạy thử chương trình.
com.vanthuong.example.Application
package com.vanthuong.example; /* * Official blog: http://www.vanthuong.com * Learn and share your java knowledge */ import com.vanthuong.example.dao.Store; import com.vanthuong.example.model.Customer; import java.util.List; public class Application { public static void main(String[] args) { Store store = new Store(); List<Customer> customers = store.getCustomers(); System.out.println("--- LIST OF CUSTOMERS ---"); customers.forEach(System.out::println); System.out.println("--- ADD NEW CUSTOMER ---"); Customer customer = new Customer(); customer.setId(2L); customer.setContactName("Thuong Van Nguyen"); customer.setContactTitle("Software Engineer"); customer.setPhoneNumber("123123123123"); customer.setAddress("HCM"); store.add(customer); List<Customer> customerList = store.getCustomers(); System.out.println("--- LIST OF CUSTOMERS ---"); customerList.forEach(System.out::println); } }Chương trình sẽ in ra kết quả như hình bên dưới
![Kết quả chạy chương trình Kết quả chạy chương trình](https://lh3.googleusercontent.com/-Gi9aUn0FGmM/V9rA634it3I/AAAAAAAAF6I/EweoqPk3wvcwVHYRg18lJvaX7ceFvr7ngCLcB/s1600/ket-qua-chay-chuong-trinh.png)
### It's your turnYeah, nãy giờ xem xong bài viết này các bạn cũng thấy rằng trong các lớp Store và CustomerDAO tôi vẫn còn chưa implement các phương thức như select(), update(), delete(). Đây chính là phần để các bạn practice. Ngoài ra, các bạn có thể thay đổi cách tiếp cận sang dùng Database để dễ dàng hơn trong việc thực hành. Thay vì convert chúng thành Map<String, Object> các bạn có thể viết câu Query để giao tiếp với database thật sự.
Dưới đây là liên kết để các bạn tải về dự án này đầy đủ và tiếp tục thực hành.
https://github.com/vanthuongkb/reflectionexample1Trong bài viết sắp tới, tôi sẽ có gắng cho ra một dự án kết hợp sử dụng Reflection + Annotation + MySQL để cho nội dung hay hơn. Các bạn đón đọc nhé.
Chúc các bạn học tốt.
## Bình luận

WARC-Identified-Payload-Type: text/html


text: Công ty TNHH Đầu tư & Phát triển Việt An90 Đường số 20, khu phố 2, P. Bình An, Q. 2, Tp. HCMĐiện thoại: (84-8)3740 6903 - Fax: (84-8)3740 6904 - Email: info@vietanart.comCopyright© 2008 VIET AN CO.LTD. All rights reserved

Cache-Control: private

X-Powered-By-Plesk: PleskWin

Content-Type: text/html; charset=utf-8


text:
Tài liệu luyện thi IMO 2010 (Olympic Toán học quốc tế năm 2010) của TS. Trần Nam Dũng (ĐH KHTN Tp HCM). Download.
Mục lục
1. Các phương pháp và kỹ thuật chứng minh
2. Nguyên lý chuồng và thỏ
3. Giải phương trình hàm bằng cách lập phương trình
4. Các bài toán tối ưu về hệ các tập hợp
5. Vê kỳ thi chọn đội tuyển Việt Nam dự thi IMO 2010
6. Bât đẳng thức: Một số ví dụ và bài tập chọn lọc
Tài liệu luyện thi IMO 2010 (Olympic Toán học quốc tế năm 2010) của TS. Trần Nam Dũng (ĐH KHTN Tp HCM). Download.
Không có nhận xét nào :

markdown:
Tài liệu luyện thi IMO 2010 (Olympic Toán học quốc tế năm 2010) của TS. Trần Nam Dũng (ĐH KHTN Tp HCM).
[ Download.](http://book.vnmath.com/2010/09/tai-lieu-boi-duong-doi-tuyen-imo-viet.html)
Mục lục
1. Các phương pháp và kỹ thuật chứng minh
2. Nguyên lý chuồng và thỏ
3. Giải phương trình hàm bằng cách lập phương trình
4. Các bài toán tối ưu về hệ các tập hợp
5. Vê kỳ thi chọn đội tuyển Việt Nam dự thi IMO 2010
6. Bât đẳng thức: Một số ví dụ và bài tập chọn lọc
Tài liệu luyện thi IMO 2010 (Olympic Toán học quốc tế năm 2010) của TS. Trần Nam Dũng (ĐH KHTN Tp HCM).
[Download.](http://book.vnmath.com/2010/09/tai-lieu-boi-duong-doi-tuyen-imo-viet.html) ![](http://3.bp.blogspot.com/_dbVe2znZoC0/SxpaRypTFTI/AAAAAAAAAwY/voItZ3zRLDc/s400/logo123.jpg)
## Không có nhận xét nào :


text:
Cuối tuần qua, cựu “thần đồng” bóng đá Việt Nam Phạm Văn Quyến cùng nhiều ngôi sao khác như diễn viên Bình Minh, Quý Bình, cựu cầu thủ Phan Thanh Bình, ca sĩ Miu Lê, hot girl Quỳnh Nhi, DJ TyTy đã có mặt trong chương trình “Cùng Bóng Đá khám phá EURO”.
Các vị khách mời đã mang đến một đêm xem chung kết EURO 2016 khó quên cho các sinh viên trường ĐH Tôn Đức Thắng và người hâm mộ. Không khí của ngày hội như bùng nổ với phần trình diễn bốc lửa của ca sĩ Miu Lê. Những bản hit mới nhất như "Vụt tan đi" hay bài tủ trong phim "Em là bà nội của anh",... đã hoàn toàn chinh phục tất cả các khán giả. Càng về sau, sân khấu càng trở nên sôi động với những bản nhạc remix “gây nghiện” từ DJ TyTy.
Ca sĩ Miu Lê mang đến cho người hâm mộ những bài hát trẻ trung sôi động.
Trước thời gian diễn ra trận chung kết EURO 2016, ngoài việc thưởng thức trận đấu trên màn hình LED “khủng” 350 inches, khán giả còn có những phút giây thoải mái qua những bình luận thông minh, dí dỏm của BLV nhà báo Trần Minh và của bộ đôi Văn Quyến và Thanh Bình.
Bên cạnh đó, sự góp mặt của hai diễn viên lịch lãm Bình Minh và Quý Bình đã khiến cho các fan nữ phải xao xuyến bởi vẻ ngoài điển trai, dễ mến và gần gũi trong phần giao lưu với khán giả. Đặc biệt gần hai ngàn khán giả đã hò reo không ngớt trước màn ngẫu hứng của Quý Bình với bài hát "Trả nợ tình xa".
Trong sự kiện này, Văn Quyến khá bất ngờ khi được người đẹp Quỳnh Nhi dành nhiều tình cảm đặc biệt: “Em là fan của Văn Quyến đã rất lâu rồi, hôm nay được gặp anh ấy ở đêm chung kết “Cùng Bóng Đá khám phá EURO” thật là điều quá tuyệt vời, được bắt tay trò chuyện và chụp hình lưu niệm với anh. Có lẽ đây sẽ là những phút giây thật sự khó quên với cá nhân em.”
Quỳnh Nhi và Phạm Văn Quyến trong chương trình “Cùng Bóng Đá khám phá EURO”.
Chia sẻ về đêm chung kết “Cùng Bóng Đá khám phá EURO”, chương trình do báo Thể thao Việt Nam, BongDa.com.vn phối hợp cùng nhà tài trợ Number 1 tổ chức tại nhà thi đấu trường Đại học Tôn Đức Thắng – Văn Quyến nói: “Thật sự Quyến rất ngỡ ngàng với sự vui nhộn, niềm nở của các bạn sinh viên nơi đây. Đã rất lâu rồi Quyến mới được sống lại không khí sôi động, nóng bỏng đến vậy. Chắc chắn đây sẽ là kỷ niệm rất khó quên với riêng cá nhân Quyến và nhiều bạn trẻ của trường Đại học Tôn Đức Thắng. Qua đây cho Quyến gửi lời cảm ơn đến tất cả.”
Không giấu được niềm vui khi được hòa mình vào không khí sôi động tại nhà thi đấu trường Đại học Tôn Đức Thắng, tuy nhiên Văn Quyến cũng tỏ ra tiếc nuối khi Ronaldo, cầu thủ anh kì vọng sẽ ghi bàn giúp Bồ Đào Nha vô địch phải sớm rời sân vì chấn thương.
“Quả là quá đáng tiếc cho Bồ Đào Nha và cá nhân Ronaldo bởi vì anh phải rời sân quá sớm do chấn thương. Nhưng bóng đá là vậy, ngoài chuyên môn vẫn rất cần có được sự may mắn. Tôi vẫn kỳ vọng rằng may mắn sẽ miểm cười với những người yêu mến Ronaldo và Bồ Đào Nha” - Văn Quyến chia sẻ khi Ronaldo phải rời sân trong hiệp 1.
Tuy nhiên, nỗi buồn của Văn Quyến cuối cùng phần nào đã được khoả lấp khi đội bóng anh ủng hộ là Bồ Đào Nha đã có chiến thắng 1-0 trước chủ nhà Pháp để lên ngôi vô địch EURO 2016.

markdown:
**Cuối tuần qua, cựu “thần đồng” bóng đá Việt Nam Phạm Văn Quyến cùng nhiều ngôi sao khác như diễn viên Bình Minh, Quý Bình, cựu cầu thủ Phan Thanh Bình, ca sĩ Miu Lê, hot girl Quỳnh Nhi, DJ TyTy đã có mặt trong chương trình “Cùng Bóng Đá khám phá EURO”.**
Các vị khách mời đã mang đến một đêm xem chung kết EURO 2016 khó quên cho các sinh viên trường ĐH Tôn Đức Thắng và người hâm mộ. Không khí của ngày hội như bùng nổ với phần trình diễn bốc lửa của ca sĩ
**Miu Lê**. Những bản hit mới nhất như *"Vụt tan đi"* hay bài tủ trong phim *"Em là bà nội của anh"*,... đã hoàn toàn chinh phục tất cả các khán giả. Càng về sau, sân khấu càng trở nên sôi động với những bản nhạc remix *“gây nghiện” *từ **DJ TyTy**.
Ca sĩ
**Miu Lê** mang đến cho người hâm mộ những bài hát trẻ trung sôi động.
Trước thời gian diễn ra trận chung kết EURO 2016, ngoài việc thưởng thức trận đấu trên màn hình LED
*“khủng” *350 inches, khán giả còn có những phút giây thoải mái qua những bình luận thông minh, dí dỏm của BLV nhà báo **Trần Minh **và của bộ đôi **Văn Quyến** và **Thanh Bình**.
Bên cạnh đó, sự góp mặt của hai diễn viên lịch lãm
**Bình Minh **và **Quý Bình** đã khiến cho các fan nữ phải xao xuyến bởi vẻ ngoài điển trai, dễ mến và gần gũi trong phần giao lưu với khán giả. Đặc biệt gần hai ngàn khán giả đã hò reo không ngớt trước màn ngẫu hứng của **Quý Bình **với bài hát *"Trả nợ tình xa"*.
Trong sự kiện này,
**Văn Quyến** khá bất ngờ khi được người đẹp **Quỳnh Nhi** dành nhiều tình cảm đặc biệt: *“Em là fan của Văn Quyến đã rất lâu rồi, hôm nay được gặp anh ấy ở đêm chung kết “Cùng Bóng Đá khám phá EURO” thật là điều quá tuyệt vời, được bắt tay trò chuyện và chụp hình lưu niệm với anh. Có lẽ đây sẽ là những phút giây thật sự khó quên với cá nhân em.”* **Quỳnh Nhi** và **Phạm Văn Quyến **trong chương trình *“Cùng Bóng Đá khám phá EURO”*.
Chia sẻ về đêm chung kết
*“Cùng Bóng Đá khám phá EURO”*, chương trình do báo Thể thao Việt Nam, BongDa.com.vn phối hợp cùng nhà tài trợ Number 1 tổ chức tại nhà thi đấu trường Đại học Tôn Đức Thắng – **Văn Quyến** nói: *“Thật sự Quyến rất ngỡ ngàng với sự vui nhộn, niềm nở của các bạn sinh viên nơi đây. Đã rất lâu rồi Quyến mới được sống lại không khí sôi động, nóng bỏng đến vậy. Chắc chắn đây sẽ là kỷ niệm rất khó quên với riêng cá nhân Quyến và nhiều bạn trẻ của trường Đại học Tôn Đức Thắng. Qua đây cho Quyến gửi lời cảm ơn đến tất cả.”*
Không giấu được niềm vui khi được hòa mình vào không khí sôi động tại nhà thi đấu trường Đại học Tôn Đức Thắng, tuy nhiên
**Văn Quyến** cũng tỏ ra tiếc nuối khi **Ronaldo**, cầu thủ anh kì vọng sẽ ghi bàn giúp **Bồ Đào Nha **vô địch phải sớm rời sân vì chấn thương. *“Quả là quá đáng tiếc cho Bồ Đào Nha và cá nhân Ronaldo bởi vì anh phải rời sân quá sớm do chấn thương. Nhưng bóng đá là vậy, ngoài chuyên môn vẫn rất cần có được sự may mắn. Tôi vẫn kỳ vọng rằng may mắn sẽ miểm cười với những người yêu mến Ronaldo và Bồ Đào Nha” - * **Văn Quyến**chia sẻ khi **Ronaldo**phải **rời sân trong hiệp 1.**
Tuy nhiên, nỗi buồn của
**Văn Quyến** cuối cùng phần nào đã được khoả lấp khi đội bóng anh ủng hộ là **Bồ Đào Nha **đã có chiến thắng 1-0 trước chủ nhà **Pháp** để lên ngôi vô địch EURO 2016.

Vary: Accept-Encoding


text:
MÁY ÉP MÍA
XE NƯỚC MÍA
Tư vấn: 093-881-7979
Máy ép mía siêu sạch và xe nước mía thường giá rẻ
Trang chủ
Giới thiệu
Máy ép
Xưởng sản xuất
Phụ kiện máy ép
Tư vấn
Sitemap
Liên hệ
xe nước mía quận thủ đức
Xe ép mía siêu sạch quận Thủ Đức
Xe ép mía siêu sạch quận Thủ Đức. Như các bạn đã biết quận Thủ Đức là một trong 24 quận và huyện trực thuộc TP.HCM. có mật độ dân số khá cao. Vì vậy việc kinh doanh nước mía giải khát, tại quận Thủ Đức càng ngày càng tăng. Để tìm được một nhà cung cấp máy ép mía siêu sạch quận Thủ Đức chất lượng là đìu lo lắng của nh ...
Máy cạo vỏ mía Việt Thống
Trang chủ
|
Giới thiệu
|
Máy ép
|
Xưởng sản xuất
|
Phụ kiện máy ép
|
Từ khóa
|
Liên hệ
Copyright © 2013 Việt Thống. All Rights Reserved

markdown:
[Xe ép mía siêu sạch quận Thủ Đức. Như các bạn đã biết quận Thủ Đức là một trong 24 quận và huyện trực thuộc TP.HCM. có mật độ dân số khá cao. Vì vậy việc kinh doanh nước mía giải khát, tại quận Thủ Đức càng ngày càng tăng. Để tìm được một nhà cung cấp máy ép mía siêu sạch quận Thủ Đức chất lượng là đìu lo lắng của nh ...](/tu-van/xe-ep-mia-sieu-sach-quan-thu-duc.html) ![Xe ép mía siêu sạch quận Thủ Đức Xe ép mía siêu sạch quận Thủ Đức](http://xenuocmia.vn/images/stories/ht-0112.jpg)
![Xe ép mía siêu sạch quận Thủ Đức Xe ép mía siêu sạch quận Thủ Đức](http://xenuocmia.vn/images/stories/ht-0112.jpg)

WARC-Truncated: length

Pragma: no-cache

P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"

Cache-Control: post-check=0, pre-check=0

Set-Cookie: xenuocmia_temp_tpl=xenuocmia_temp; expires=Mon, 10-Sep-2018 09:19:37 GMT; path=/

Vary: User-Agent

X-Content-Encoded-By: Joomla! 1.5


text:
Các tỉnh mở thưởng hôm nay
XSHCM thứ 2 - Kết quả xổ số TP Hồ Chí Minh ngày 29/05/2017
Kết quả xổ số TP Hồ Chí Minh sớm nhất: XS HCM gửi 6022 (1000đ)
XSHCM thứ 2, thứ 7- Xổ số đài thành phố Hồ chí Minh (XSTPHCM) mở thưởng 16h14 Thứ 2 và Thứ 7 hàng tuần và được tường thuật trực tiếp tại trường quay Công ty xổ số kiến thiết thành phố nhanh nhất, chính xác nhất trên Xoso.me.
Tại website KQXS quí độc giả có thể xem bảng kết quả xổ số Hồ Chí Minh mới nhất chiều tối hôm nay (bữa nay), hôm qua, tuần này, mấy tuần trước (tuần rồi) thống kê đầu đuôi, và dự đoán kết quả xổ số Hồ Chí Minh (dd xstp) siêu chuẩn, siêu chính xác và hoàn toàn miễn phí
Để nhận được thông tin kết quả xổ số miền Nam thành phố Hồ Chí Minh (XSMN TPHCM) nhanh và chính xác nhất, bạn hãy soạn tin:
TTTT XSTP, XSTTTP, SXHCM, SXTPHCM, XSKTTP, KQXSTP, TTTT XSHCM, XS Thanhpho, XSKTHCM, KQXSHCM hoặc XSMN
Tuy nhiên, trong quá trình dò kết quả vé số đài thành phố Hồ Chí Minh nói riêng và các tỉnh miền nam nói chung tại XSMN, các bạn không tìm thấy hoặc kết quả không trả về, có thể do một số nguyên nhân sau:
- Chưa có kết quả xổ số. (Thời gian mở thưởng: 16h14’)
- Đài Hồ Chí Minh không mở thưởng.
- Bạn tìm kiếm hoặc soạn sai cú pháp XSHCM, XSKTTPHCM.
Nếu bạn trúng thưởng vé số Thành phố, đổi số trúng xin vui lòng liên hệ:
Cty TNHH MTV Xổ Số Kiến Thiết Thành Phố Hồ Chí Minh
23 Lê Duẩn, P.Bến Nghé, Q.1, TP HCM.
Điện thoại: 38293076 - 38295225. Fax: 38220775
Xổ số miền bắc
Xổ số điện toán
Xổ số miền nam
- Cần Thơ - Thứ 4
- Đồng Nai - Thứ 4
- Sóc Trăng - Thứ 4
- Cà Mau - Thứ 2
- Đồng Tháp - Thứ 2
- Bạc Liêu - Thứ 3
- Bến Tre - Thứ 3
- Vũng Tàu - Thứ 3
- An Giang - Thứ 5
- Bình Thuận - Thứ 5
- Tây Ninh - Thứ 5
- Bình Dương - Thứ 6
- Trà Vinh - Thứ 6
- Vĩnh Long - Thứ 6
- Bình Phước - Thứ 7
- Hậu Giang - Thứ 7
- Long An - Thứ 7
- Đà Lạt - Chủ nhật
- Kiên Giang - Chủ nhật
- Tiền Giang - Chủ nhật
- TP Hồ Chí Minh - Thứ 2, Thứ 7
Xổ số miền trung
Tin mới nhất
- Va chạm với xe container, người điều khiển xe máy bị thương nặng
- Gây tai nạn liên hoàn trên cầu Phú Mỹ, xe tải rồ ga bỏ trốn
- Hải Dương: Xe máy tông trực diện xe tải, nam thanh niên tử vong
- Xe máy bị ô tô kéo hơn 100m, cả 2 xe bốc cháy dữ dội trong đêm
- Lạng Sơn: Tai nạn liên hoàn giữa 3 ô tô vào rạng sáng, giao thông ùn tắc
Thống kê kết quả xổ số
Liên hết hay
-
Nạp tiền điện thoại online nhanh chóng, đơn giản, tiện lợi và được chiết khấu 5-7% mệnh giá thẻ

markdown:
**Các tỉnh mở thưởng hôm nay**
|
|[Đà Nẵng](/mien-trung/xsdng-ket-qua-xo-so-da-nang-p24.html) [Miền Bắc](/kqxsmb-xstd-ket-qua-xo-so-mien-bac.html) [Đồng Nai](/mien-nam/xsdn-ket-qua-xo-so-dong-nai-p11.html) [Khánh Hòa](/mien-trung/xskh-ket-qua-xo-so-khanh-hoa-p28.html) [Điện toán](/ket-qua-xo-so-dien-toan.html) [Sóc Trăng](/mien-nam/xsst-ket-qua-xo-so-soc-trang-p17.html) [Mega 6/45](/ket-qua-xo-so-tu-chon-vietlott-mega-6-45-ngay-hom-nay.html)
##
**
XSHCM thứ 2 - Kết quả xổ số TP Hồ Chí Minh ngày 29/05/2017
**
|Giải tám|50
|Giải bảy|734
|Giải sáu||
|6713 |
|9083 6425
|Giải năm|1675
|Giải bốn||
|46232 |
|92677 |
|30231 43167
|
|54700 |
|81106 72674
|Giải ba||
|40377 52105
|Giải nhì|74153
|Giải nhất|27511
|Đặc biệt|992683
Kết quả
**xổ số TP Hồ Chí Minh** sớm nhất: **XS HCM** gửi **6022 (1000đ)**
|Đầu||Đuôi|
0 |0,5,6|
1 |1,3|
2 |5|
3 |1,2,4|
4
5 |0,3|
6 |7|
7 |4,5,7,7|
8 |3,3|
9
|Đầu||Đuôi|
|0,5|0
|1,3|1
|3|2
|1,5,8,8|3
|3,7|4
|0,2,7|5
|0|6
|6,7,7|7
8
9 **Xổ số đài thành phố Hồ chí Minh (XSTPHCM) mở thưởng 16h14 Thứ 2 và Thứ 7 hàng tuần và được tường thuật trực tiếp tại trường quay Công ty xổ số kiến thiết thành phố nhanh nhất, chính xác nhất trên ** [XSHCM](http://xoso.me/mien-nam/xshcm-ket-qua-xo-so-thanh-pho-ho-chi-minh-p14.html)thứ 2, thứ 7- *Xoso.me*.
Tại website
** quí độc giả có thể xem bảng kết quả xổ số Hồ Chí Minh mới nhất chiều tối hôm nay (bữa nay), hôm qua, tuần này, mấy tuần trước (tuần rồi) thống kê đầu đuôi, và dự đoán kết quả xổ số Hồ Chí Minh (dd xstp) siêu chuẩn, siêu chính xác và hoàn toàn miễn phí KQXS**
|
|
Để nhận được thông tin kết quả xổ số miền Nam thành phố Hồ Chí Minh (
**XSMN** ** TPHCM) **nhanh và chính xác nhất, bạn hãy soạn tin: **TTTT XSTP**, **XSTTTP**, **SXHCM, ** **SXTPHCM**, **XSKTTP**, **KQXSTP**, **TTTT XSHCM**, **XS Thanhpho**, **XSKTHCM**, **KQXSHCM** ** hoặc** **XSMN **
Tuy nhiên, trong quá trình dò kết quả vé số đài thành phố Hồ Chí Minh nói riêng và các tỉnh miền nam nói chung tại
[, các bạn không tìm thấy hoặc kết quả không trả về, có thể do một số nguyên nhân sau: XSMN](http://xoso.me/kqxsmn-ket-qua-xo-so-mien-nam.html)
- Chưa có kết quả xổ số. (Thời gian mở thưởng: 16h14’)
- Đài Hồ Chí Minh không mở thưởng.
- Bạn tìm kiếm hoặc soạn sai cú pháp XSHCM, XSKTTPHCM.
*Nếu bạn trúng thưởng vé số Thành phố, đổi số trúng xin vui lòng liên hệ:* **Cty TNHH MTV Xổ Số Kiến Thiết Thành Phố Hồ Chí Minh**
23 Lê Duẩn, P.Bến Nghé, Q.1, TP HCM.
Điện thoại: 38293076 - 38295225. Fax: 38220775
**Xổ số miền bắc**
**Xổ số điện toán**
**Xổ số miền nam**
-
**Cần Thơ**- Thứ 4
-
**Đồng Nai**- Thứ 4
-
**Sóc Trăng**- Thứ 4
-
**Cà Mau**- Thứ 2
-
**Đồng Tháp**- Thứ 2
-
**Bạc Liêu**- Thứ 3
-
**Bến Tre**- Thứ 3
-
**Vũng Tàu**- Thứ 3
-
**An Giang**- Thứ 5
-
**Bình Thuận**- Thứ 5
-
**Tây Ninh**- Thứ 5
-
**Bình Dương**- Thứ 6
-
**Trà Vinh**- Thứ 6
-
**Vĩnh Long**- Thứ 6
-
**Bình Phước**- Thứ 7
-
**Hậu Giang**- Thứ 7
-
**Long An**- Thứ 7
-
**Đà Lạt**- Chủ nhật
-
**Kiên Giang**- Chủ nhật
-
**Tiền Giang**- Chủ nhật
-
**TP Hồ Chí Minh**- Thứ 2, Thứ 7
**Xổ số miền trung**
**Tin mới nhất** [Va chạm với xe container, người điều khiển xe máy bị thương nặng](http://xoso.me/tin-tuc/va-cham-voi-xe-container-nguoi-dieu-khien-xe-may-bi-thuong-nang-n5875.html) [Gây tai nạn liên hoàn trên cầu Phú Mỹ, xe tải rồ ga bỏ trốn](http://xoso.me/tin-tuc/gay-tai-nan-lien-hoan-tren-cau-phu-my-xe-tai-ro-ga-bo-tron-n5874.html) [Hải Dương: Xe máy tông trực diện xe tải, nam thanh niên tử vong](http://xoso.me/tin-tuc/hai-duong-xe-may-tong-truc-dien-xe-tai-nam-thanh-nien-tu-vong-n5873.html) [Xe máy bị ô tô kéo hơn 100m, cả 2 xe bốc cháy dữ dội trong đêm](http://xoso.me/tin-tuc/xe-may-bi-o-to-keo-hon-100m-ca-2-xe-boc-chay-du-doi-trong-dem-n5872.html) [Lạng Sơn: Tai nạn liên hoàn giữa 3 ô tô vào rạng sáng, giao thông ùn tắc](http://xoso.me/tin-tuc/lang-son-tai-nan-lien-hoan-giua-3-o-to-vao-rang-sang-giao-thong-un-tac-n5871.html)
**Thống kê kết quả xổ số**
**Liên hết hay**
-
Nạp tiền điện thoại online nhanh chóng, đơn giản, tiện lợi và được chiết khấu 5-7% mệnh giá thẻ


text:
Đăng bài viết
Toggle navigation
Blog tâm sự
Đặt tên cho con
Ngoại tình
Mẹ chồng nàng dâu
Món ngon mỗi ngày
Hạnh phúc gia đình
Ly hôn
Tiêu dùng
Làm cha mẹ
Mẹo
Thời trang làm đẹp
Tử vi, bói vui
Cưới hỏi
Cẩm nang mua bán
Ô tô, xe máy
Trang chủ
trứng gà khỏe
trứng gà khỏe, tag của , nội dung mới nhất về trứng gà khỏe, Trang 1
.
Cách đơn giản phân biệt trứng từ gà khỏe hay gà bệnh
Nguyễn Thu Hương
,
Trứng gà ngon, chất lượng được đẻ ra từ những con gà khỏe mạnh. Độ cứng của vỏ hay màu sắc lòng đỏ trứng có thể cho thấy rõ chất lượng trứng.
Đọc tiếp
07/05/2016 17:37:19
521
Trang chủ
trứng gà khỏe
Tin mới nhất
Thủ tục thuê xe tự lái Đà Nẵng
20/09/2017
23
Người dùng đánh giá về dòng xe Suzuki Ciaz
18/09/2017
28
Lưu ý trong quá trình sử dụng máy phát điện
19/09/2017
18
Nội thất là gì?
19/09/2017
17
Bí quyết chọn mua ghế văn phòng tốt cho sức khỏe
19/09/2017
17
Bí quyết chọn túi xách
19/09/2017
37
Tin xem nhiều nhất
Hướng dẫn chuyển danh bạ từ iPhone sang Android toàn tập
16/08/2017
1
Máy quay phim chuyên nghiệp
16/08/2017
1
Công ty TNHH Đại Phát Tín
22/08/2017
1
Lợi ích tập Yoga đối với người cao huyết áp
23/08/2017
1
Vá lỗ thủng, rò rỉ thùng dầu máy biến áp với Polywater Powerpatch
23/08/2017
1
Da trắng rạng ngời chỉ trong 1 tuần nếu dùng lá tía tô để tắm đúng cách
31/08/2017
1
Blog tâm sự
Thư gửi mẹ của tử tù và CEO - Mẹ đều đã yêu thương hết lòng, mà sao kết cục cuộc đời lại ra nông nỗi ấy?
Coi thường con dâu, mẹ chồng xúi con trai cặp bồ rồi bỏ vợ
1435
Câu chuyện khiến ai nấy đều tiếc rẻ vì mình đã không làm việc tốt
1403
Cuộc đụng độ bất ngờ với vợ ngoan cùng ba người đàn ông ở nhà hàng khiến chồng đứng sững...
1739
Tử vi, Bói vui
Cách tính cung mệnh
Điểm mặt 4 con giáp TRÚNG MÁNH hưởng tài, lười chảy thây, chơi không mà vẫn ĐƯỢC LỘC
3772
Top con giáp SỐ TRỜI đã định, giàu sang thiên bẩm, chơi không cũng đầy tiền
2358
Giải mã sự thật của cuộc sống vợ chồng nhờ những giấc mơ ngoại tình
559
Thời trang, Làm đẹp
Đầm cổ yếm suông cho bạn gái thêm dịu dàng
Vitamin E giải pháp cho làn da tàn nhang
6
Hướng dẫn cách dùng kem trị nám tàn nhang an toàn nhất cho da
3
Bí quyết đắp mặt nạ cám gạo chuẩn để da trắng nõn chỉ sau 2 tuần
2
Món ngon mỗi ngày
Món ngon mỗi ngày: Mề gà rang muối giòn tan
Lạ mắt với món hoa hồng nướng từ thịt ba chỉ - Nhìn mà không nỡ ăn
199
Mách mẹ cách làm đùi gà sốt mật ong ngon mê ly - Bé cực ghiền, ăn bao nhiêu cũng hết
235
Cách làm bánh su nhân trứng sữa mềm mịn mướt mắt - Ăn chục cái cũng không ngán
222
Cưới hỏi
Bí kíp chọn váy cưới cho cô dâu mũm mĩm
Choáng ngợp trước vẻ đẹp lộng lẫy của những mẫu váy cưới đuôi dài hot nhất 2017
275
Bí quyết cắt giảm chi phí cho thực đơn cưới của bạn
320
Lựa chọn địa điểm tổ chức tiệc cưới theo 9 tiêu chí hoàn hảo
376
Mẹo
Cách mở Vali số khi bị kẹt
Cách đo size giày
2
Cách vệ sinh nệm đơn giản nhất
1
Cách chuyển dữ liệu từ iPhone sang Android với Samsung Smart Switch Mobile
7
Cười, Clip hài
Màn phi máy bay giấy đẳng cấp nhất mọi thời đại
Cười đau bụng với những kiểu bắt tay không giống ai
4429
Cách xin xỏ của cún và mèo khiến bạn không thể không cho
1062
Vợ người ta phiên bản Chiến Thắng - cười rụng rốn
14667
Du lịch, Phượt
Ngược dòng Ly Giang để cảm nhận hạnh phúc đời người
Luyện chân cuối tuần với những đỉnh núi thấy là mê ở miền Nam
117
Đảm bảo rằng bạn còn chưa được nghe tên những kỳ quan tuyệt diệu này
108
Yếu tim chắc không dám cúi nhìn con đường nguy hiểm nhất hành tinh mở lại vào hè này
104
Ô tô, Xe máy
Mua xe Toyota trả góp tại TPHCM
Đánh giá Isuzu MU-X - Êm ái, tiết kiệm, đáng mua
12
Mua xe ô tô - Vì sao nên chú trọng tính thực dụng?
8
Băng rừng vượt núi cùng Isuzu MU-X
6
Kinh doanh, Khởi nghiệp
Muối sấy Ngọc Yến đậm vị mặn giữa biển đời
MuaBanNhanh.com đi đầu xu hướng thương mại di động (M-commerce)
1682
Báo Tiền Phong đưa tin về MuaBanNhanh.com - Tăng trưởng ấn tượng sau hơn hai tháng ra mắt
1948
12 Logo nổi tiếng thế giới ẩn chứa thông điệp bí ẩn mà bạn chưa biết
3677
Cộng đồng
Những điều bạn chưa biết về nghề lái xe tải
Chàng trai sáng tạo máy đa năng giúp nông dân bớt vất vả
15
Công ty TNHH TM DV Hải Trung Anh
3
Công ty Cổ phần Thiết bị điện Long Nguyễn
3
Làm cha mẹ
Kinh nghiệm mua bảng vẽ thông minh cho bé
Cách sử dụng bảng viết/ vẽ điện tử thông minh cho bé
77
Giúp con bạn ngủ ngon giấc với những phương pháp đơn giản cùng Nệm Hình Thú
3
Có nên mua xe thăng bằng cho bé?
4
Bật Lửa Sạc Điện Móc Khóa USB Lighter - Quà Tặng Sếp Độc Đáo Ý Nghĩa - MSN388119
145,000
VND
Xem ngay
Bật lửa sạc điện móc khóa USB Lighter - Thiết kế tinh tế, sang trọng - Có Đèn Led tín hiệu. - Cổng Sạc USB 5v - Chất liệu kim loại bền, đẹp - Là món quà độc đáo, ý nghĩa - Sử dụng nguồn điện sạc an toàn - Bảo...
Quảng cáo MuaBanNhanh
Quà Tặng 20/10 - Hoa Sáp 6 Bông Kèm Gấu Có Hộp, Hoa Hồng Sáp- MSN1831019
80,000
đ
Hoa Hồng Sáp Trái Tim Phát Sáng - Món quà tặng độc đáo dành cho bạn gái - MSN383129
80,000
đ
Hoa Hồng Sáp I Love You Forever 9 Bông - Món quà tặng ý nghĩa - MSN383103
170,000
đ
Gỗ Việt Mỹ Nghệ bán mô hình máy bay trực thăng gỗ, mô hình máy bay chiến đấu gỗ, mô hình máy bay trực thăng gỗ trang trí
350,000
đ
Bật Lửa Sạc Điện Móc Khóa USB Lighter - Quà Tặng Sếp Độc Đáo Ý Nghĩa - MSN388119
145,000
đ
Hoa Hồng 3D Sáp Thơm 12 Bông Kèm Gấu - Món quà tặng ý nghĩa - MSN383088
80,000
đ
Quà tặng Đáng Yêu Hoa Hồng Sáp 5 Bông Sắc Màu - MSN1831025
140,000
đ
Gỗ Việt Mỹ Nghệ bán mô hình đàn gỗ Piano, mô hình đàn gỗ Guitar Classical, mô hình đàn gỗ Guitar Bass
210,000
đ
Chú ý! Trống đồng mạ vàng, Quà tặng lưu niệm bản sắc Việt Nam.
2,800,000
đ
MuaBanNhanh
và các Mạng xã hội khác:

markdown:
.
##
![ Cách đơn giản phân biệt trứng từ gà khỏe hay gà bệnh](https://fileblog.muabannhanh.com/thumbnails/250/origin/572dc55fd49031462617439.jpg)
##
[Cách đơn giản phân biệt trứng từ gà khỏe hay gà bệnh](https://blog.muabannhanh.com/cach-don-gian-phan-biet-trung-tu-ga-khoe-hay-ga-benh-70878.html)
Trứng gà ngon, chất lượng được đẻ ra từ những con gà khỏe mạnh. Độ cứng của vỏ hay màu sắc lòng đỏ trứng có thể cho thấy rõ chất lượng trứng.

Strict-Transport-Security: max-age=31536000; includeSubDomains


text:
Ở bài trước bạn đã được nghe qua về phương pháp đẩy-kéo (push-pull). Phương pháp này có thể sẽ hơi lạ lùng và có thể bạn cũng chưa từng nghe qua. Nhưng về cơ bản đây lại là yếu tố tối quan trọng trong việc chinh phục phụ nữ.
Trong bài này bạn sẽ biết được các biến thể của phương pháp đẩy-kéo. Qua đó bạn sẽ có cái nhìn rõ nét hơn về phương pháp này cũng như nghiêm túc hơn trong việc sẽ sử dụng nó trong tương lai.
Các biến thể của phương pháp đẩy-kéo
Chúng ta có 4 biến thể chính của phương pháp đẩy-kéo.
Bạn cần phải biết rằng đây đều là những yếu tố ĐẶC BIỆT quan trọng nếu muốn thành công trong việc cua gái cũng như tiếp cận phụ nữ. Bạn càng thuần thục bao nhiêu, gái đẹp càng dễ bị chinh phục bấy nhiêu.
#1 – Biết mô tả bản thân
Hay hiểu nôm na là biết cách xây dựng quan hệ với phụ nữ. Với bước này mục đích của bạn là phơi bày những giá trị quan trọng của mình có ảnh hưởng/liên kết với phụ nữ. Hãy sử dụng những quan điểm hay những trải nghiệm cá nhân để cho cô ấy thấy được 1 thế giới kỳ lạ và riêng biệt qua những câu chuyện của mình.
Sau khi bắt đầu câu chuyện, hãy ĐẨY cô nàng ra xa với việc thay đổi chủ đề. Thông thường việc này sẽ gây khó chịu cho cô nàng vì tự dưng sự hấp dẫn bị mất đột ngột. Lẽ dĩ nhiên cô nàng sẽ cố gắng để lần mò ra thông tin này.
Tuy nhiên, ngay cả cô ta cố tình xoay lại câu chuyện thì cũng đừng tiết lộ quá nhiều, hãy khéo léo dẫn dắt câu chuyện sang hướng khác.
Sẽ không có gì ngạc nhiên khi cô ta chạy theo bạn nếu bạn thực hiện tốt công việc trên. Không chừng cô ta còn dò la thông tin của bạn qua tiểu sử Facebook hoặc thậm chí là Google nữa đấy.
Lấy ví dụ cụ thể, tôi có một anh bạn, anh ta gặp một cô nàng thích tình nguyện. Anh ta đã kể cho cô nàng về việc phát áo cho trẻ em dân tộc thiểu số ở Hà Giang ra sao, rồi bất ngờ chuyển hướng câu chuyện…
Theo lẽ tự nhiên, cô nàng sẽ cảm thấykhó chịu về chuyện này. Tiếp đến cô ta sẽ cố đưa câu chuyện về việc tình nguyện ở Hà Giang và tìm hiểu rõ ràng hơn về anh bạn này.
Bạn thấy đấy, bằng việc sử dụng phương pháp trên, bạn có thể cho cô nàng thấy rằng mình rất thích thú khi được nói chuyện (kéo) nhưng ngay lập tức có thể (đẩy) câu chuyện sang hướng khác nhằm gây tò mò/kích thích của phụ nữ.
Đọc tiếp: Đâu là cách cua gái nhanh nhất?
#2 – Xây dựng rung động
Thực tế thì phụ nữ luôn thực hiện việc này hàng ngày.
Tại sao lại như vậy?
Vì phụ nữ hàng ngày vẫn nói chuyện với những anh chàng họ không thích đó thôi. Nhưng họ lại luôn đưa ra những cử chỉ như mời gọi vậy. Phụ nữ thậm chí còn chấp nhận đi chơi, nhận quà (kéo), và sẵn sàng (đẩy) đàn ông ra thật xa khi nhận thấy họ si mê hay có những biểu hiện tình cảm xuất hiện ra bên ngoài.
Đó là bởi vị phụ nữ luôn luôn xây dựng sự rung động trước đàn ông.
Xây dựng rung động ám chỉ tới việc khiến ai đó cảm thấy thứ gì đó. Trong phương pháp này, bạn cần cho cô nàng thấy rằng cô ta đã SAI về cảm giác của mình. Nghe có vẻ tệ nhỉ, nhưng nó là phương pháp tốt nhất đấy, tin tôi đi.
Hãy thử phương pháp sau đây: Thiết lập một buổi hẹn thật lãng mạn và trữ tình. Nhưng cuối buổi hẹn, hãy thao thao bất tuyệt nói về tình bạn để tạo sự xung đột trong cảm nhận của cô ấy.
Hay nghĩ về ví dụ sau đây nhé. Bạn có để ý trong clip nhạc của Mỹ, đặc biệt là Mỹ đen. Họ thường có cảnh đàn ông kéo phụ nữ về phía mình rồi giả bộ như muốn hôn hay âu yếm gì đó, nhưng kỳ thực họ lại nói vào tai phụ nữ rằng “Em trông rất giống em gái anh” hay đại loại vậy. Việc này cũng ngược lại tương tự với phụ nữ.
Đó là cách mà chúng ta xây dựng sự rung động. Thực chất phương pháp này là của phụ nữ, chúng ta chỉ dùng chiêu “gậy ông đập lưng ông” mà thôi.
#3 – Tạo cảm xúc khác nhau
Như đã nói ở những phần trước, việc này có thể sẽ ảnh hưởng đến cảm xúc của phụ nữ. Thế nên hãy khéo léo đừng để cô nàng cảm thấy bị tổn thương hay lăng mạ nhé. Nên nhớ chúng ta đang sử dụng phương pháp đẩy-kéo.
Chẳng hạn bạn có thể tán tỉnh cô nàng một cách dồn dập cho đến khi cô nàng bắt đầu có dấu hiệu thích thú thì hãy tạm ngưng lại đã. Tiếp đến cho đến khi cô nàng cố đem mọi thứ trở lại rồi thì hẵng tán tỉnh trở lại.
Việc này nghe có vẻ hơi tuồng chèo nhỉ? Nhưng kỳ thực đây lại là thứ mà phụ nữ muốn và là thức ăn nuôi dưỡng tâm hồn họ hàng ngày.
Đọc tiếp: Bạn biết gì về tâm lý và cách suy nghĩ của phụ nữ?
#4 – Đảo vai
Bạn có biết rằng phụ nữ rất thích kiểm tra đàn ông không? Trên thực tế đó là một phần không thể thiếu trong cuộc sống của họ.
Tuy nhiên đàn ông hầu hết lại không nhận thấy điều này cho đến khi phụ nữ nói ra.
Thế nên tôi muốn nói rằng mọi thứ có thể đảo ngược được đấy.
Vậy nó có ích lợi gì cho bạn?
Phương pháp đảo ngược cũng là 1 biến thế của phương pháp đẩy-kéo, và chắc chắn nó sẽ có ích cho bạn.
Vậy thực hiện phương pháp này ra sao?
Khi mà phụ nữ hỏi bạn thứ gì đó, mà chỉ nhìn mặt thôi cũng biết được rằng cô nàng đang chờ để nuốt từng lời của bạn.
Lúc này thay vì trả lời, hãy lờ đi và hỏi ngược lại họ. Hãy chứng tỏ cho cô ấy thấy rằng bạn không quan tâm gì đến câu hỏi của cô ta tại thời điểm này.
Ví dụ như khi cô ta đặt câu hỏi trực tiếp với bạn, hãy hỏi ngược lại tại sao cô ấy lại quan tâm tới việc này làm gì cùng với khuôn mặt cợt nhả. Từ đó tâm trạng cô ta sẽ bị “treo” với câu hỏi này.
Như đã nói trong lúc thực hiên việc này bạn phải thả lỏng cảm giác cũng như khuôn mặt của mình ra (cợt nhả). Đừng lo lắng về những chuyển biến tiếp theo trong câu chuyện.
Để thuần thục hơn trong việc này và tránh gây hiểu lầm, bạn cần phải quan tâm đến việc làm thế nào để gửi tín hiệu tới phụ nữ.
Đan xen tín hiệu – Vũ khí tuyệt vời trong việc cua gái
Đến đây, bạn cần phải biết rằng cách nhanh nhất trong việc xây dựng rung động đó là biết cách đan xen tín hiệu.
Bản chất của phương pháp đẩy-kéo đó là việc bạn gửi các tín hiệu đan xen một cách có mục đích.
Nhưng có điều không được để lộ mục đích của mình vì nó sẽ gây nhàm chán cho phụ nữ.
Ví dụ cho việc truyền tín hiệu đan xen đó là hãy thể hiện ra rằng bạn KHÔNG thể thực hiện việc này nhưng hôm sau lại làm việc đó dễ dàng, hãy diễn xuất như nhân vật lạnh lùng ở 1 số thời điểm của buổi hẹn, hãy thực hiện những việc mơ hồ/không rõ ràng, và nói những thứ hoàn toàn trái ngược với những gì xảy ra sau đó.
Những đặc điểm nay sẽ biểu lộ rằng bạn là người rất khó để đoán hay dò xét. Tuy nhiên đừng có thực hiện việc này quá đà. Không khéo lại tự biến mình thành trò hề đấy.
Đó là tất cả những biến thể của phương pháp đẩy-kéo, làm chủ được phương pháp này bạn sẽ trở nên CỰC KỲ lợi hại, không chỉ trong mắt phụ nữ mà còn cả người khác nữa. Nên nhớ, để người khác “bắt thóp” là việc rất nguy hiểm, thế nên bạn hoàn toàn có thể vận dụng phương pháp này trong công việc. Tuy nhiên cần nhắc lại, đừng quá đà với phương pháp này vì nó sẽ biến bạn thành hình tượng xấu trong mắt mọi người.
Tôi đang muốn biến bạn thành real man chứ không phải theo chiều hướng ngược lại…
ĐỘC GIẢ NÓI GÌ?
Để lại bình luận
14 phản hồi tại "Học cua gái 8 – Cách đưa đẩy phụ nữ"
A có thể cho em vài gợi ý về kéo đẩy khi bước vào giai đoạn khi yêu.
Hay
mình rất ấn tượng vs phương pháp đẩy kéo của bạn và mình muốn hỏi rằng nếu cô gái mà bạn đang tán nói chỉ coi bạn là bạn bè thì giờ mình phaỉ làm sao để có lại sự rung động từ cô ấy đây.mong hồi đáp
giá gì mà a laiH cho caj ví dụ thì thú vị hơn nhìu … tãi e đọc lúc nào cũng muốn biết ví dụ giống nhi7 học lập trình web vậy có ví dụ thì dễ hiểu và lôi cuốn hơn …… e góp ý thôi chứ chuyện tình trường e chưa có mối tình đầu nữa nỳ … @@!!
Cảm ơn em đã góp ý.
🙂
Cái đó thì rất có thể cô ta nói thật đó. Nếu đó không phải sự thật thì cô ta cũng mong bạn buông tha. Đơn giản vậy thôi.
Cảm ơn sự góp ý của anh. Em biết để cứu vãn mối quan hệ này là khó khăn nhưng vẫn muốn tìm hiểu xem có cách nào khả thi để cứu vãn nó ko ạ.
Bạn nói hoàn toàn đúng. Những cô gái có tính cách cứng rắn và thực tế thường không hứng thú với phương pháp này lắm. Ngoài ra áp dụng thường xuyên cũng có thể biến người sử dụng trở thành “lang băm”. Nhưng đôi khi nên áp dụng để tìm kiếm sự mới lạ và hứng thú từ đôi bên.
Theo mình có thể hiểu đơn giản là có mà lại không, không mà lại có, quan tâm mà vờ như không quan tâm, không quan tâm mà lại là quan tâm 🙂
mình vẫn chưa hiểu lắm…bạn có thể ví dụ cho mình về dưa đẩy đc k…và làm thế nào để k đưa đẩy một cách quá đà
Tiếp tục chờ bài tiếp theo từ Chính Em 🙂

markdown:
Ở bài trước bạn đã được nghe qua về phương pháp đẩy-kéo (push-pull). Phương pháp này có thể sẽ hơi lạ lùng và có thể bạn cũng chưa từng nghe qua. Nhưng về cơ bản đây lại là yếu tố tối quan trọng trong việc chinh phục phụ nữ.
Trong bài này bạn sẽ biết được các biến thể của phương pháp đẩy-kéo. Qua đó bạn sẽ có cái nhìn rõ nét hơn về phương pháp này cũng như nghiêm túc hơn trong việc sẽ sử dụng nó trong tương lai.
## Các biến thể của phương pháp đẩy-kéo
Chúng ta có 4 biến thể chính của phương pháp đẩy-kéo.
Bạn cần phải biết rằng đây đều là những yếu tố ĐẶC BIỆT quan trọng nếu muốn thành công trong việc cua gái cũng như tiếp cận phụ nữ. Bạn càng thuần thục bao nhiêu, gái đẹp càng dễ bị chinh phục bấy nhiêu.
### #1 – Biết mô tả bản thân
Hay hiểu nôm na là biết cách
[xây dựng quan hệ với phụ nữ](https://chinhem.com/duy-tri/lam-the-nao-de-co-duoc-quan-he-tinh-cam-vung-chac/). Với bước này mục đích của bạn là phơi bày những giá trị quan trọng của mình có ảnh hưởng/liên kết với phụ nữ. Hãy sử dụng những quan điểm hay những trải nghiệm cá nhân để cho cô ấy thấy được 1 thế giới kỳ lạ và riêng biệt qua những câu chuyện của mình.
Sau khi bắt đầu câu chuyện, hãy ĐẨY cô nàng ra xa với việc thay đổi chủ đề. Thông thường việc này sẽ gây khó chịu cho cô nàng vì tự dưng sự hấp dẫn bị mất đột ngột. Lẽ dĩ nhiên cô nàng sẽ cố gắng để lần mò ra thông tin này.
Tuy nhiên, ngay cả cô ta cố tình xoay lại câu chuyện thì cũng đừng tiết lộ quá nhiều, hãy khéo léo dẫn dắt câu chuyện sang hướng khác.
Sẽ không có gì ngạc nhiên khi cô ta chạy theo bạn nếu bạn thực hiện tốt công việc trên. Không chừng cô ta còn dò la thông tin của bạn qua tiểu sử Facebook hoặc thậm chí là Google nữa đấy.
Lấy ví dụ cụ thể, tôi có một anh bạn, anh ta gặp một cô nàng thích tình nguyện. Anh ta đã kể cho cô nàng về việc phát áo cho trẻ em dân tộc thiểu số ở Hà Giang ra sao, rồi bất ngờ chuyển hướng câu chuyện…
Theo lẽ tự nhiên, cô nàng sẽ cảm thấykhó chịu về chuyện này. Tiếp đến cô ta sẽ cố đưa câu chuyện về việc tình nguyện ở Hà Giang và tìm hiểu rõ ràng hơn về anh bạn này.
Bạn thấy đấy, bằng việc sử dụng phương pháp trên, bạn có thể cho cô nàng thấy rằng mình rất thích thú khi được nói chuyện (kéo) nhưng ngay lập tức có thể (đẩy) câu chuyện sang hướng khác nhằm gây tò mò/kích thích của phụ nữ.
**Đọc tiếp:** [Đâu là cách cua gái nhanh nhất?](https://chinhem.com/kinh-nghiem-hen-ho/dau-la-cach-cua-gai-nhanh-nhat/)
### #2 – Xây dựng rung động
Thực tế thì phụ nữ luôn thực hiện việc này hàng ngày.
Tại sao lại như vậy?
Vì phụ nữ hàng ngày vẫn nói chuyện với những anh chàng họ không thích đó thôi. Nhưng họ lại luôn đưa ra những cử chỉ như mời gọi vậy. Phụ nữ thậm chí còn chấp nhận đi chơi, nhận quà (kéo), và sẵn sàng (đẩy) đàn ông ra thật xa khi nhận thấy họ si mê hay có những biểu hiện tình cảm xuất hiện ra bên ngoài.
Đó là bởi vị phụ nữ luôn luôn xây dựng sự rung động trước đàn ông.
Xây dựng rung động ám chỉ tới việc khiến ai đó cảm thấy thứ gì đó. Trong phương pháp này, bạn cần cho cô nàng thấy rằng cô ta đã SAI về cảm giác của mình. Nghe có vẻ tệ nhỉ, nhưng nó là phương pháp tốt nhất đấy, tin tôi đi.
Hãy thử phương pháp sau đây: Thiết lập một buổi hẹn thật lãng mạn và trữ tình. Nhưng cuối buổi hẹn, hãy thao thao bất tuyệt nói về tình bạn để tạo sự xung đột trong cảm nhận của cô ấy.
Hay nghĩ về ví dụ sau đây nhé. Bạn có để ý trong clip nhạc của Mỹ, đặc biệt là Mỹ đen. Họ thường có cảnh đàn ông kéo phụ nữ về phía mình rồi giả bộ như muốn hôn hay âu yếm gì đó, nhưng kỳ thực họ lại nói vào tai phụ nữ rằng “Em trông rất giống em gái anh” hay đại loại vậy. Việc này cũng ngược lại tương tự với phụ nữ.
Đó là cách mà chúng ta xây dựng sự rung động. Thực chất phương pháp này là của phụ nữ, chúng ta chỉ dùng chiêu “gậy ông đập lưng ông” mà thôi.
### #3 – Tạo cảm xúc khác nhau
Như đã nói ở những phần trước, việc này có thể sẽ ảnh hưởng đến cảm xúc của phụ nữ. Thế nên hãy khéo léo đừng để cô nàng cảm thấy bị tổn thương hay lăng mạ nhé. Nên nhớ chúng ta đang sử dụng phương pháp đẩy-kéo.
Chẳng hạn bạn có thể tán tỉnh cô nàng một cách dồn dập cho đến khi cô nàng bắt đầu có dấu hiệu thích thú thì hãy tạm ngưng lại đã. Tiếp đến cho đến khi cô nàng cố đem mọi thứ trở lại rồi thì hẵng tán tỉnh trở lại.
Việc này nghe có vẻ hơi tuồng chèo nhỉ? Nhưng kỳ thực đây lại là thứ mà phụ nữ muốn và là thức ăn nuôi dưỡng tâm hồn họ hàng ngày.
**Đọc tiếp: ** [Bạn biết gì về tâm lý và cách suy nghĩ của phụ nữ?](https://chinhem.com/hieu-luat-choi/thau-hieu-phu-nu/ban-biet-gi-ve-tam-tu-va-cach-suy-nghi-cua-phu-nu/)
### #4 – Đảo vai
Bạn có biết rằng phụ nữ rất thích kiểm tra đàn ông không? Trên thực tế đó là một phần không thể thiếu trong cuộc sống của họ.
Tuy nhiên đàn ông hầu hết lại không nhận thấy điều này cho đến khi phụ nữ nói ra.
Thế nên tôi muốn nói rằng mọi thứ có thể đảo ngược được đấy.
Vậy nó có ích lợi gì cho bạn?
Phương pháp đảo ngược cũng là 1 biến thế của phương pháp đẩy-kéo, và chắc chắn nó sẽ có ích cho bạn.
Vậy thực hiện phương pháp này ra sao?
Khi mà phụ nữ hỏi bạn thứ gì đó, mà chỉ nhìn mặt thôi cũng biết được rằng cô nàng đang chờ để nuốt từng lời của bạn.
Lúc này thay vì trả lời, hãy lờ đi và hỏi ngược lại họ. Hãy chứng tỏ cho cô ấy thấy rằng bạn không quan tâm gì đến câu hỏi của cô ta tại thời điểm này.
Ví dụ như khi cô ta đặt câu hỏi trực tiếp với bạn, hãy hỏi ngược lại tại sao cô ấy lại quan tâm tới việc này làm gì cùng với khuôn mặt cợt nhả. Từ đó tâm trạng cô ta sẽ bị “treo” với câu hỏi này.
Như đã nói trong lúc thực hiên việc này bạn phải thả lỏng cảm giác cũng như khuôn mặt của mình ra (cợt nhả). Đừng lo lắng về những chuyển biến tiếp theo trong câu chuyện.
Để thuần thục hơn trong việc này và tránh gây hiểu lầm, bạn cần phải quan tâm đến việc làm thế nào để gửi tín hiệu tới phụ nữ.
## Đan xen tín hiệu – Vũ khí tuyệt vời trong việc cua gái
Đến đây, bạn cần phải biết rằng cách nhanh nhất trong việc xây dựng rung động đó là biết cách đan xen tín hiệu.
Bản chất của phương pháp đẩy-kéo đó là việc bạn gửi các tín hiệu đan xen một cách có mục đích.
Nhưng có điều không được để lộ mục đích của mình vì nó sẽ gây nhàm chán cho phụ nữ.
Ví dụ cho việc truyền tín hiệu đan xen đó là hãy thể hiện ra rằng bạn KHÔNG thể thực hiện việc này nhưng hôm sau lại làm việc đó dễ dàng, hãy diễn xuất như nhân vật lạnh lùng ở 1 số thời điểm của buổi hẹn, hãy thực hiện những việc mơ hồ/không rõ ràng, và nói những thứ hoàn toàn trái ngược với những gì xảy ra sau đó.
Những đặc điểm nay sẽ biểu lộ rằng bạn là người rất khó để đoán hay dò xét. Tuy nhiên đừng có thực hiện việc này quá đà. Không khéo lại tự biến mình thành trò hề đấy.
Đó là tất cả những biến thể của phương pháp đẩy-kéo, làm chủ được phương pháp này bạn sẽ trở nên CỰC KỲ lợi hại, không chỉ trong mắt phụ nữ mà còn cả người khác nữa. Nên nhớ, để người khác “bắt thóp” là việc rất nguy hiểm, thế nên bạn hoàn toàn có thể vận dụng phương pháp này trong công việc. Tuy nhiên cần nhắc lại, đừng quá đà với phương pháp này vì nó sẽ biến bạn thành hình tượng xấu trong mắt mọi người.
Tôi đang muốn biến bạn thành
**real man** chứ không phải theo chiều hướng ngược lại…
### ĐỘC GIẢ NÓI GÌ?
## Để lại bình luận
14 phản hồi tại "Học cua gái 8 – Cách đưa đẩy phụ nữ"
A có thể cho em vài gợi ý về kéo đẩy khi bước vào giai đoạn khi yêu.
Hay
mình rất ấn tượng vs phương pháp đẩy kéo của bạn và mình muốn hỏi rằng nếu cô gái mà bạn đang tán nói chỉ coi bạn là bạn bè thì giờ mình phaỉ làm sao để có lại sự rung động từ cô ấy đây.mong hồi đáp
giá gì mà a laiH cho caj ví dụ thì thú vị hơn nhìu … tãi e đọc lúc nào cũng muốn biết ví dụ giống nhi7 học lập trình web vậy có ví dụ thì dễ hiểu và lôi cuốn hơn …… e góp ý thôi chứ chuyện tình trường e chưa có mối tình đầu nữa nỳ … @@!!
Cảm ơn em đã góp ý.
🙂
Cái đó thì rất có thể cô ta nói thật đó. Nếu đó không phải sự thật thì cô ta cũng mong bạn buông tha. Đơn giản vậy thôi.
Cảm ơn sự góp ý của anh. Em biết để cứu vãn mối quan hệ này là khó khăn nhưng vẫn muốn tìm hiểu xem có cách nào khả thi để cứu vãn nó ko ạ.
Bạn nói hoàn toàn đúng. Những cô gái có tính cách cứng rắn và thực tế thường không hứng thú với phương pháp này lắm. Ngoài ra áp dụng thường xuyên cũng có thể biến người sử dụng trở thành “lang băm”. Nhưng đôi khi nên áp dụng để tìm kiếm sự mới lạ và hứng thú từ đôi bên.
Theo mình có thể hiểu đơn giản là có mà lại không, không mà lại có, quan tâm mà vờ như không quan tâm, không quan tâm mà lại là quan tâm 🙂
mình vẫn chưa hiểu lắm…bạn có thể ví dụ cho mình về dưa đẩy đc k…và làm thế nào để k đưa đẩy một cách quá đà
Tiếp tục chờ bài tiếp theo từ Chính Em 🙂

Server: cloudflare-nginx

X-CF-Powered-By: WP Rocket 2.7.4


text:
-
Quy định post bài trong Khu Edit – Beta – Convert
Đặt Title theo mẫu [Tên truyện] dấu cách - [Tên tác giả] (Update chương)
Hình bìa truyện
Tác giả
Thể loại
Số chương
Nguồn convert (nếu có)
Tên Editor & Beta
Nick Facebook, Mail liên lạc
Đặc biệt: 1 editor ko được mở quá 3 Topic
Quy định cho editor
Box Edit – Beta – Convert chỉ đăng những truyện edit, beta, convert của Cung; không đăng truyện sưu tầm của trang khác trong Box.
Chủ topic chịu trách nhiệm hoàn thành topic, không drop, không ngưng edit quá 1 tuần. Trường hợp không theo tiếp được truyện thì phải báo với Ad hoặc Mod quản lí Box lý do không thể theo tiếp và để BQT tiếp nhận.
Nếu drop không có lý do sẽ bị phạt theo quy định của cung: Link
Mỗi topic nên đặt 1 lịch post theo tuần hoặc tháng để member dễ theo dõi. Nếu post 1 tuần 10c sẽ được tặng thêm 100 ruby (liên hệ với quản lý của box để được thưởng)
Khi hoàn thành nên vào Topic báo danh để được thưởng điểm thêm. Điểm thưởng là gấp 2 lần số điểm được hưởng của cả bộ. Ví dụ:
Bạn edit 1 bộ 100c nhận được 1000 ruby thì sẽ được thưởng 2000 ruby.
Quy định Đối với Readers:
Comt thân thiện, comt nhắc nhở truyện nhẹ nhàng
Không comt với những lời lẽ quá khích, sử dụng ngôn từ đả kích editor, nhân vật, tác giả...
Không comt gây war, hối truyện thiếu thiện cảm
Nếu vi phạm lần đầu nhắc nhở. Lần sau -10ruby\lần
Không comt thanks (trường hợp muốn thanks editor thì nhấn like để ủng hộ)
Quản lý box Truyện Edit&Beta:
Cổ Đại Hoàn
Truyện cổ đại đã hoàn thành.
-
Dán lên cao
Hướng dẫn các cách để có Ruby trong diễn đàn
- Trả lời:
- 17
- Đọc:
- 12,689
-
Đã khóa Dán lên cao
Hướng Dẫn Sử Dụng Credit (ruby)
- Trả lời:
- 1
- Đọc:
- 31,357

markdown:
-
**Quy định post bài trong Khu Edit – Beta – Convert** **Đặt Title theo mẫu [Tên truyện] dấu cách - [Tên tác giả] (Update chương)** **Hình bìa truyện** **Tác giả** **Thể loại** **Số chương** **Nguồn convert (nếu có)** **Tên Editor & Beta** **Nick Facebook, Mail liên lạc** **Đặc biệt: 1 editor ko được mở quá 3 Topic** **Quy định cho editor** *Box Edit – Beta – Convert chỉ đăng những truyện edit, beta, convert của Cung; không đăng truyện sưu tầm của trang khác trong Box.* *Chủ topic chịu trách nhiệm hoàn thành topic, không drop, không ngưng edit quá 1 tuần. Trường hợp không theo tiếp được truyện thì phải báo với Ad hoặc Mod quản lí Box lý do không thể theo tiếp và để BQT tiếp nhận.* *Nếu drop không có lý do sẽ bị phạt theo quy định của cung:* **Link** *Mỗi topic nên đặt 1 lịch post theo tuần hoặc tháng để member dễ theo dõi. Nếu post 1 tuần 10c sẽ được tặng thêm 100 ruby (liên hệ với quản lý của box để được thưởng)* *Khi hoàn thành nên vào Topic báo danh để được thưởng điểm thêm. Điểm thưởng là gấp 2 lần số điểm được hưởng của cả bộ. Ví dụ:* *Bạn edit 1 bộ 100c nhận được 1000 ruby thì sẽ được thưởng 2000 ruby.* **Quy định Đối với Readers:** *Comt thân thiện, comt nhắc nhở truyện nhẹ nhàng* *Không comt với những lời lẽ quá khích, sử dụng ngôn từ đả kích editor, nhân vật, tác giả...* *Không comt gây war, hối truyện thiếu thiện cảm* *Nếu vi phạm lần đầu nhắc nhở. Lần sau -10ruby\lần* *Không comt thanks (trường hợp muốn thanks editor thì nhấn like để ủng hộ)* **Quản lý box Truyện Edit&Beta:**
# Cổ Đại Hoàn
Truyện cổ đại đã hoàn thành.
-
Dán lên cao
[Hướng dẫn các cách để có Ruby trong diễn đàn](threads/huong-dan-cac-cach-de-co-ruby-trong-dien-dan.25441/)
- Trả lời:
- 17
- Đọc:
- 12,689
-
Đã khóa Dán lên cao
[Hướng Dẫn Sử Dụng Credit (ruby)](threads/huong-dan-su-dung-credit-ruby.22887/)
- Trả lời:
- 1
- Đọc:
- 31,357

X-Frame-Options: SAMEORIGIN

Set-Cookie: xf_session=4a1c3b82060544aded2d99734fa73fc3; path=/; secure; HttpOnly