Giter VIP home page Giter VIP logo

dingtalk-spring-boot-starter's Introduction

Dinger(叮鸽) GitHub license

Dinger Logo

Maven Central GitHub stars Gitee stars JDK SpringBoot

 

What(Dinger是什么)

Dinger是一个以SpringBoot框架为基础开发的消息发送中间件, 对如下移动办公系统的群机器人API做了一层封装,让使用更简单便捷。

只需要简单的配置(最简单的发送功能只需要一行代码),即可快速的在springboot项目中将消息发送到指定的钉钉或企业微信群聊中。

 


Why(为什么用Dinger)

  • 配置简单,上手容易,无需花费太多精力在群机器人API的使用上;
  • 插拔式功能组件,和业务代码解耦;
  • 核心功能面向接口编程, 可以据具体业务对功能进行定制化来满足不同的业务需求;
  • 支持集中式管理消息,提供xml标签,支持编写动态消息体;
  • 基于具体消息编程,消息体可支持XML标签方式配置和注解方式定义;
  • 支持钉钉、企业微信、飞书群机器人一键切换使用和混合使用;

 

支持Dinger

欢迎『Github』 或 『Gitee』点下Star让更多码友知道Dinger的存在

Gitee捐赠: 如果觉得Dinger不错, 条件允许的话捐赠杯奶茶犒劳下维护者, 感谢您的支持和鼓励^_^。

 


How(如何使用Dinger-快速使用)

一、引入依赖

<dependency>
    <groupId>com.github.answerail</groupId>
    <artifactId>dinger-spring-boot-starter</artifactId>
    <version>${dinger.version}</version>
</dependency>

dinger.version版本号取值GithubGitee

 

二、application.yml 配置

使用钉钉群机器人配置

spring:
  dinger:
    project-id: ${spring.application.name}
    dingers:
      # 使用钉钉机器人, 请根据自己机器人配置信息进行修改
      dingtalk:
        tokenId: 87dbeb7bc28894c3ycyl3d12457228ad309966275b5f427cd85f9025ebb520cf
        secret: AEQ74a9039ai01f2ljm017b90ycye9asg6335f97c658ff37ff371ec8120581c7f09

使用企业微信群机器人配置

spring:
  dinger:
    project-id: ${spring.application.name}
    dingers:
      # 使用企业微信机器人, 请根据自己机器人配置信息进行修改
      wetalk:
        token-id: 32865206-7082-46l5-8j39-2m7ycy6d868

使用飞书群机器人配置

spring:
  dinger:
    project-id: ${spring.application.name}
    dingers:
      # 使用飞书机器人, 请根据自己机器人配置信息进行修改
      bytetalk:
        token-id: 20200528-0824-20jm-21hy-5yc556210y15

 

三、代码中使用

@Component
public class AppInit implements InitializingBean {
    @Autowired
    private DingerSender dingerSender;
    @Override
    public void afterPropertiesSet() throws Exception {
        // 发送text类型消息
        dingerSender.send(
                MessageSubType.TEXT,
                DingerRequest.request("Hello World, Hello Dinger")
        );

        // 发送markdown类型消息
        dingerSender.send(
                MessageSubType.MARKDOWN,
                DingerRequest.request("Hello World, Hello Dinger", "启动通知")
        );
    }
}

更多功能请移步 『Github Dinger wiki』 或 『Gitee Dinger wiki

 

Documentation, Getting Started and Developer Guides

 

Upgrade Log

 

Feedback

有任何建议或问题欢迎提Issue~


 

dingtalk-spring-boot-starter's People

Contributors

answerail avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dingtalk-spring-boot-starter's Issues

集成到项目中提示URI is not hierarchical

java.lang.IllegalArgumentException: URI is not hierarchical
at java.io.File.(File.java:418)
at com.jaemon.dingtalk.utils.PackageUtils.forClassNames(PackageUtils.java:97)
at com.jaemon.dingtalk.utils.PackageUtils.classNames(PackageUtils.java:73)
at com.jaemon.dingtalk.listeners.DingerXmlPreparedEvent.onApplicationEvent(DingerXmlPreparedEvent.java:96)
at com.jaemon.dingtalk.listeners.DingerXmlPreparedEvent.onApplicationEvent(DingerXmlPreparedEvent.java:44)

