转:SpringBoot 多模块项目(module)Servic

2019-05-28  本文已影响0人  crMiao

SpringBoot中Service自动注入很方便,例:
Service.class(接口类)
ServiceImpl.class(实现类)
Controller.class(使用类)
用以上三个类来说一下自动注入:

单项目:

分别ServiceImpl头上@Service,Controller中Service对象@Autowired即可享用;

Multi modules 场景,三个(种)类分别在三个module下:

moduleA : Service.class(com.example.moduleA )
moduleB : ServiceImpl.class ( com.example.moduleB )
moduleC : Controller.class ( com.example.moduleC )

此时B依赖A,C依赖A、B,添加好依赖关系。

如何自动注入?

1、接口、实现、使用类,姿势不变,按单项目方式写即可;
2、在moduleC的Application中做手脚!

如果你已经试过scanBasePackages,无论是在@SpringBootApplication方式还是@ComponentScan;
抑或试过@SpringBootApplication、@ComponentScan同时用,当你这么做时,一定是绝望的。

解决办法

  @SpringBootApplictaion(scanBasePackages="com.example")

核心就是:
Service 及 ServiceImpl均需在com.example包下

因为Service、ServiceImpl同在com.example下(C可以不在),所以我看作是同一次scan过程;
比如若是这样写scanBasePackages={" com.example.moduleA , com.example.moduleB "},则会失败;

当然(@ComponentScan="com.example")也是可以的,因为前者@SpringBootApplication已经包含@ComponentScan;

原文:https://blog.csdn.net/machuang30508/article/details/78616501

上一篇 下一篇

猜你喜欢

热点阅读