用SpringBoot提供一個jar包給別人呼叫
阿新 • • 發佈:2018-11-25
提供的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);
}
}