请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

注入与调用static

一直以来写mvc代码都是理所当然通过注入,刚才突然想到一个问题,如果service层不交给spring管理而是把他的方法全写为static,在controller也不注入service而是直接调service的static方法,这样做哪里会存在问题吗?在百度上搜了一下,看的不是很明白,希望老师解答一下谢谢

正在回答 回答被采纳积分+3

1回答

翔仔 2020-03-13 00:39:06

兵长大人好,就是说不希望让Spring托管Service层的类会有什么害处对不?如果同学调用的全部是static的方法的话,那么只能算是util,工具类里面的方法一般都是静态的。Service层如果设置成静态的,后续更换Service层的时候,就会有问题,需要修改Controller里面的代码。所以为了使得层与层之间的解耦,所以才会面向接口编程,而面向接口编程势必需要支持动态调整底层服务。。

0 回复 有任何疑惑可以回复我~
  • 提问者 海与千巷 #1
    更换service层指的是controller不调静态的serviceA,改调静态的serviceB吗?这样确实需要改controller的方法,但是如果改变业务直接在serviceA上进行呢?
    回复 有任何疑惑可以回复我~ 2020-03-13 00:55:54
  • 翔仔 回复 提问者 海与千巷 #2
    那就没必要了,但是如果serviceA上面要使用dao服务去存数据库,那么就要有dao成员变量,dao成员变量需要Autowired注入,那么也要求service是bean,也就是需要托管到Spring容器才可以。。
    回复 有任何疑惑可以回复我~ 2020-03-13 01:07:53
  • 提问者 海与千巷 回复 翔仔 #3
    谢谢老师,除了业务角度呢?性能等角度看有什么区别吗?
    回复 有任何疑惑可以回复我~ 2020-03-13 09:49:49
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信