通过debug看到uri的信息是:jar:file:/D:/soft/maven/repository/org/springframework/cloud/spring-cloud-context/2.2.5.RELEASE/spring-cloud-context-2.2.5.RELEASE.jar!/org/springframework/cloud/bootstrap

springboot1.x 启动报错

   <dependency>
        <groupId>com.github.answerail</groupId>
        <artifactId>dingtalk-spring-boot-starter</artifactId>
        <version>3.0.0-RELEASE</version>
    </dependency>

@component
public class InitializingBeanExecute implements InitializingBean {

@Resource
private DingTalkSender dingTalkSender;

@Override
public void afterPropertiesSet() {
    String keyword = "DYZ3AALTRBD2AIDLL0Y3EQ4TYGLJDUM";
    String subTitle = "服务启动通知";
    String content = "服务启动啦。。。";

    // text类型
    dingTalkSender.send(MsgTypeEnum.TEXT, keyword, subTitle, content);

    // markdown类型
    dingTalkSender.send(MsgTypeEnum.MARKDOWN, keyword, subTitle, content);
}

spring.dingtalk.token-id=xxx
spring.dingtalk.monitor.success=true
spring.dingtalk.monitor.falied=true
spring.dingtalk.project-id=${spring.application.name}
spring.dingtalk.async=true

Exception in thread "main" java.lang.NoSuchMethodError: org.springframework.boot.SpringApplication.getAllSources()Ljava/util/Set;
at com.jaemon.dingtalk.listeners.StartEventListener.onApplicationEvent(StartEventListener.java:45)
at com.jaemon.dingtalk.listeners.StartEventListener.onApplicationEvent(StartEventListener.java:34)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:167)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:122)
at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:68)
at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:48)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151)

springboot工程打包后在CentOS上无法使用

