之前总是学着用,但不明白其具体意义,抽空专门学习了下。
我们用IDEA简单构建一个项目demo,目录结构如下
目录结构
一般在controller里,我们需要调用service,这时候就需要用到注解 @Autowired
<a href="https://www.miaoroom.com/tag/autowired" data-toggle="tooltip" title="查看更多关于 @Autowired 的文章" target="_blank">@Autowired</a> private IUserService userService;
@Autowired这个annotation,它是为了告诉spring,这个对象没有实例化,需要注入一个IUserService的实例,可是问题是,IUserSerivce是一个接口,如果不指定就不知道你想用哪个实现类,Spring会首先看自己的容器里有没有一个叫做userService的对象,如果找不到就在 配置文件 里配置的路径下面寻找IUserService的实现类,找到了就把它的对象拿过来。
@Autowired顾名思义,就是自动装配,其作用还可以是为了消除代码Java代码里面的getter/setter与bean属性中的property。当然,getter看个人需求,如果私有属性需要对外提供的话,应当予以保留。