一,代码构建
Spring Boot不需要任何特定的代码布局。(我们建议您遵循Java推荐的包命名约定并使用反向域名(例如,com.example.project
)
二,主应用程序类
我们通常建议您将主应用程序类放在其他类之上的根包中,如下结构:
com
+- example
+- myapplication
+- Application.java
|
+- customer
| +- Customer.java
| +- CustomerController.java
| +- CustomerService.java
| +- CustomerRepository.java
|
+- order
+- Order.java
+- OrderController.java
+- OrderService.java
+- OrderRepository.java
Application.java
文件将声明main
方法以及基本@SpringBootApplication
,如下所示:
package com.example.myapplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
如果您不想使用@SpringBootApplication
,也可以使用@EnableAutoConfiguration
和@ComponentScan
@EnableAutoConfiguration
:启用Spring Boot的自动配置机制@ComponentScan
:对应用程序所在的软件包启用@Component
扫描@Configuration
:允许在上下文中注册额外的beans或导入其他配置类
@SpringBootApplication
注释等效于使用@Configuration
,@EnableAutoConfiguration
和@ComponentScan
及其默认属性
三,配置类
Spring Boot支持基于Java的配置。虽然可以将SpringApplication
与XML源一起使用,但我们通常建议您的主要来源是单个@Configuration
类。通常,定义main
方法的类是主要的@Configuration配置类。
导入其他配置类
你不需要将所有@Configuration
放入一个包中。使用@Import
注释可用于导入其他配置类。或者,您可以使用@ComponentScan
自动选取所有Spring组件,包括@Configuration
类。
导入XML配置
如果您绝对必须使用基于XML的配置,我们建议您仍然使用@Configuration
类。然后,您可以使用@ImportResource
注释来加载XML配置文件
四,自动配置
Spring Boot自动配置尝试根据您添加的jar依赖项自动配置您的Spring应用程序。例如,如果HSQLDB
在您的类路径上,并且您尚未手动配置任何数据库连接beans,则Spring Boot会自动配置内存数据库。
您需要通过向@Configuration
类之一添加@EnableAutoConfiguration
或@SpringBootApplication
注释来选择加入自动配置
禁用特定的自动配置类
如果发现正在应用您不需要的特定自动配置类,则可以使用@EnableAutoConfiguration
的exclude属性禁用它们,如以下示例所示
import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}
如果类不在类路径上,则可以使用注释的excludeName
属性并指定完全限定名称。最后,您还可以使用spring.autoconfigure.exclude
属性控制要排除的自动配置类列表。