Learn how to combine writing documentation and writing APIs with Spring REST Docs.
Also find me here:
Baeldung Author
Eugene Kovko
I’m a self-taught technical writer and an interview engineer with a background in Java Development. My primary area of expertise is creating informative and engaging content, focusing on computer science and Java topics. With over four years of hands-on experience in the tech industry, I strive to infuse my writings with practical and insightful perspectives. As an interview engineer, I possess a unique understanding what tech companies are looking for in candidates is an insight that I bring to my articles.
Here's what I've written (so far):
Baeldung on Java
- All
- Spring Data (5)
- Java (4)
- JVM (4)
- Core Java (4)
- Testing (3)
- Spring (3)
- Java Numbers (3)
- Java Collections (3)
- Java String (2)
- Java Concurrency (2)
- XML (1)
- Spring Web (1)
- Spring Boot (1)
- REST (1)
- Maven (1)
- Java Streams (1)
- Java Map (1)
- Java Array (1)
- Jackson (1)
- JPA (1)
- IDE (1)
- DevOps (1)
- Architecture (1)
Run Maven From Java Code
Filed under Maven
Learn how to interact with Maven and run builds directly from the code.
Understanding “Raw type. References to generic types should be parameterized” Error
Filed under IDE
Learn about the Eclipse IDE process of issuing a “Raw type” popup to draw attention to the incorrect use of parameterized classes.
Shutting Down on OutOfMemoryError in Java
Filed under JVM
Learn how the OutOfMemoryError often puts an application in an incorrect state.
N+1 Problem in Hibernate and Spring Data JPA
Filed under Spring Data
Explore a common N+1 problem while using Spring JPA and Hibernate.
Set an Environment Variable at Runtime in Java
Filed under Java
Learn how to have more control over the environment variables, especially for test scenarios.
List vs. Set in @OneToMany JPA
Filed under JPA
Explore the differences between Lists and Sets in the context of entity relationships through examples.
Converting Integer to BigDecimal in Java
Filed under Java Numbers
Explore several methods to convert from Integer to BigDecimal in Java.
Converting BigDecimal to Integer in Java
Filed under Java Numbers
Learn how to convert Integer to BigDecimal in Java.
Implementing Persistable-Only Entities in Spring Data JPA
Filed under Spring Data
Learn how to implement a Spring JPA solution that won’t allow updates by default.
Convert Null Value to a Default Value in Java
Filed under Core Java
Learn how to convert null value to a default value in Java.
Removing the Last Node in a Linked List
Filed under Java Collections
Learn how to remove the last node in a LinkedList in Java.
What Happens When the JVM Runs Out of Memory to Allocate During Runtime?
Filed under JVM
Explore JVM OutOfMemoryError, which indicates a problem external to our application, like other errors.
Difference Between Xmx and MaxRAM JVM Parameters
Filed under JVM
Learn how to use the -XX:MaxRAM flag to provide more tuning opportunities for the heap size calculation.
Remove Null Objects in JSON Response When Using Spring and Jackson
Learn how to leverage Jackson mapping to simplify our REST interactions.
Bind Case Insensitive @Value to Enum in Spring Boot
Filed under Spring Boot
Learn how to leverage Spring autoconfiguration to map these values to Enum instances.
When to Use the getReferenceById() and findById() Methods in Spring Data JPA
Filed under Spring Data
Learn the difference between getReferenceById(ID) and findById(ID) and find the situation when each might be more suitable.
Return Map Instead of List in Spring Data JPA
Filed under Spring Data
Learn how to use custom collections as return types in Spring Data JPA make the design more straightforward and less cluttered with mapping and filtering logic.
Using XML in @RequestBody in Spring REST
Learn how to leverage Jackson XML to use XML within Spring REST.
@Query Definitions With SpEL Support in Spring Data JPA
Filed under Spring Data
Learn how to use Spring Expression Language to make custom queries more dynamic and hide database-specific actions in the repository layers.
Setting a Spring Bean to Null
Filed under Spring
Learn how to set beans in the Spring context to nulls.
Why Is sun.misc.Unsafe.park Actually Unsafe?
Filed under Java Concurrency
Learn why Unsafe.park() is actually unsafe and get an insight into the interworking of the park() and unpark(Thread) methods.
Taking Every N-th Element from Finite and Infinite Streams in Java
Filed under Java Streams
Explore how to get every N-th element from finite and infinite streams in Java.
Finding the Square Root of a BigInteger in Java
Filed under Java Numbers
Learn three approaches to calculating the square root of a big number in Java.
Check if a String Is Strictly Alphanumeric With Java
Filed under Java String
Explore a couple of ways to check if a String is alphanumeric.
Skipping the First Iteration in Java
Filed under Java Collections
Explore various methods to skip the first element using loops and the Stream API.
How to Detect the Username Using Java
Filed under Java
Explore a couple of ways to get the required information about the environment.
Difference Between Arrays.sort() and Collections.sort()
Filed under Java Array, Java Collections
Compare two Java’s commonly used sorting methods: Arrays.sort() and Collections.sort().
When to Call System.out.flush() in Java?
Filed under Core Java
Learn when to call System.out.flush() in Java.
Create and Detect Memory Leaks in Java
Filed under JVM
Learn about memory allocation and garbage collection in Java to prevent memory leaks and build more efficient, robust applications.
External Debugging With JMXTerm
Learn how to use JMXTerm to perform external debugging on a Java application.
Java Modularity and Unit Testing
Explore Java Modularity and learn how it affected the testing in Java applications.
The Difference Between junit-vintage-engine and junit-jupiter-engine
Filed under Testing
Explore the difference between the junit-vintage-engine and the junit-jupiter-engine.
Pipeline Design Pattern in Java
Filed under Architecture
Learn about the Pipeline pattern as a potent tool.
Introduction to Datafaker
Filed under Testing
Learn how to generate mock data for different purposes with Datafaker.
Static Fields and Garbage Collection
Filed under Core Java
Learn how garbage collection in Java deals with classes and static fields.
Permutations of a String in Java
Filed under Java String
Learn how we to easily create permutations in Java using third-party libraries.
Volatile vs. Atomic Variables in Java
Filed under Java Concurrency
Learn the difference between the volatile keyword and atomic classes and what problems they solve
Difference Between Map and HashMap in Java
Filed under Java Map
Learn why interfaces are a great means for abstraction and defining a contract.
The Adapter Pattern in Java
Filed under Java
Understand the Adapter Design Pattern with a practical Java implementation
Baeldung on Computer Science
- All
- Software Architecture (6)
- Programming (5)
- Research (3)
- Core Concepts (2)
- Concurrency (2)
- Sorting (1)
- Path Finding (1)
- OS (1)
- Networking (1)
- Algorithms (1)
418 Status Code “I’m a teapot”
Filed under Networking
Learn about the 418 “I’m a teapot” status for the first time.
How to Compare Two Algorithms Empirically?
Filed under Research
Learn how to empirically compare two algorithms, looking beyond computational complexity to understand their real-world performance.
Differences Between REST and RPC
Filed under Programming, Software Architecture
Explore the differences between REST and RPC, uncovering their histories, principles, advantages, and disadvantages.
How to Design Simulation Experiments?
Filed under Research
Learn how to design a simulation experiment.
The Printer-Spooler Problem
Filed under Concurrency
Explore the Printer-Spooler problem, which provides valuable insight into the challenges of concurrency control and the necessity of synchronization mechanisms in computer systems.
How to Narrow Down a Research Problem?
Filed under Research
Explore the significance of a good research question, emphasizing its role in refining the scope and aligning research objectives.
The Bounded-Buffer Problem
Filed under Concurrency, OS
Explore the Bounded-Buffer Problem.
Federation in Computing
Filed under Core Concepts
Explore the concept of the federation in computing that enables organizations and systems to collaborate effectively while maintaining autonomy.
Eventual Consistency vs. Strong Eventual Consistency vs. Strong Consistency
Filed under Software Architecture
Explore topics of consistency, strong eventual consistency, and strong consistency depending on the specific requirements and constraints of the distributed system.
Explaining the Context Design Pattern
Filed under Programming, Software Architecture
Explore several patterns that use the idea of context.
Factory Method vs. Factory vs. Abstract Factory
Filed under Programming, Software Architecture
Learn about the Factory pattern and all its flavors.
Dependency Injection vs. Service Locator
Filed under Programming, Software Architecture
Explore two patterns: Dependency Injection and Service Locator.
Builder Pattern vs. Factory Pattern
Filed under Software Architecture
Explore the differences and similarities between the Factory and Builder patterns.
State Pattern vs. Strategy Pattern
Filed under Programming
Explore the differences between the Strategy and the State pattern.
Quicksort vs. Timsort
Filed under Sorting
Explore the differences between Timsort and Quicksort.
Decrease-Key Dijkstra’s Algorithm
Filed under Path Finding
Learn about a priority queue implementation that supports the Decrease-Key in Dijkstra algorithm.
An Introduction to the Theory of Asymptotic Notations
Filed under Algorithms, Core Concepts
Understand the concepts behind the theory of the Big-O notation.
Baeldung on Kotlin
- All
- Kotlin Basics (1)
The Difference Between Int and Integer in Kotlin
Filed under Kotlin Basics
Explore the differences between Int and Integer in Kotlin.
Baeldung on Ops
- All
- Jenkins (1)
- Git (1)
The Problem With ‘src refspec does not match any’
Filed under Git
Learn how to deal with refspec errors and what is the reason behind them.
Scripted vs Declarative Pipelines in Jenkins
Filed under Jenkins
A quick and practical comparison between scripted and declarative pipelines in Jenkins.