首页 > 其他分享 >02_自定义Springboot starter

02_自定义Springboot starter

时间:2023-11-17 14:33:34浏览次数:42  
标签:02 EmailAutoConfiguration 自定义 XXX public EmailEnable class starter

 

  • 创建springboot starter 
  1. 创建一个demo starter 
  2.  创建配置类

    @Configuration
    @EnableConfigurationProperties(EmailProperties.class)
    @ConditionalOnBean(EmailEnable.class)
    public class EmailAutoConfiguration {
    
        static {
            System.out.println("EmailAutoConfiguration init...");
        }
    
        @Bean
        public EmailServiceImpl emailServiceImpl() {
            return new EmailServiceImpl();
        }
    }
    
    
    // =============================================
    public class EmailEnable {
    }
    
    // =============================================
    
    @ConfigurationProperties(prefix = "email.config")
    public class EmailProperties {
    }
    // =============================================
    
    @Documented
    @Inherited
    @Retention(RetentionPolicy.RUNTIME)
    @Target({ElementType.TYPE})
    @Import(EmailEnable.class)
    public @interface EnableAutoEmail {
    }

     

  3. 创建具体业务类型
    public interface EmailService {
    
        void sendEmail() throws EmailServiceException;
    
    }
    
    //========================================
    
    public class EmailServiceImpl implements EmailService {
        @Override
        public void sendEmail() throws EmailServiceException {
           
        }
    }
  4. 增加配置文件 resource目录下创建一个META-INF文件夹,这里需要注意的是EmailAutoConfiguration需要放到一个根目录下。
    org.springframework.boot.autoconfigure.EnableAutoConfiguration=XXX.EmailAutoConfiguration

     

  5. 将项目install到本地的maven库中,打包时需要注意一下,SpringBoot项目打包的JAR是可执行JAR,它的类放在BOOT-INF目录下,如果直接作为其他项目的依赖,会找不到类。可以通过修改pom文件来解决,代码如下:
    <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
         <configuration>
             <classifier>exec</classifier>
         </configuration>
    </plugin>

    如果需要上传私有maven中,需要配置以下代码:

        <distributionManagement>
            <repository>
                <id>XXX</id>
                <name>XXX</name>
                <url>XXX</url>
                <layout>default</layout>
            </repository>
            <snapshotRepository>
                <id>XXX</id>
                <name>XXX</name>
                <url>XXX</url>
            </snapshotRepository>
        </distributionManagement>

     

  6. 使用springboot start,引入包
            <dependency>
                <groupId>com.example</groupId>
                <artifactId>demo2</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>

     

  7. 开启starter,需要在ApsUiApplicationServer中增加@EnableAutoEmail 注解
  8. 测试
    public class MailTest extends ApplicationTest {
        @Autowired
        private EmailService emailService;
        @Test
        public void sendEmail2() throws EmailServiceException {
            emailService.sendEmail();
        }
    }

     

标签:02,EmailAutoConfiguration,自定义,XXX,public,EmailEnable,class,starter
From: https://www.cnblogs.com/xmx23/p/17838684.html

相关文章

  • 【专题】2023快手母婴行业数据报告PDF合集分享(附原数据表)
    品牌一直在思考如何更好地了解消费者的需求,特别是在年轻化和线上消费趋势加强的母婴行业。根据《2023母婴行业数据报告合集》,短视频直播平台成为该行业新的增长点。报告合集显示,母婴商品的消费人数在2022年全年和2023年前两个月均呈快速增长趋势。用户的购买力和品单价也在提升,实......
  • 【专题】2023年轻人催婚报告PDF合集分享(附原数据表)
    随着10月的到来,我们已经踏入了年末冲刺阶段,是否准备好应对家庭的盘问了?工作稳定、挣多少钱、买房与否,最后总是绕不开催婚话题。报告合集年轻人分享了自己面临的催婚压力和对婚姻的态度及看法。调查中,74.8%的人认为不存在结婚时限,而25.2%的人则有着结婚期限的设定,其中11.9%的人认为3......
  • KiCon Asia 2023完美落幕,助力Kicad生态繁荣,华秋在行动
    11月12日,首届KiConAsia2023在深圳完美落幕。本次大会聚焦开源EDA-KiCad项目的发展及生态,围绕KiCad工具近况,KiCad在芯片及PCB设计中的应用,如何开发自己的KiCadPython插件,及DFM与KiCad的结合等方面展开了分享与互动。除了满满干货,有趣好玩的“Simple-Add-Onhat”动手实......
  • 02_IDEA设置Maven路径 仅当前项目生效 && 永久生效
    问题描述:IDEA中,Maven文件的配置一般默认在C:\Users\xxx\.m2路径下,但我们不希望将jar包放在C盘,改为其他盘,此时就需要对Maven中的默认配置进行设置,改为我们自己的路径。其中有两种方案,仅当前项目生效&&永久生效,具体操作方法见下。解决方案:1.仅当前项目生效操作路径:IDEA中,File-->......
  • 直播平台搭建,实现自定义设置登录页面
    直播平台搭建,实现自定义设置登录页面1.在resources中建立static文件夹(默认找这里面的页面)创建login.html <!DOCTYPEhtml><htmlxmlns:th="http://www.thymeleaf.org"><head>  <metacharset="UTF-8">  <title>static中的login</title></hea......
  • 恒驰喜讯 | 荣获2023项目管理论坛“最佳集成服务伙伴”、“卓越合作伙伴项目经理”双
    2023年11月7日~8日,以“价值交付·共创未来”为主题的2023年项目管理论坛在深圳坂田成功举办。论坛上,来自海内外交付领域的200多名专家围绕项目管理实践、交付案例与项目优化等主题展开了深入交流,并就各区域项目管理案例做了经验分享,为全球范围内的项目管理优化及交付升级提供了宝贵......
  • 每日总结2023年11月17日
    AccesstoXMLHttpRequestat'http://localhost:8090/user/list'fromorigin'http://localhost:8080'hasbeenblockedbyCORSpolicy:No'Access-Control-Allow-Origin'headerispresentontherequestedresource.这是今天做SpringBoot+......
  • StoneDB顺利通过中科院软件所 2023 开源之夏 结项审核
    近日,中科院软件所-开源软件供应链点亮计划-开源之夏2023的结项名单正式出炉,经过三个月的项目开发和一个多月的严格审核,共产生418个成功结项项目!其中,StoneDB作为本次参与开源社区,社区入选的两个项目顺利结项!参与项目的两位来自浙江大学的同学均获得最终结项证书。2023年......
  • Spring5学习随笔-生命周期、自定义类型转换器、后置处理Bean
    学习视频:【孙哥说Spring5:从设计模式到基本应用到应用级底层分析,一次深入浅出的Spring全探索。学不会Spring?只因你未遇见孙哥】第十章、对象的生命周期1.什么是对象的生命周期指的是一个对象创建、存活、消亡的一个完整过程2.为什么要学习对象的生命周期由Spring负责对象的......
  • 2023年11月中国数据库排行榜:OPO组合持续两月,亚信、中兴闯进前十
    长夜之中蓄力待,势如破晓初光披。 2023年11月的 墨天轮中国数据库流行度排行 火热出炉,本月共有283个数据库参与排名。本月排行榜前十名变动较大,TiDB上升一位居第4,达梦奋勇向前重归第6,亚信AntDB、中兴GoldenDB势如破竹进军10强。 墨天轮十巨头之争白热化,中国数据库行业将迎......