<small id='fBrtywmD'></small> <noframes id='jBRDfA3p'>

  • <tfoot id='yM75JO'></tfoot>

      <legend id='DtzIBQLjV'><style id='yG84Zt3i2'><dir id='m7NEHXQn'><q id='yEgDP71CU'></q></dir></style></legend>
      <i id='GU7zw'><tr id='fOYy'><dt id='BWGCiUh7b5'><q id='nZzeVdWrC'><span id='FsNg'><b id='pRJt9'><form id='F8PIwoB9'><ins id='8FA5vVzn'></ins><ul id='zWsNw3'></ul><sub id='1Vnqri'></sub></form><legend id='4e30d7PN'></legend><bdo id='36beqD1O'><pre id='JHIwzLCNG'><center id='kwXNDVro0h'></center></pre></bdo></b><th id='pW2AbGav'></th></span></q></dt></tr></i><div id='68Ilo'><tfoot id='n7kg'></tfoot><dl id='UO0NBas'><fieldset id='GyJmWsDHT'></fieldset></dl></div>

          <bdo id='Yjy7'></bdo><ul id='qTUsSXKxL'></ul>

          1. <li id='ev4RXy'></li>
            登陆

            (第五讲)自定义Spring Boot Starter

            admin 2019-05-18 292人围观 ,发现0个评论

            在第四讲中咱们现已了解了Spring Boot主动装备的根本原理,了解其原理之后,你会觉得Spring Boot的主动装备才干其实也没有那么的奥秘。在本讲中,咱们将测验完结一个自定义的Spring Boot Starter,以稳固上一件中的内容。

            1. 主要内容

            • 1.完结自定义的spring boot starter
            • 2.验证自定义的spring boot starter是否收效
            • 3.验证主动装备是否收效

            本讲所触及的源码现已上传到Github库房,你能够经过下面的链接获取悉数的源码:

            https://github.com/ramostear/Spring_Boot_2.X_Tutorial/tree/master/spring-boot-starter-site

            2. 完结自定义的spring boot starter

            现在,咱们来完结这一一个功用,当SiteInformation类在classpath下的时分,体系主动装备SiteInformation类的Bean,而且SiteInfo(第五讲)自定义Spring Boot Starterrmation类中的特点能够在application.properties文件中进行装备。

            首要,运用IntelliJ IDEA创立一个Maven工程,在当时Project上挑选新建Module,在弹出面板中填写相关信息,如下图所示:

            点击下一步,挑选module寄存途径,如下图所示:

            点击完结按钮,生成新的Module,然后修正module中的pom.xml,增加spring-boot-autoconfigure依靠,完好的装备代码如下所示:

            增加spring-boot-autoconfigure依靠的意图是让自定义的starter具有主动装备的才干

            然后,创立一个名为:com.ramostear.spring.boot.starter.site的包,并在包下创立SiteInformation.java文件,这个类供给了站点的一些根本特点,源码如下:

            @ConfigurationProperties(prefix = “site”)注解的作用是当咱们需求掩盖站点信息时,在application.properties文件中需求运用“site”作为特点的前缀,如site.name = ramostear。假如不做任何装备,站点信息将运用默认值:unknown

            接下来,创立一个SiteInformationProvider.java文件,用于回来站点信息,其源码如下所示:

            SiteInformationProvider.java是主动装备的根据类,当引证此自定义Starter时,会根据SiteInformationProvider是否存在类创立这个类的Bean。

            准备好上述两个类之后,需求创立一个主动装备类,如SiteInformationAuto(第五讲)自定义Spring Boot StarterConfiguration.java,其源码如下所示:

            @ConditionalOnWebApplication注解表名此主动装备能够在Web运用中进行运用,@EnableConfigurationProperties(SiteInformation.class)注解指明供给主动装备的特点目标@ConditionalOnMissingBean(SiteInformationProvider.class)指明当容器中没有SiteInformationProvider这个类的Bean时,主动装备这个类的Bean

            最终,需求将此装备类进行注册,Spring Boot才干完结主动装备作业。在resources资源文件夹下创立名为META-INF的文件夹,并增加名为spring.factories的文件,修正其内容为:

            若有多个主动装备项,请用“,”进行切割,此处的“\”是为了换行下一任然能够读取到特点。

            完结上述的一切作业后,点击IDEA右侧Maven东西栏,挑选当时项目,找到Plugins中的install选项并点击履行装置,如下图所示:

            上述操作运转成功后,你能够在控制台看到如下所示的提示信息:

            提示,请运用maven自带的插件对项目进行打包和装置,切勿运用spring-boot-maven-plugin进行打包装置,不然打包后的jar无法运用,请将下面的代码从你的pom文件中除掉:




            org.springframework.boot
            spring-boot-maven-plugin



            至此,自定义的spring boot starter制造完结。接下来创立一个web工程,引进spring-boot-starter-site,测验此starter是否能够正常运用。

            3. 创立Web工程

            新建一个测验用的Module,并运用IDEA自带的Spring Initializr创立一个Web工程,如下图所示:

            挑选Module SDK的版别,挑选下一步,填写Module相关信息,如下图所示:

            然后点击下一步,将Web依靠增加到项目中,然后点击保存按钮,生成新的Module。如下如所示:

            接下来,将spring-boot-starter-site依靠增加到测验用的Web工程中,pom.xml源码如下:

            4. 验证自定义Starter

            修正CustomStarterTestApplication.java中的源码,增加@RestController注解,并创立一个获取站点信息的办法,源码如下:

            接下来在application.properties文件(第五讲)自定义Spring Boot Starter中增加如下的类容:

            site.name = 谭朝红的技能共享博客
            site.domain = www.ramostear.com
            site.keywords = blog
            site.description = 谭朝红的技能共享博客
            site.copyright = Copyright 2019-Ramostear
            logging.level.org.springframework = debug

            装备logging.level.org.springframework= debug特点的作用是能够在控制台日志中检查自定义的starter是否收效。

            5. 运转并测验

            点击运转CustomStarterTestApplication主类,并调查控制台输出,当自定义的starter收效后,你能够在控制台看到如下的信息:

            ============================
            CONDITIONS EVALUATION REPORT
            ============================
            Positive matches:
            -----------------
            ...
            SiteInformationAutoConfiguration matched:
            - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition)
            SiteInformationAutoConfiguration#provider matched:
            - @ConditionalOnMissingBean (types: com.ramostear.spring.boot.starter.site.SiteInformationProvider; SearchStrategy: all) did not find any beans (OnBeanCondition)
            ...

            最终,运用Postman东西恳求http://localhost:8080/site/info 并调查回来的信息:

            恳求成功、并回来了站点的装备信息,详细信息如下所示:

            {
            "name": "谭朝红的技能共享博客",
            "domain": "www.ramostear.com",
            "copyright": "Copyright 2019-Ramostear",
            "keywords": "blog",东临碣石以观沧海
            "description": "谭朝红的技能共享博客"
            }

            6. 总结

            本末节演示了怎么创立一个自定义的Spring Boot Starter,并进行测验。进一步加深和强化了对Spring Boot主动装备原理的了解。本次共享类容到此结束,谢谢~~

            请关注微信公众号
            微信二维码
            不容错过
            Powered By Z-BlogPHP