Bird
Raised Fist0
Spring Bootframework~10 mins

@SpringBootApplication breakdown - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to mark the main class as a Spring Boot application.

Spring Boot
@[1]
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}
Drag options to blanks, or click blank then click option'
AComponentScan
BSpringBootApplication
CEnableAutoConfiguration
DConfiguration
Attempts:
3 left
💡 Hint
Common Mistakes
Using only @Configuration instead of @SpringBootApplication
Forgetting to annotate the main class
2fill in blank
medium

Complete the code to enable component scanning in a Spring Boot app.

Spring Boot
@ComponentScan(basePackages = {"[1]"})
public class AppConfig {}
Drag options to blanks, or click blank then click option'
Acom.example.app
Bjavax.servlet
Cjava.util
Dorg.springframework.boot
Attempts:
3 left
💡 Hint
Common Mistakes
Using unrelated package names
Leaving the package empty
3fill in blank
hard

Fix the error in the annotation to enable auto-configuration.

Spring Boot
@Enable[1]
public class Config {}
Drag options to blanks, or click blank then click option'
AAutoConfiguration
BConfiguration
CComponentScan
DSpringBootApplication
Attempts:
3 left
💡 Hint
Common Mistakes
Using @EnableConfiguration instead
Confusing with @ComponentScan
4fill in blank
hard

Fill both blanks to complete the combined annotation equivalent to @SpringBootApplication.

Spring Boot
@Configuration
@[1]
@[2]
public class App {}
Drag options to blanks, or click blank then click option'
AEnableAutoConfiguration
BComponentScan
CSpringBootApplication
DEnableScheduling
Attempts:
3 left
💡 Hint
Common Mistakes
Using @EnableScheduling instead of @ComponentScan
Missing one of the annotations
5fill in blank
hard

Fill all three blanks to explain what @SpringBootApplication does internally.

Spring Boot
The @SpringBootApplication annotation is a shortcut for:
@Configuration
@[1]
@[2]
It also enables [3] scanning.
Drag options to blanks, or click blank then click option'
AEnableAutoConfiguration
BComponentScan
Cauto
DEnableScheduling
Attempts:
3 left
💡 Hint
Common Mistakes
Confusing scheduling with auto-configuration
Missing the component scan part

Practice

(1/5)
1. What does the @SpringBootApplication annotation primarily do in a Spring Boot project?
easy
A. It only enables component scanning in the project.
B. It combines @Configuration, @EnableAutoConfiguration, and @ComponentScan annotations.
C. It disables auto-configuration to allow manual setup.
D. It marks a class as a REST controller.

Solution

  1. Step 1: Understand the purpose of @SpringBootApplication

    This annotation is a shortcut that bundles three annotations: @Configuration, @EnableAutoConfiguration, and @ComponentScan.
  2. Step 2: Identify what each bundled annotation does

    @Configuration marks the class as a source of bean definitions, @EnableAutoConfiguration enables automatic configuration based on classpath settings, and @ComponentScan scans for components in the package.
  3. Final Answer:

    It combines @Configuration, @EnableAutoConfiguration, and @ComponentScan annotations. -> Option B
  4. Quick Check:

    @SpringBootApplication = Combination of 3 annotations [OK]
Hint: Remember it bundles config, auto-config, and scanning [OK]
Common Mistakes:
  • Thinking it only enables component scanning
  • Assuming it disables auto-configuration
  • Confusing it with @RestController
2. Which of the following is the correct way to use @SpringBootApplication in a Spring Boot main class?
easy
A. Place @SpringBootApplication on the main class and include a main method with SpringApplication.run().
B. Use @SpringBootApplication on any class without a main method.
C. Add @SpringBootApplication on every component class.
D. Use @SpringBootApplication only on configuration classes without main methods.

Solution

  1. Step 1: Identify where @SpringBootApplication belongs

    This annotation should be on the main class that starts the Spring Boot application.
  2. Step 2: Confirm the main method usage

    The main class must have a main method that calls SpringApplication.run() to launch the app.
  3. Final Answer:

    Place @SpringBootApplication on the main class and include a main method with SpringApplication.run(). -> Option A
  4. Quick Check:

    Main class + @SpringBootApplication + main method = correct setup [OK]
Hint: Use @SpringBootApplication only on main app class with main() [OK]
Common Mistakes:
  • Putting @SpringBootApplication on every component
  • Omitting the main method
  • Using it on classes without starting the app
3. Given this main class code snippet, what will happen when you run it?
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}
medium
A. The Spring Boot application starts with auto-configuration and component scanning.
B. The application throws a runtime error due to missing @ComponentScan.
C. The application starts but without any auto-configuration.
D. The code will not compile because @SpringBootApplication is missing parameters.

Solution

  1. Step 1: Analyze the use of @SpringBootApplication

    The annotation enables auto-configuration and component scanning by default.
  2. Step 2: Check the main method execution

    The SpringApplication.run() method starts the Spring Boot app with all default behaviors.
  3. Final Answer:

    The Spring Boot application starts with auto-configuration and component scanning. -> Option A
  4. Quick Check:

    @SpringBootApplication triggers auto-config and scanning [OK]
Hint: Default behavior includes auto-config and scanning [OK]
Common Mistakes:
  • Assuming @ComponentScan is required separately
  • Thinking auto-configuration is off by default
  • Believing parameters are mandatory for @SpringBootApplication
4. You have this code snippet:
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

What is the purpose of the exclude attribute here?
medium
A. It changes the base package for component scanning.
B. It enables additional auto-configuration classes.
C. It disables the specified auto-configuration classes during startup.
D. It marks the class as a configuration without scanning.

Solution

  1. Step 1: Understand the exclude attribute in @SpringBootApplication

    The exclude attribute tells Spring Boot to skip certain auto-configuration classes.
  2. Step 2: Identify the effect of excluding DataSourceAutoConfiguration

    This prevents Spring Boot from automatically configuring a database connection, useful if you want manual setup.
  3. Final Answer:

    It disables the specified auto-configuration classes during startup. -> Option C
  4. Quick Check:

    exclude disables auto-config classes [OK]
Hint: exclude attribute disables unwanted auto-configurations [OK]
Common Mistakes:
  • Thinking exclude enables more configs
  • Confusing exclude with component scan base package
  • Assuming exclude marks configuration only
5. How can you customize the packages scanned by @SpringBootApplication if your components are outside the main class package?
hard
A. Use @EnableAutoConfiguration(basePackages = {...}) to specify scanning.
B. Add package names as parameters inside @SpringBootApplication directly.
C. Rename the main class package to match all component packages.
D. Use @ComponentScan(basePackages = {"com.example.other"}) alongside @SpringBootApplication.

Solution

  1. Step 1: Recognize default scanning behavior

    @SpringBootApplication scans components in its own package and subpackages by default.
  2. Step 2: Customize scanning with @ComponentScan

    To scan other packages, add @ComponentScan with basePackages specifying those packages.
  3. Final Answer:

    Use @ComponentScan(basePackages = {"com.example.other"}) alongside @SpringBootApplication. -> Option D
  4. Quick Check:

    Customize scanning with @ComponentScan basePackages [OK]
Hint: Add @ComponentScan with basePackages to scan outside packages [OK]
Common Mistakes:
  • Trying to pass packages directly to @SpringBootApplication
  • Renaming packages instead of configuring scanning
  • Using @EnableAutoConfiguration for scanning
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard