为何需要@Autowired注入,以及@Autowired注释的作用
为何需要@Autowired注入,以及@Autowired注释的作用spring可以自动帮你把Bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get。@Autowired注释进行自动注入时,spring容器中匹配的候选Bean数目必须有且仅有一个。当找不到一个匹配的Bean时,spring容器将抛出BeanCreationException异常,并指出必须至少...
·
为何需要@Autowired注入,以及@Autowired注释的作用
spring可以自动帮你把Bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get(其实是通过反射技术实现的)。
@Autowired注释进行自动注入时,spring容器中匹配的候选Bean数目必须有且仅有一个。
当找不到一个匹配的Bean时,spring容器将抛出BeanCreationException异常,并指出必须至少拥有一个匹配的Bean。
如果spring容器中拥有多个候选Bean,spring容器在启动时也会抛出BeanCreationException
这个时候就可以借助@Qualifier注释指定注入Bean的名称,这样@Autowired遇到多个候选Bean的问题也就解决了。
以上内容参考:https://blog.csdn.net/STUDENTstudent123/article/details/86774033
下面通过代码进行解释说明:
/*很多人疑惑,为什么需要注入Customer,因为下面的语句需要用到。
service层通过调用CustomerMapper的对象,进而调用addCustomer方法
因为CustomerMapper类里面有很多方法,我们进行数据库操作室往往只需要操作部分方法,
所以,通过service层进行操作,CustomerMapper里面的具体方法*/
package com.sm.service;
import org.omg.CORBA.PUBLIC_MEMBER;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.sm.mapper.CustomerMapper;
import com.sm.po.Customer;
@Service
@Transactional
public class CustomerServiceImpl implements CustomerService {
// 注解注入CustomerMapper
@Autowired
private CustomerMapper customerMapper;
public void addCustomer(Customer customer) {
/*很多人疑惑,为什么需要注入Customer,因为下面的语句需要用到。
service层通过调用CustomerMapper的对象,进而调用addCustomer方法
因为CustomerMapper类里面有很多方法,我们进行数据库操作室往往只需要操作部分方法,
所以,通过service层进行操作,CustomerMapper里面的具体方法*/
this.customerMapper.addCustomer(customer);
int i = 1/0;
}
}
欢迎吐槽!!!
更多推荐
已为社区贡献2条内容
所有评论(0)