当前位置:   article > 正文

自定义springboot的starter_there is already [root bean: class [null]; scope=p

there is already [root bean: class [null]; scope=prototype; abstract=false;

自定义starter可以减少配置类的编写,比如我自定义了某个配置类,需要一些属性的配置,然后在多个模块中引用的话,那么都需要加入这个配置类的信息,常见的是通过@Configration注解来使用,或者是使用xml的方式,但是

其实对于各个模块来说,这个信息是重复的,可以公用,那么可以自定义一个starter来引入。

 

1、编写你需要引入的功能。比如我这里就是想引入MyWife这个实列。你可以通过@Configuartion这个注解直接引入,这里演示通过自定义starter的方式引入。

这个最简单,就是创建一个gradle项目,然后编写你需要引入的类的功能就可以。

  1. package cn.caraliu;
  2. public class MyWife {
  3. private String msg;
  4. public String getMsg() {
  5. return msg;
  6. }
  7. public void setMsg(String msg) {
  8. this.msg = msg;
  9. }
  10. public void say(){
  11. System.out.println("hello...");
  12. System.out.println("msg..."+msg);
  13. }
  14. }

为了建单起见,我直接就定义一个类:然后设置一个msg的属性,可以进行设置。

gradle的配置文件要注意: apply plugin: 'maven'  这个配置要加入,用于打包,不然idea中没有install这个选项。

  1. plugins {
  2. id 'java'
  3. }
  4. group 'org.example'
  5. version '1.0-SNAPSHOT'
  6. apply plugin: 'maven'
  7. repositories {
  8. mavenCentral()
  9. }
  10. dependencies {
  11. testCompile group: 'junit', name: 'junit', version: '4.12'
  12. }

然后点击:install, 可以打印除相应的包:  可以通过: implementation group: 'org.example', name: 'my-demo', version: '1.0-SNAPSHOT' 引入这个打好的包。注意这里的implementation是指当前项目用,打包的时候不引入这个模块。

 

2、编写starter

创建一个gradle项目:gradle的配置文件:

  1. plugins {
  2. id 'java'
  3. }
  4. group 'org.example'
  5. version '1.0-SNAPSHOT'
  6. apply plugin: 'maven'
  7. repositories {
  8. mavenLocal()
  9. mavenCentral()
  10. }
  11. dependencies {
  12. testCompile group: 'junit', name: 'junit'
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/947757
推荐阅读
相关标签
  

闽ICP备14008679号