Java-SpringBoot註解一@SpringBootApplication註解
1、@SpringBootApplication註解
被 @Configuration、@EnableAutoConfiguration、@ComponentScan 註解所修飾,換言之 Springboot 提供了統一的註解來替代以上三個註解,簡化程式的配置;
①@Configuration
一般與 @Bean 註解配合使用,用 @Configuration 註解類等價與 XML 中配置 beans;
用 @Bean 註解方法等價於 XML 中配置 bean;
舉例:
<beans> <bean id = "userService" class="com.user.UserService"> <property name="userDAO" ref = "userDAO"></property> </bean> <bean id = "userDAO" class="com.user.UserDAO"></bean> </beans>
就等價於
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class Config { @Bean public UserService getUserService(){ UserService userService = new UserService(); userService.setUserDAO(null); return userService; } @Bean public UserDAO getUserDAO(){ return new UserDAO(); } }
②@EnableAutoConfiguration
啟用 Spring 應用程式上下文的自動配置,試圖猜測和配置您可能需要的bean。
自動配置類通常採用基於你的 classpath 和已經定義的 beans 物件進行應用。
被 @EnableAutoConfiguration 註解的類所在的包有特定的意義,並且作為預設配置使用。
例如,當掃描 @Entity類的時候它將本使用。
通常推薦將 @EnableAutoConfiguration 配置在 root 包下,這樣所有的子包、類都可以被查詢到。
③@ComponentScan
為 @Configuration註解的類配置元件掃描指令。同時提供與 Spring XML’s 元素並行的支援。
無論是 basePackageClasses() 或是 basePackages() (或其 alias 值)都可以定義指定的包進行掃描。
如果指定的包沒有被定義,則將從宣告該註解的類所在的包進行掃描。
通俗的講,@ComponentScan 註解會自動掃描指定包下的全部標有 @Component註解 的類,並註冊成bean,當然包括 @Component 下的子註解@Service、@Repository、@Controller。@ComponentScan 註解沒有類似 的屬性。
2、@MapperScan
@MapperScan("com.xxx.**.**.dao"),掃描定義路徑下的包