Skip to content
Showing 1-50 of 141 items.
@renovate
Admin 24/02/2021 16:20
[Java] 1 vài tip nhỏ khi sử dụng String hoặc Collection

Hello các bạn, hôm nay mình sẽ chia sẻ về mẹo check String null hay full space một cách tiện lợi Mình sẽ sử dụng thư viện Lớp StringUtils download file jar để import vào thư viện tại (link) Nếu các bạn dùng maven project thì dễ dàng hơn, chỉ cần import ở file pom.xml <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> <groupId>org.apache.commons</groupId> ...

Happy New Year collection string Java
@renovate
Admin 25/02/2021 10:00
[Java] 1 vài tip nhỏ khi sử dụng String hoặc Collection part 1

Hello các bạn, hôm nay mình sẽ chia sẻ về mẹo check String null hay full space một cách tiện lợi Mình sẽ sử dụng thư viện Lớp StringUtils download file jar để import vào thư viện tại (link) Nếu các bạn dùng maven project thì dễ dàng hơn, chỉ cần import ở file pom.xml <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> <groupId>org.apache.commons</groupId> ...

Happy New Year collection string Java
@renovate
Admin 26/02/2021 21:40
Sử dụng ModelMapper trong Spring Boot

Bài hôm nay sẽ là cách sử dụng thư viện ModelMapper để mapping qua lại giữa các object trong Spring nhé. Trang chủ của ModelMapper đây http://modelmapper.org/, đọc rất dễ hiểu dành cho các bạn muốn tìm hiểu sâu hơn 1. Giới thiệu ModelMapper 1.1. ModelMapper là gì? ModelMapper là một thư viện Java, giúp đơn giản hóa code mapping các object. Mapping có thể hiểu là việc convert qua lại giữa hai object có cấu trúc...

Happy New Year Java Spring Boot
@renovate
Admin 02/03/2021 17:08
Cần chuẩn bị gì để bắt đầu học Java

Cần chuẩn bị những gì để bắt đầu lập trình Java? 1. Chuẩn bị môi trường chạy Java 1.1. Cài JDK hay JRE? Đây là hai thành phần cơ bản của Java mà các bạn sẽ gặp thường xuyên. Cả hai đều là các bộ thư viện, công cụ hỗ trợ java, cung cấp nền tảng để chạy và biên dịch các chương trình java. Dưới đây là bảng so sánh tóm tắt về hai khái niệm này. Tiêu chí JRE JDK Viết tắt...

Happy New Year Java
@renovate
Admin 16/03/2021 15:00
Lambda expression trong Java là cái giề?

Hãy nghĩ về lambda expression như một cú pháp rút gọn cho compiler (tương tự như khi ta lập trình trên các IDE, chỉ cần gõ psvm + Tab sẽ ra được hàm “public static void main(String[] args)”), khi compiler thấy cú pháp lambda, nó sẽ mở rộng ra thành hai phần: phần định nghĩa class và phần khởi tạo class. Nếu bạn nghĩ nó như một công cụ để rút ngắn code lại, bạn sẽ yêu thích nó, đến mức mà bạn...

Happy New Year Java Lambda
@renovate
Admin 17/03/2021 17:00
Apache Tomcat là gì? 2 bước đơn giản đề cài đặt Tomcat

Apache Tomcat là gì? 2 bước đơn giản đề cài đặt Tomcat 17/03/2021 1 Lượt xem Apache Tomcat là một vùng chứa Java...

Java Lap Trinh website apache
@renovate
Admin 20/03/2021 17:00
Giới thiệu một số plugin cho IntelliJ IDE

1. Material Theme UI Là một plugin ho phép chúng ta lựa chọn giữa rất nhiều giao diện đẹp cho InteliJ, giúp cho công việc của chúng ta bớt nhàm chán hơn,. Nó còn cho phép chúng ta tái cấu trúc menu của InteliJ theo một cách rõ ràng và đẹp mắt hơn. Material Theme UI có thể biến các menu thả xuống nhỏ gọn hơn. 2. Codota Codota quét hàng triệu kho lưu trữ github công khai và phân tích mã nguồn đó bằng trí...

Java codota intelij plugin
@renovate
Admin 24/03/2021 20:00
Đọc dữ liệu từ một file text và ghi lại dưới dạng file parquet trên HDFS sử dụng Spark (Phần 1)

Định dạng text là một định dạng vô cùng phổ biến cả trên HDFS hay bất cứ đâu. Dữ liệu file text được trình bày thành từng dòng, mỗi dòng có thể coi như một bản ghi và đánh dấu kết thúc bằng kí tự "\n" (kí tự xuống dòng). Ưu điểm của file text là nhẹ, tuy nhiên nó lại có nhược điểm là đọc ghi chậm và không thể chia nhỏ các tệp. Apache Parquet là một định dạng lưu trữ...

