很多 Spring Boot 开发者总是使用@Configuration、@EnableAutoConfiguration和@ComponentScan注解标记在主类上。由于 这些注解经常一起使用,根据官方的最佳实践,Spring Boot 提供了一个更方便的@SpringBootApplication注解可用来替代这个组合。
@SpringBootApplication注解相当于使用@Configuration、@EnableAutoConfiguration和@ComponentScan及他们的默认属性:
package com.example.myapplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication // 相当于使用 @Configuration @EnableAutoConfiguration @ComponentScan
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
复制代码
1、@SpringBootApplication还提供了别名来自定义@EnableAutoConfiguration和@ComponentScan的属。
2、Spring Boot中引入了自动配置,让开发者利用起来更加的简便、快捷。比如内嵌的tomcat端口默认配置是8080,这些都属于Spring Boot自动配置的范畴,当然其自动配置相当多。
3、springboot框架的神奇之处在于@EnableAutoConfiguration注释,此注释自动载入应用程序所需的所有Bean 。
@SpringBootApplication定位主应用类
Spring Boot 不需要任何特定的代码布局,但是有一些最佳实践是很有用的,Spring Boot中一个经典的包结构如下:
com
+- icangjinge
+- bank
+-springboot
+- base
+-entity
+- Customer
+-controller
+- CustomerController
+-service
+- CustomerService
+- CustomerApplication.java
复制代码
或
com
+- icangjinge
+- bank
+-springboot
+- base
+- Application.java
+- customer
+- Customer.java
+- CustomerController.java
+- CustomerService.java
+- CustomerRepository.java
+- order
+- Order.java
+- OrderController.java
+- OrderService.java
+- OrderRepository.java
复制代码