两者的用法
其实这两个注解的作用都一样,都是在做bean的注入,在使用过程中,两个注解有时候可以替换使用.
两者的共同点
- @Resource注解和@Autowired注解都可以用作bean的注入.
- 在接口只有一个实现类的时候,两个注解可以互相替换,效果相同.
一般来说,开发一个项目会实现很多个服务接口,以前的做法是可以将全部接口糅合一起对外提供服务,但在现在,越来越提倡微服务理念,这种做法明显与微服务的理念背道而驰。更合理的做法,就是对项目进行服务拆分,使项目被拆分成多个小的服务,而服务采用面向接口的编程,这将极大的有利于项目的扩展和团队分工。
使用IDEA,开发SpringBoot时,可以在一个项目下创建多个Module来进行服务拆分。每个Module可以有自己的配置,但难免会有一些配置是相同,比如数据库的配置,每个module都配置的话很麻烦而且不易于修改。所以,这篇文章里,我们要实现两个目标:
新建一个springboot的demo工程,在该工程下分别创建三个moodue: config、module_a,module_b,其中,config是共用的模块,我们把共用的配置文件部署到config中,其他模块通过依赖config来使用共用的配置。
实际业务开发过程中,业务逻辑可能非常复杂,核心业务 + N个子业务。如果都放到一块儿去做,代码可能会很长,耦合度不断攀升,维护起来也麻烦,甚至头疼。还有一些业务场景不需要在一次请求中同步完成,比如邮件发送、短信发送等。
MQ 确实可以解决这个问题,但 MQ 重啊,非必要不提升架构复杂度。
针对这些问题,我们了解一下 Spring Event。