Java Apache Spark Big Data
@renovate
Admin 25/03/2021 20:10
Đọc dữ liệu từ một file text và ghi lại dưới dạng file parquet trên HDFS sử dụng Spark (Phần 2)

Các bạn chưa đọc phần 1 thì có thể đọc tại đây nha : Đọc dữ liệu từ một file text và ghi lại dưới dạng file parquet trên HDFS sử dụng Spark (Phần 1) Ghi dữ liệu ra file parquet sử dụng Spark Khi ta đã lấy được toàn bộ dữ liệu text ra file listModelLog thì việc ghi dữ liệu ra file parquet là cực kì đơn giản : SparkSession spark = SparkSession.builder().appName("Write file parquet to...

Java Apache Spark Big Data
@renovate
Admin 05/04/2021 19:10
Spring Boot xử lý request trong Controller như thế nào (phần 1)

Ok mình đã trở lại đây, dạo này hơi bận bịu tí nên ra bài hơi lâu, mong các bạn thông cảm Hôm nay chúng ta sẽ cùng nhau "mổ xẻ" bên trong controller như thế nào và cách hoạt động của nó nhé. Ok let's go. 1. Controller là gì, hoạt động ra sao? 1.1. Controller là gì? Như đã nói ở các bài trước, Controller trong ứng dụng Spring Boot là nơi tiếp nhận request và trả về response cho client. Có thể...

Java Spring Boot
@renovate
Admin 02/05/2021 21:00
Thuật toán tìm kiếm 2 con trỏ - Liệu binary search đã là nhanh nhất ?

Để giải quyết một bài toán trong lập trình, chúng ta có thể có nhiều cách, thuật toán để giải quyết. Tuy nhiên, không phải bài toán nào cũng có thể tối ưu trong 1 thuật toán nhất định. Trong bài viết này, chúng ta hãy cùng nhau nhìn qua các cách để giải quyết một bài toán tìm kiếm nho nhỏ và so sánh ưu nhược điểm giữa chúng nhé. **Bài toán ** Cho một dãy số gồm N số nguyên khác nhau đã...

Java Algorithm May Fest
@renovate
Admin 05/05/2021 15:00
Java Performance Tool Part 1: VisualVM

Giới thiệu VisualVM tool VisualVm là 1 công cụ hữu ích giúp chúng ta quan sát thông tin của các ứng dụng JAVA chạy trên local hay trên các máy khác. VisualVM tích hợp rất nhiều tools: Jmap, Jstack, JConsolem, Jstat và Jinfo. Giúp chúng ta quan sát, theo dõi (monitoring): Memory leaks Anlyze heap data, Monitor GC (garbage collector) CPU profiling Nó cũng giúp cải tiến hiệu suất ứng dụng và đảm bảo bộ nhớ được sử dụng 1...

Java High Performance May Fest monitoring JVisualVM
@renovate
Admin 05/05/2021 15:10
Đừng validation bằng tay trong Spring Boot (phần 1)

Bài hôm nay mình sẽ trình bày một khái niệm cực kì quan trọng với mọi hệ thống backend. Hẳn mọi người đã từng nghe điều này. Đừng tin tưởng dữ liệu cho người dùng nhập vào. Câu trên có thể mở rộng ra phạm vi với các nguồn dữ liệu khác được coi là không tin cậy, gồm database, client,... Trong trường hợp cần nhận data từ các nguồn đó, nhất thiết phải thực hiện Validation. 1....

Java Spring Boot MayFest May Fest validation
@renovate
Admin 06/05/2021 22:10
Mapping class Java với Angular Typescript model – Chưa bao giờ dễ đến thế

Xin chào mọi người hôm nay mình giới thiệu một loại đồ chơi cực xịn cực hay ho luôn, đây là một thư viện giúp cho mọi người tạo ra 1 class Typescript trong dự án Frontend ở đây mình lấy ví dụ là Angular một cách nhanh chóng nhất dựa vào response class của Backend. Như mọi người thường biết trong dự án Spring Boot chúng ta thường sử dụng Maven như một công cụ để quản lý thư viện và các...

javascipt Java Spring Boot typesciprt angular
@renovate
Admin 08/05/2021 16:10
Java và những điều chưa biết đừng tự phụ :D

JVM vs JRE vs JDK Java Virtual Machine (JVM) JVM là máy ảo có thể thực thi các Java bytecode. Mỗi một Java source file được biên dịch ra một bytecode file. Java được thiết kế để các chương trình ứng dụng có thể chạy trên bất kỳ nền tảng nào mà không cần phải viết lại chương trình nhờ vào Java JVM. Cũng chính vì vậy mà các ứng dụng Java còn được gọi là WORA (Write Once Run Anywhere – Viết một lần...

Java May Fest java core
@renovate
Admin 09/05/2021 15:20
Tản mạn về Thread trong Java

Thread vs Process Process Thread Khái niệm Một chương trình đang chạy được gọi là một process. Một chương trình chạy có thể có nhiều thread, Cho phép chương trình đó chạy trên nhiều luồng một cách "đồng thời". Không gian địa chỉ Mỗi process có một không gian địa chỉ riêng biệt. Tất cả thread thuộc một process chia sẻ không gian địa chỉ với nhau, hợp chúng lại thành một tiến...

Java Multi Threading May Fest java core
@renovate
Admin 09/05/2021 19:50
JAVA Chỉnh sửa *.JAR file mà không cần sourcecode

1. Yêu cầu bài toán Bạn có 1 file *.jar dùng để chạy một số công việc hiện tại. Nhưng nó có 1 lỗi nhỏ, bạn muốn chỉnh sửa nó nhưng không có source-code. 2. Các giải pháp Có 2 giải pháp Decompile *.jar -> chỉnh sửa -> build lại Giải nén Java classes -> Modify Java Bytecode -> Đóng gói lại Phương pháp (1) có khá nhiều ưu điểm nếu bạn quen thuộc với Java, tuy nhiên nó cũng sẽ có những...

Java May Fest JAR bytecode patch
@renovate
Admin 11/05/2021 15:20
Quá trình de/serialization trong java thực sự diễn ra như thế nào?

Giới thiệu Mình giả sử các bạn đã có một kiến thức khá tốt về cách serialization một đối tượng trong java . Nhưng quá trình serialization và deserialization thực sự diễn ra như thế nào? Các bạn đã bao giờ tìm hiểu về vấn đề này chưa?. Trong bài viết này mình sẽ trình bày rõ về cách mà java xử lý khi các bạn thực hiện serialization cũng như deserialization. Quá trình serialization trong java diễn...

Java May Fest deserialization serialization
@renovate
Admin 11/05/2021 18:30
Sử dụng AOP trong Spring Boot và AspectJ

1. AOP là gì AOP (Aspect Oriented Programming) là 1 kỹ thuật lập trình bổ sung cho lập trình hướng đối tượng (OOP), nó tạo ra 1 cách suy nghĩ khác của lập trình cấu trúc. Đối tượng của OOP là class, còn đối tượng của AOP là aspect. (p/s lý thuyết dài dòng và khó hiểu, đọc ví dụ và xem ứng dụng thực tế của nó giúp bạn dễ hình dung hơn nhiều) 2. Sử dụng AOP trong project 2.1 Insert Log vào các...

Java Java Spring boot May Fest AspectJ AOP
@renovate
Admin 13/05/2021 16:50
Gọi phương thức PRIVATE trong JAVA - Reflection API

1. Tổng quan Khi mới học JAVA, các phương thức private được sử dụng để ngăn cản việc gọi từ bên ngoài class. Nhưng vì 1 lý do nào đó, nếu chúng ta muốn sử dụng nó. Để đạt được điều này, chúng ta cần nghiên cứu về Java's access controls. Giúp chúng ta có thể sử dụng được các đoạn trong phương thức private. 2. Cách thực hiện Ta có 1 hàm thư viện như bên dưới. Đơn giản là cộng 2 số...

Java May Fest Java Reflection private Spring ReflectionTestUtils
@renovate
Admin 05/06/2021 23:20
Spring Boot Transactional - Lỗi hầu hết mọi người gặp phải

1. Giới thiệu vấn đề Transaction đã được hỗ trợ trong Spring Boot Framework. Chỉ cần khai báo @Transactional trước method là xong như thế này. Theo như logic, khi có Exception xảy ra thì Transaction sẽ rollback lại các thao tác trước đó. @GetMapping("/get") @Transactional public void get() throws Exception { TestEntity testEntity = new TestEntity(); testRepository.save(testEntity); throw new...

Java Java Spring boot exception Spring Transactional
@renovate
Admin 20/06/2021 23:10
Giám sát ứng dụng với Spring Boot Actuator

Trong bài viết này, mình sẽ giới thiệu về Spring Boot Actuator. Là một công cụ trong framwork Spring, cho phép chúng ta giám sát ứng dụng của mình trên môi trường sản xuất mà không cần phải viết code. Nó cung cấp thông tin về ứng dụng, trạng thái của ứng dụng, các dữ liệu liên quan đến ứng dụng. Đầu tiên, mình sẽ tạo một dự án Spring Boot với cấu trúc như sau: Thêm Actuator...

Java Spring Boot Spring Boot Actuator
@renovate
Admin 25/11/2021 18:00
Để code ngắn gọn và tinh tế hơn trong Java

Lập trình khai báo (declarative programming) là một kĩ thuật mang lại rất nhiều lợi ích: code ngắn gọn hơn, dễ thay đổi, dễ bảo trì và mở rộng. Java là một ngôn ngữ thuần túy OOP theo hướng lập trình mệnh lệnh (imperative programming), "trường phái" ngược lại của declarative. Nhưng kể từ Java 8 với lambda expression, Java đã có thể tham gia vào cuộc chơi này. Trong bài viết này, mình sẽ giới thiệu...

Java Design Pattern declarative programming Functional Programming java 8
@renovate
Admin 26/11/2021 23:40
Function programming in Java 17

Functional interfaces: Interface Method Return type Supplier<T> get() T Consumer<T> accept(T) void <BiConsumer<T, U> accept(T, U) T Predicate<T> test(T) boolean BiPreidcate<T, U> test(T, U) boolean Function<T, R> apply(T) R BiFunction<T, U, R> apply(T, U) R UnaryOperator<T> apply(T) T BinaryOperator<T> apply(T, T) T For setting development for Java 17, see...

Java Maven
@renovate
Admin 29/11/2021 12:10
Change account

Tài khoản cũ của mình có chút vấn đề nên mình chuyển sang dùng tài khoản mới để viết bài. Mọi người có thể follow tài mới TheLight và các bài viết gốc tại thenewstack. Xin cảm ơn mọi người! Nội dung bên dưới sẽ được move sang một tài viết trên tài khoản mới: TheLight Phát triển một ứng dụng microservice có thể rất thú vị. Nhưng xử lý nghiệp vụ giao dịch phân tán (business...

Redis Java Spring Boot Design Pattern kafka
@renovate
Admin 14/12/2021 10:10
Log4j RCE (CVE-2021-44228, CVSSv3 10.0) - Lịch sử, cách hoạt động và cách phòng tránh

1. Lịch sử về Log4j RCE (CVE-2021-44228, CVSSv3 10.0) Vào ngày 9/12/2021 Chen Zhaojun - Thuộc Alibaba Cloud Security Team đã tiết lộ lỗ hổng nghiêm trọng của thư viện Log4J. Cho phép thực thi code từ xa (RCE - Remote Code Execute) mà không cần xác thực (Authenticate). Log4j là thư viện để ghi log (logging) rất nổi tiếng thuộc sở hữu của Apache, được sử dụng rộng rãi trong các ứng dụng doanh nghiệp và điện toán...

Java lỗ hổng bảo mật RCE Log4J CVE-2021-44228
@renovate
Admin 14/12/2021 19:10
Log4j RCE (CVE-2021-44228) - Lịch sử, cách hoạt động và cách phòng tránh

1. Lịch sử về Log4j RCE (CVE-2021-44228, CVSSv3 10.0) Vào ngày 9/12/2021 Chen Zhaojun - Thuộc Alibaba Cloud Security Team đã tiết lộ lỗ hổng nghiêm trọng của thư viện Log4J. Cho phép thực thi code từ xa (RCE - Remote Code Execute) mà không cần xác thực (Authenticate). Log4j là thư viện để ghi log (logging) rất nổi tiếng thuộc sở hữu của Apache, được sử dụng rộng rãi trong các ứng dụng doanh nghiệp và điện toán...

Java RCE Log4J CVE-2021-44228 Log4Shell
@renovate
Admin 17/12/2021 23:20
Lỗ hổng bảo mật Log4Shell(CVE-2021-4428) của thư viện Apache Log4j2

Giới thiệu Tóm tắt câu chuyện làm chấn động giới IT mấy ngày gần đây đó chính là, có một lỗ hổng bảo mật vô cùng nghiêm trọng liên quan đến thư viện Log4j2 được cung cấp bởi Apache khiến hacker có thể kiểm soát toàn bộ hệ thống bằng phương thức tấn công thực thi mã từ xa RCE (Remote Code Execution). Và vấn đề ở đây là do java JDK từ đầu không có thư viện logging mà đến tận bản...

Java apache Log4Shell log4j2
@renovate
Admin 30/12/2021 16:30
Viết Bot xem thời tiết trên Telegram bằng Java và Spring Boot

Telegram Telegram là ứng dụng nhắn tin tập trung vào tốc độ và bảo mật, nó siêu nhanh, đơn giản và miễn phí. Bạn có thể sử dụng Telegram cùng lúc trên nhiều thiết bị, tin nhắn được đồng bộ đồng thời trên tất cả các thiết bị: điện thoại, máy tính bảng hay máy tính. Với Telegram, bạn có thể gửi tin nhắn, hình ảnh, video, file (bất kỳ loại nào từ doc, zip đến mp3...) cũng như tạo...

Java Java Spring boot bot telegram weather