1. 程式人生 > >用SpringBoot提供一個jar包給別人呼叫

用SpringBoot提供一個jar包給別人呼叫

提供的jar包只包含自己寫的邏輯,在提供的jar包中所依賴的其他j的ar包並不打包在自己寫的jar包內,而是由jar包使用者將提供jar包的依賴包一併匯入。

測試demo包括jar包提供專案ProvideMyJar 和jar包使用專案ProvideMyJarTest

其中在ProvideMyJar程式碼編寫的時候依賴包全部匯入,但是最後不打包,由ProvideMyJarTest最後匯入

ProvideMyJar 程式碼
在這裡插入圖片描述

這裡註冊成bean
@Component
public class Hello {


    public void say(){
        System.out.println("hello world !!!");
    }

}

ProvideMyJarTest程式碼

在這裡插入圖片描述


@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = App.class)
public class Test2 {

     @Autowired
     Hello hello;

     @Test
     public  void main(){

          hello.say();

     }

}

啟動類:

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})
@ComponentScan("cc")  //掃描提供的jar包註冊的bean
public class App {
    public static void main(String[] args) {

        SpringApplication application = new SpringApplication(App.class);
        application.setBannerMode(Banner.Mode.OFF);
        application.run(args);
    }

}

輸出:

在這裡插入圖片描述

注意:ProvideMyJar的啟動類要刪除,不然程式無法知道啟動類是哪個,還有ProvideMyJar裡面註冊的bean在ProvideMyJarTest中要被掃描到

2
在這裡插入圖片描述

APP程式碼
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})

//下面三種都可以 即jar包註解註冊的bean所在包要被掃描到
@ComponentScan(“cc.ok.bb”)
//@ComponentScan(“cc.ok”)
//@ComponentScan(“cc”)

public class App {
public static void main(String[] args) {

    SpringApplication application = new SpringApplication(App.class);
    application.setBannerMode(Banner.Mode.OFF);
    application.run(args);
}

}