controller后于serviceimpl初始化是为啥

img

serviceimpl属于model层,一般用户操作数据库等底层操作,所以要先初始化数据库连接,验证等操作。

依赖于Spring自动注入原理
基于Spring管理的bean,在初始化一个类的时候,都会优先加载该类所依赖的类,比如你的controller里面,引用了service,就必须先把service加载好,你controller才能使用这个service。
举个例子,你建造房子需要砖头,你不能在没有砖头的情况下就把房子先建好了,你必须先把砖头准备好,才能开始搭建房子

你要是通常正常那种mvc和bean分两个xml的玩法,controller它在容器启动的过程种(没有启动就自动加载),压根就没注入到容器,
mvc的子容器,随着dispatchServlet被容器回调才初始化这块的bean,
这个就是第一次访问controller(或者设置容器启动就初始化servlet)的输出,

img


那些谁什么依赖谁,只能说他是个原因,但不是这里的原因

你要初始化这个对象。这个controller才能被调用啊。
不然有数据访问你的接口,然后你的接口null

因为controller中依赖注入了service服务。