采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好,看到您在mongo的Service层先创建了interface然后创建了impl实现了各个interface,请问这是mongo提供的规范吗? 日常在写跟Mysql的交互的时候,在Service层好像也没有先创建接口,再创建实现,都是直接创建各个Service的,而且Mongo在Service层不创建interface直接创建各个Service也可以运行,也没看到任何的提醒建议之类的。 求指点~~
感谢老师!那还有个小问题,这种情况下,controller里的@Autowired是不是改成下面这样更能符合此初衷呢,考虑到复杂项目一个IArticlesService 可能有很多不同的实现 @Autowired private IArticlesService articlesService; 改成下面的 private final IArticlesService articlesService; public ArticlesController(ArticlesServiceImpl articlesService) { this.articlesService = articlesService; }
如果一个接口对应一个实现类,使用@Autowired可以直接注入对应的bean对象,如果是多个实现类的话,需要指定注入的实现类,这需要使用@Qualifier 注解来制定注入的对象,只不过在默认情况下一个实现类的话,@Autowired会注入对应类的小写字母开头的bean,比如我们@Autowired private IArticlesService articlesService; 等价于 @Autowired @Qualifier(“iArticlesService ”) private IArticlesService articlesService; 那如果是多个实现类,就可以指定具体的注入bean对象,这个前提是要在 对应的service实现类中通过@Service注解指定对应的名称。这一块可以具体再深入了解一下spring容器自动装配的工作原理。 至于你说的改成构造方法实现的方式,也是可以实例化对应的service对象,但不便于解决对象之间的依赖关系,以及影响代码的开发效率
登录后可查看更多问答,登录/注册
MySQL、Redis、MongoDB 数据库一课通
41 3
256 3
102 3
128 3
129 2