版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/didi7696/article/details/83276770
提供的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);
}
}