Spring-IOC注解

IOC注解

一.自动扫描装配Bean

常用注释:@Component、@Service、@Controller、@Repository

1)@Component   将java类标记成一个Spring Bean组件。
2)@Service     将业务层实现类标记成一个Spring Bean组件。
3)@Controller  将表现层类标记成一个Spring Bean组件。
4)@Repository  将一个持久层实现类标记成一个Spring Bean组件。

 注意 : 均拥有value属性,可以取名字;如果不取名字,默认为类名首字母小写。
//下面两种方式等价
@Repository
public class UserDaoJDBCImpl implements UserDao{
    @Override
    public void showUtils() {
        System.out.println("JDBC操作数据库");
    }
}

@Repository("userDaoJDBCImpl")
public class UserDaoJDBCImpl implements UserDao{
    @Override
    public void showUtils() {
        System.out.println("JDBC操作数据库");
    }
}

二. 自动装配与精确装配

常用注释:@Autowired、@Qualifier、@Resource

1)@Autowired
    默认是按照类型装配注入的,如果想按照名称来装配注入,则需要结合@Qualifier一起使用;
2)@Qualifier
    常与@Autowired结合使用实现通过名称来装配注入;在@Resource装配注入时,若不想在注解中写name属性,也可以用@Qualifier定义
3)@Resource
    默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入
//@Autowired代码演示
/**
 * @Autowired放置位置
 * 1、配置在属性上
 * 2、配置在set方法上
 * 3、配置在构造方法上
 */
@Service
public class UserServiceImpl implements UserService{
    /**
     * byType注入
     * @Autowired
     */
    //或者
    /**
     * byName注入
     * @Autowired
     * @Qualifier("userDaoJDBCImpl")
     */
    private UserDao userDao;

    public UserDao getUserDao() {
        return userDao;
    }

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    @Override
    public void useUtils() {
        userDao.showUtils();
    }
}
//@Resource代码演示
/**
 * @Resource放置位置
 * 1、配置在属性上
 * 2、配置在set方法上
 */
@Service
public class UserServiceImpl implements UserService{
    /**
     * byType注入[不含name属性时,会根据类型自动装配注入]
     * @Resource
     */
    //或者
    /**
     * byName注入1
     * @Resource
     * @Qualifier("userDaoJDBCImpl")
     */
    //或者
    /**
     * byName注入2
     * @Resource(name="userDaoJDBCImpl")
     */
    private UserDao userDao;

    public UserDao getUserDao() {
        return userDao;
    }

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    @Override
    public void useUtils() {
        userDao.showUtils();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值