1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        超級詳細的Spring Boot 注解總結

        共 7282字,需瀏覽 15分鐘

         ·

        2021-05-21 19:37

        日常編程中我相信大家肯定都用過spring,也用過spring的注解,哪怕面試的時候也經常會被問到一些spring和spring boot注解的作用和含義等,那么這篇就帶大家來看看超級詳細的Spring Boot 注解總結!搞起!


        我們先來看看本篇會講到的注解,大家可以先看著注解想一想這個是干啥用的,什么場景會用到,有哪些是你不知道的,帶著你的答案和疑問再往下看!

        1、@SpringBootApplication
        2@EnableAutoConfiguration
        3、@Configuration
        4、@SpringBootConfiguration
        5、@ComponentScan
        6、@Conditional
        7、@ConditionalOnBean
        8、@ConditionalOnMissingBean
        9、@ConditionalOnClass
        10@ConditionalOnMissingClass
        11、@ConditionalOnWebApplication
        12@ConditionalOnNotWebApplication
        13、@ConditionalOnProperty
        14@ConditionalOnExpression
        15、@ConditionalOnJava
        16、@ConditionalOnResource
        17、@ConditionalOnJndi
        18、@ConditionalOnCloudPlatform
        19、@ConditionalOnSingleCandidate
        20、@ConfigurationProperties
        21、@EnableConfigurationProperties
        22、@AutoConfigureAfter
        23、@AutoConfigureBefore
        24@Import
        25、@ImportResource
        26、讀取配置方式匯總

        注解及介紹

        1、@SpringBootApplication

        這是 Spring Boot 最最最核心的注解,用在 Spring Boot 主類上,標識這是一個 Spring Boot 應用,用來開啟 Spring Boot 的各項能力。

        其實這個注解就是 @SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan 這三個注解的組合,也可以用這三個注解來代替 @SpringBootApplication 注解。@SpringBootApplication 默認掃描和本類在一個層級下的所有包及其子包

        2、@EnableAutoConfiguration

        允許 Spring Boot 自動配置注解,開啟這個注解之后,Spring Boot 就能根據當前類路徑下的包或者類來配置 Spring Bean。

        如:當前類路徑下有 Mybatis 這個 JAR 包,MybatisAutoConfiguration 注解就能根據相關參數(shù)來配置 Mybatis 的各個 Spring Bean。

        3、@Configuration

        這是 Spring 3.0 添加的一個注解,用來代替 applicationContext.xml 配置文件,所有這個配置文件里面能做到的事情都可以通過這個注解所在類來進行注冊。替代了xml形式的配置文件,用配置類開發(fā)

        4、@SpringBootConfiguration

        這個注解就是 @Configuration 注解的變體,只是用來修飾是 Spring Boot 配置而已,或者可利于 Spring Boot 后續(xù)的擴展。

        5、@ComponentScan

        這是 Spring 3.1 添加的一個注解,用來代替配置文件中的 component-scan 配置,開啟組件掃描,即自動掃描包路徑下的 @Component 注解進行注冊 bean 實例到 context 中。

        6、@Conditional

        這是 Spring 4.0 添加的新注解,用來標識一個 Spring Bean 或者 Configuration 配置文件,當滿足指定的條件才開啟配置。

        7、@ConditionalOnBean

        組合 @Conditional 注解,當容器中有指定的 Bean 才開啟配置。

        8、@ConditionalOnMissingBean

        組合 @Conditional 注解,和 @ConditionalOnBean 注解相反,當容器中沒有指定的 Bean 才開啟配置。

        9、@ConditionalOnClass

        組合 @Conditional 注解,當容器中有指定的 Class 才開啟配置。

        10、@ConditionalOnMissingClass

        組合 @Conditional 注解,和 @ConditionalOnMissingClass 注解相反,當容器中沒有指定的 Class 才開啟配置。

        11、@ConditionalOnWebApplication

        組合 @Conditional 注解,當前項目類型是 WEB 項目才開啟配置。

        當前項目有以下 3 種類型。

        enum Type {
        /**
         * 匹配全部web application
         */

        ANY,

        /**
         *只匹配servlet web applicaiton
         */

        SERVLET,

        /**
         * 只匹配reactice-based web application
         */

        REACTIVE
        }

        12、@ConditionalOnNotWebApplication

        組合 @Conditional 注解,和 @ ConditionalOnWebApplication 注解相反,當前項目類型不是 WEB 項目才開啟配置。

        13、@ConditionalOnProperty

        組合 @Conditional 注解,當指定的屬性有指定的值時才開啟配置。

        14、@ConditionalOnExpression

        組合 @Conditional 注解,當 SpEL 表達式為 true 時才開啟配置。

        15、@ConditionalOnJava

        組合 @Conditional 注解,當運行的 Java JVM 在指定的版本范圍時才開啟配置。

        16、@ConditionalOnResource

        組合 @Conditional 注解,當類路徑下有指定的資源才開啟配置。

        17、@ConditionalOnJndi

        組合 @Conditional 注解,當指定的 JNDI 存在時才開啟配置。JDNI(Java 命名與目錄接口 Java Naming and Directory Interface)

        18、@ConditionalOnCloudPlatform

        組合 @Conditional 注解,當指定的云平臺激活時才開啟配置。

        19、@ConditionalOnSingleCandidate

        組合 @Conditional 注解,當指定的 class 在容器中只有一個 Bean,或者同時有多個但為首選時才開啟配置。

        20、@ConfigurationProperties

        用來加載額外的配置(如 .properties 文件),可用在 @Configuration 注解類,或者 @Bean 注解方法上面。

        21、@EnableConfigurationProperties

        一般要配合 @ConfigurationProperties 注解使用,用來開啟對 @ConfigurationProperties 注解配置 Bean 的支持。

        22、@AutoConfigureAfter

        用在自動配置類上面,表示該自動配置類需要在另外指定的自動配置類配置完之后。

        如 Mybatis 的自動配置類,需要在數(shù)據源自動配置類之后。

        @AutoConfigureAfter(DataSourceAutoConfiguration.class)
        public class MybatisAutoConfiguration 
        {
        }

        23、@AutoConfigureBefore

        這個和 @AutoConfigureAfter 注解使用相反,表示該自動配置類需要在另外指定的自動配置類配置之前。

        24、@Import

        這是 Spring 3.0 添加的新注解,用來導入一個或者多個 @Configuration 注解修飾的類,這在 Spring Boot 里面應用很多。

        25、@ImportResource

        這是 Spring 3.0 添加的新注解,用來導入一個或者多個 Spring 配置文件,這對 Spring Boot 兼容老項目非常有用,因為有些配置無法通過 Java Config 的形式來配置就只能用這個注解來導入。

        讀取配置方式匯總

        1.讀取application文件

        在application.yml或者properties文件中添加:

        user.name = 狼王
        user.age = 25
        user.sex = man 

        @value 方式

        @Component
        public class User {

            @Value("${user.name}")
            private String name;
            @Value("${user.age}")
            private int age;
            @Value("${user.sex}")
            private boolean sex;

            public User() {
            }

            public User(String name, int age, boolean man) {
                this.name = name;
                this.age = age;
                this.man = man;
            }

            public String getName() {
                return name;
            }

            public void setName(String name) {
                this.name = name;
            }

            public int getAge() {
                return age;
            }

            public void setAge(int age) {
                this.age = age;
            }

            public boolean isMan() {
                return man;
            }

            public void setMan(boolean man) {
                this.man = man;
            }
        }

        2.@ConfigurationProperties注解讀取方式

        @Component
        @ConfigurationProperties(prefix = "user")
        public class User2 {
            private String name;

            private int age;

            private boolean sex;

            public User2() {
            }

            public User2(String name, int age, boolean man)     {
                this.name = name;
                this.age = age;
                this.man = man;
            }
        }

        3.讀取指定文件

        資源目錄下建立config/myConfig.properties:

        db.username=root
        db.password=123

        @PropertySource+@Value注解讀取方式

        @Component
        @PropertySource(value = {"config/myConfig.properties"})
        public class User2 {

            @Value("${db.userName}")
            private String userName;
            @Value("${db.userName}")
            private String passWord;

            public User2() {
            }

            public User2(String userName,String passWord){
                this.userName = userName;
                this.passWord = passWord;
            }
        }

        也可以通過@PropertySource+@ConfigurationProperties注解讀取方式



        好了。今天就說到這了,我還會不斷分享自己的所學所想,希望我們一起走在成功的道路上!

        瀏覽 27
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            免费国产在线观看麻豆 | 91久久精品无码一级毛片 | 美女黄网站免费 | 中文字幕在线播放av | 日本黄色电影视频 | 97人人操人人爱 | 哦┅┅快┅┅用力啊┅张素琴 | 黄色一级免费电影 | 周妍希浴室洗澡三点露av | 小舞张开玉腿求我桶她的漫画 |