启动日志:
WARN [main] com.jaemon.dingtalk.listeners.DingerXmlPreparedEvent[DingerXmlPreparedEvent.java:133] when analysis classpath:/config/dinger/*.xml:spring.dingtalk.dinger-locations dinger xml and annotation catch exception=class path resource [config/dinger/Dinger.xml] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/home/java/server/trade.jar!/BOOT-INF/classes!/config/dinger/Dinger.xml

项目打包放到centos服务器上无法运行,通过日志看到,在启动时无法读取jar包中的xml文件

keyword 没看懂是怎么使用

启动时能正常发送
但是测试要求keyword时不行,返回值
{"code":"DK000","data":"DK7A37FAD09BE5442F9FFB79E2D87501C8","logid":"DK7A37FAD09BE5442F9FFB79E2D87501C8","message":"success"}

企业微信wetalk不支持markdown格式的`@`功能?

https://developer.work.weixin.qq.com/document/path/91770#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E7%BE%A4%E6%9C%BA%E5%99%A8%E4%BA%BA
机器人的text/markdown类型消息支持在content中使用<@userid>扩展语法来@群成员

官方文档Markdown支持@群成员
为何包不支持?wetalk不支持markdown格式的@功能

同一台机子同一个markdown 接口 钉钉发送的内容一模一样(第一次为准)

@DingerMarkdown(
        value = "###  移动花卡选号预警 \n - 时间:${time}\n - 省:${province}\n - 市:${city}\n - 问题描述:${content}\n #### [查看链接](${link}) \n",
        title = "号卡业务预警", phones = {""},
        tokenId = @DingerTokenId(
                value = "",
                secret = "" ))
DingTalkResult selectNoNumberWarn(@Parameter("time") String time,
        @Parameter("province") String province, @Parameter("city") String city,
        @Parameter("content") String content, @Parameter("link") String link);

钉钉消息=============================20======2020年10月12日 09时49分32秒======海南===三亚市=======291秒内选号失败20次==={"code":"DK000","data":"{"errcode":0,"errmsg":"ok"}","logid":"DK257BDE1B86CB4250B91C3DD826267017","message":"success"}
最后钉钉机器人发送的消息如下图:
887B9F0A-B503-4404-A14D-86CF483C0D68
49分收到的还是以前的时间发送过的内容一模一样
然后我重启程序发送的内容就会变 是不是封装漏了参数

dinger class is empty

JRE:
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)

SpringBoot: 2.2.1.RELEASE

dinger打包成二方包后,类加载出错

错误堆栈:
java.lang.IllegalArgumentException: URI is not hierarchical
at java.io.File.(File.java:418)
at com.github.jaemon.dinger.utils.PackageUtils.forClassNames(PackageUtils.java:108)
at com.github.jaemon.dinger.utils.PackageUtils.classNames(PackageUtils.java:78)
at com.github.jaemon.dinger.core.spring.DingerScannerRegistrar.registerBeanDefinitions(DingerScannerRegistrar.java:74)
at org.springframework.context.annotation.ImportBeanDefinitionRegistrar.registerBeanDefinitions(ImportBeanDefinitionRegistrar.java:86)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.lambda$loadBeanDefinitionsFromRegistrars$1(ConfigurationClassBeanDefinitionReader.java:385)
at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684)

1.x版本单元测试就报错

按照1.x 版本

单元测试类

@SpringBootTest
@RunWith(SpringRunner.class)
public class LeafServiceManagerTest {
    @Resource
    private DingTalkSender dingTalkSender;

    @Test
    public void getDoctorId() {
        String keyword = "服务预警";
        String subTitle = "服务启动通知";
        String content = "服务启动啦。。。";

        // text类型
        dingTalkSender.send(MsgTypeEnum.TEXT, keyword, subTitle, content);

        // markdown类型
        dingTalkSender.send(MsgTypeEnum.MARKDOWN, keyword, subTitle, content);
    }
}

报错信息


	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
	at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:189)
	at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:131)
	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.jaemon.dingtalk.entity.DingTalkProperties' available
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:353)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:340)
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1092)
	at com.jaemon.dingtalk.listeners.SuccessEventListener.onApplicationEvent(SuccessEventListener.java:38)
	at com.jaemon.dingtalk.listeners.SuccessEventListener.onApplicationEvent(SuccessEventListener.java:30)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)
	at org.springframework.boot.context.event.EventPublishingRunListener.finished(EventPublishingRunListener.java:101)
	at org.springframework.boot.SpringApplicationRunListeners.callFinishedListener(SpringApplicationRunListeners.java:79)
	at org.springframework.boot.SpringApplicationRunListeners.finished(SpringApplicationRunListeners.java:72)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:305)
	at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:134)
	at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:187)
	at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:102)
	at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:68)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:122)
	at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:74)
	at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
	at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:325)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:296)
	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:121)
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
	... 24 more



兼容性问题

SpringBoot 3.X 好像不支持

Spring Boot Version:3.0.4
Version: 2.1.0

支持代理请求发送消息

在一些企业,生产服务是不能直接访问公网,需要通过proxy 请求转发,能否增加代理发送?

能否支持按需自动配置

非常感谢作者提供这个库,简化了很多工作!

现状 & 需求

目前使用的是 1.21,程序有时候会用到推送功能,有时候又不需要,在不需要使用推送功能的时候,会因为缺少必要的配置项而导致应用启动失败(因为不需要使用该功能,自然也不会添加dingtalk的相关配置)

报错日志

2023-01-03 13:42:21.001 ERROR 1015926 [R ] [U ] --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.github.jaemon.dinger.config.DingerConfiguration': Unsatisfied dependency expressed through field 'dingerProperties'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spring.dinger-com.github.jaemon.dinger.core.entity.DingerProperties': Invocation of init method failed; nested exception is com.github.jaemon.dinger.exception.InvalidPropertiesFormatException: spring.dinger.dingers is empty.
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:659)
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:639)
        at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119)
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731)
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292)
        at com.power4j.fist.monitor.MonitorApplication.main(MonitorApplication.java:19)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spring.dinger-com.github.jaemon.dinger.core.entity.DingerProperties': Invocation of init method failed; nested exception is com.github.jaemon.dinger.exception.InvalidPropertiesFormatException: spring.dinger.dingers is empty.
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
        at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:656)
        ... 28 common frames omitted
Caused by: com.github.jaemon.dinger.exception.InvalidPropertiesFormatException: spring.dinger.dingers is empty.
        at com.github.jaemon.dinger.core.entity.DingerProperties.afterPropertiesSet(DingerProperties.java:260)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)
        ... 38 common frames omitted

期望的效果

这个库能够按需启用,默认是不进行bean初始化,当配置文件存在相关配置时才激活自动配置

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.