WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Spring Boot & Hibernate · Advanced · question 41 of 100

How do you create a custom Spring Boot starter? Provide an example use case.?

📕 Buy this interview preparation book: 100 Spring Boot & Hibernate questions & answers — PDF + EPUB for $5

Creating a custom Spring Boot starter is a great way to package and share common functionality across multiple Spring Boot projects. Here are the steps to create a custom Spring Boot starter:

Define the starter module: The starter module should include the necessary dependencies and configuration to provide the desired functionality. For example, if you wanted to create a starter for working with a specific database, you would include the necessary database driver and any required configuration properties.

Create a configuration class: The configuration class should define the necessary beans to provide the desired functionality. For example, if you wanted to create a starter for working with a specific database, the configuration class might define a DataSource bean and any necessary database-related beans.

Create a spring.factories file: The spring.factories file should be located in the META-INF directory of the starter module and should define the auto-configuration class that will be used when the starter is included in a Spring Boot application.

Publish the starter module: You can publish the starter module to a repository like Maven or Gradle so that it can be easily included in other projects.

Here’s an example use case for a custom Spring Boot starter: Let’s say you frequently use the Spring Cloud Config project to manage configuration for your Spring Boot applications. You could create a custom Spring Boot starter that includes the necessary dependencies and configuration to use Spring Cloud Config, making it easier to use across multiple projects.

Here are the steps to create this starter:

Define the starter module: The starter module would include the following dependencies:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

Additionally, the starter module would include a default application.yml file with the necessary configuration for Spring Cloud Config:

spring:
  cloud:
    config:
      uri: http://localhost:8888
      enabled: true

Create a configuration class: The configuration class would define a ConfigServicePropertySourceLocator bean to locate configuration properties from a Spring Cloud Config server:

    @Configuration
    public class CloudConfigAutoConfiguration {
        @Bean
        public ConfigServicePropertySourceLocator configServicePropertySourceLocator(ConfigClientProperties properties) {
            return new ConfigServicePropertySourceLocator(properties);
        }
    }

Create a spring.factories file: The spring.factories file would be located in the META-INF directory of the starter module and would define the auto-configuration class:

    org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
    com.example.CloudConfigAutoConfiguration

Publish the starter module: The starter module could be published to a Maven or Gradle repository and included in other projects using the following dependency:

<dependency>
    <groupId>com.example</groupId>
    <artifactId>spring-boot-starter-cloud-config</artifactId>
    <version>1.0.0</version>
</dependency>

With this custom Spring Boot starter, developers can easily include Spring Cloud Config functionality in their projects by simply adding the starter as a dependency.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Spring Boot & Hibernate interview — then scores it.
📞 Practice Spring Boot & Hibernate — free 15 min
📕 Buy this interview preparation book: 100 Spring Boot & Hibernate questions & answers — PDF + EPUB for $5

All 100 Spring Boot & Hibernate questions · All topics