1. 程式人生 > >Java-SpringBoot註解一@SpringBootApplication註解

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"),掃描定義路徑下的包