Java Spring Interview Questions

Practice for Java Spring interviews by solving TestDome questions. Our interview questions are used by more than 7,000 companies and 450,000 individual test takers.

Jobseekers: Certify Your Knowledge

Take a Certification Test

Companies: Use Our Tests for Screening

Buy a Pack Of Candidates

Need to practice your Java Spring skills for an upcoming job interview? Try solving these Java Spring interview questions that test knowledge of Spring Framework concepts such as scheduling, configuration, database abstraction, and other skills. We’ll provide feedback on your answers, and you can use a hint if you get stuck.

These Java Spring interview questions are examples of real tasks used by employers to screen job candidates such as Java developers, web developers, Spring Framework developers, and others that require knowledge of the Java programming language and the Spring Framework.

1. Multiple Databases

Java Spring Database abstraction Spring Boot New Public

A company wants to use Spring Boot in a web application which should use JPA as a database abstraction. The unit tests should be run on an H2 database while the production should run on a MySQL database.

Select all the things that need to be done or that will be done automatically by Spring Boot.

(Select all acceptable answers.)

The properties file that uses the H2 database should be in src/test/resources.
Spring Boot will automatically configure and use a JPA implementation if it's present in the classpath.
The properties file that uses the MySQL database should be in src/main/resources.
Spring Boot will automatically configure an embedded MySQL DataSource if the MySQL driver is on the classpath.
The tests will need different repository classes since they use a different database.

2. Task Executor

Java Spring Configuration Public

Consider the following Spring bean:

public class TaskExecutor {

    private int threadCount;
    private String threadNameTemplate;
    private AtomicInteger counter = new AtomicInteger();
    private ExecutorService executorService;

    public void init() {
        ThreadFactory threadFactory = (runnable) -> new Thread(threadNameTemplate + counter.incrementAndGet());
        executorService = Executors.newFixedThreadPool(threadCount, threadFactory);

Select the statements that are correct.

(Select all acceptable answers.)

Properties injected with @Value may, among other sources, come from system properties and JVM arguments.
As the values of threadCount and threadNameTemplate are private and have no setters, they cannot be set by Spring.
Initialization will fail because the counter and executorService fields are not managed by Spring.
If a property named "thread.count" is not made available to Spring (i.e. through property files), the value of threadCount field will be 10.
The value of the field threadNameTemplate will always be set to the same value regardless of properties provided to Spring.

3. Weather Forecast Service

Java Spring Scheduling New Public

Edit the WeatherForecastService, FakeThermometer, and the Config classes so that:

  • The Spring container should always return a new instance of FakeThermometer.
  • Config class will configure Spring scheduling.
  • takeTemperatureMeasurement method should be executed every 50 milliseconds, using Spring scheduling.
Java SE 13  

  •   Spring returns a new instance of FakeThermometer every time it wires it: Wrong answer
  •   Spring scheduling is configured: Wrong answer
  •   takeTemperatureMeasurement is executed every 50 milliseconds: Time limit exceeded

4. Movie Repository

Java Spring Database abstraction New Public

Modify the createMovie and findMoviesByName methods of the class MovieRepository.

  • Using JdbcTemplate, createMovie method should insert a new row into the movies table with the specified data.
  • Using JdbcTemplate, findMoviesByName should return a list of all movies from the 'movies' table, in which the name of the movie contains the likeName string, using the LIKE operator. The returned list should contain Movie objects with name, year, and rating fields correctly set.

For example, executing the following code:

AnnotationConfigApplicationContext config = new AnnotationConfigApplicationContext();
MovieRepository repository = config.getBean(MovieRepository.class);

repository.createMovie("Some movie", 1974, 3);
repository.createMovie("Some other movie", 1993, 2);

List<Movie> movies = repository.findMoviesByName("Some%");
for(Movie movie : movies) {
    System.out.println( + " - " + movie.year + " - " + movie.rating);

should print:

Some movie - 1974 - 3
Some other movie - 1993 - 2
Java SE 13  

  •   Example case: Wrong answer
  •   createMovie method will create a movie with correct data: Wrong answer
  •   findMoviesByName method will return correct movies: Wrong answer

5. Logger AOP

Java Spring Configuration New Public

In the LoggerAOP class, using Spring AOP, intercept all calls to the public methods annotated with the LogExecution annotation, and call the log method on the logger field with the intercepted method's name as the data argument.

Java SE 13  

  •   logger will be invoked on NameRepository getName method: Wrong answer
  •   logger will be invoked on methods annotated with LogExecution: Wrong answer
  •   logger will be invoked only on public methods annotated with LogExecution: Wrong answer

If you feel ready, take one of our timed public Java Spring Interview Questions tests:

Java and Spring Boot Online Test (Easy / Hard)

Java and Spring Framework Online Test (Easy / Hard)

Java, Hibernate, and Spring Boot Online Test (Easy / Hard)

Java, Hibernate, and Spring Framework Online Test (Easy / Hard)

Not exactly what you are looking for? Go to our For Jobseekers section.
Dashboard Start Trial Sign In Home Tour Tests Questions Pricing For Jobseekers