Articles

  1. Java stream collectors: grouping and partitioning in depthJava stream collectors are terminal operations that turn a stream into a collection or summary. Grouping and partitioning transform individual records into…
  2. Auditing Entity Changes with Hibernate EnversJava applications often change records that later need to be explained, including customer profiles, order states, balances, permissions, and configuration. A…
  3. Implementing OAuth2 login with Spring Security and GitHubSpring Security can implement OAuth2 login with GitHub, giving users a familiar sign-in without storing their GitHub password. It handles the browser redirect,…
  4. How to Manage Application Properties Securely in Spring BootSpring Boot makes configuration convenient through application.properties and application.yml, but convenience can become a security risk when passwords, API…
  5. Closed hierarchies for safer Java domain designJava sealed interfaces and classes, introduced in Java 17, give application code a precise way to describe a closed set of permitted subtypes. Instead of…
  6. Creating a GraphQL API with Spring Boot and GraphQL JavaGraphQL gives web and mobile clients one typed endpoint for fetching exactly the data they need. It suits products that combine catalogues, accounts and…
  7. Handling Database Transactions with Spring's @Transactional AnnotationAn online checkout often changes several records: it creates an order, reduces stock and records a payment reference. If one operation fails, the database must…
  8. Java Records for Cleaner Data Transfer ObjectsData transfer objects (DTOs) often begin as simple carrier classes and accumulate routine syntax. A client identifier, customer name, timestamp and status may…
  9. Choosing between WebClient and RestTemplate for REST APIsBuilding a REST client with Spring WebClient vs RestTemplate comes down to how the application handles I/O. Both clients can call JSON APIs, map responses,…
  10. Understanding the Java memory model and garbage collection tuningMany Java performance incidents begin with a misleading symptom: CPU rises, requests queue, or an application suddenly slows after deployment. The Java memory…