@Autowired 作用初步了解笔记

test测试类:

@Test
public void test1(){
    UserService userService = (UserService) applicationContext.getBean("userServiceImpl");//拿到接口
    userService.addUser();//拿到userService的实现接口
}

UserService.java:

public interface UserService{
    void addUser();
}

走UserService接口实现类的方法

@Service //实例化当前对象,存入Spring容器,以UserServiceImp为名称
public class UserServiceImp implements UserService{
    private UserDao userDao;
    
    @Override
    public void addUser(){
        userDao.addUser();
    }
    public UserDao getUserDao(){
        return userDao;
    }
    public void setUserDao(UserDao userDao){
        this.userDao = userDao;
    }
}

掉public void addUser()方法。userDao.addUser();在往下走

public interface UserDao{
    void addUser();
}

走UserDao接口实现类:

public class UserDaoImp implements UserDao{
    @Override
    public void addUser(){
        System.out.println("Dao层添加数据库");
    }
}
首先UserService能打理掉这个addUser()方法的前提就是:UserServiceImp对象通过@Service注释new出来了。但是其中私有属性UserDao并没有new出来。若在application.xml里并没有bean标签(例如<context:component-scan base-packge="com.kgc.service.imp" />),没办法说什么设值注入。这种场景下怎么用注解把UserDao这个属性注入进来?

首先UserDao这个对象得new出来再说userDao的实现类是谁?
@Repository	//仓库的意思	
//什么意思?就是把UserDaoImp  new出来了
public class UserDaoImp implements UserDao{
    @Override
    public void addUser(){
        System.out.println("Dao层添加数据库");
    }
}

因为@Service会把UserDaoImp对象存入Spring容器,存入Spring容器之后嘞?

就意味着UserDaoImp这个实现类在容器里面有了

在容器里有了后只要在UserServiceImp.java中需要一个@Autowired注解就可以了

@Service //实例化当前对象,存入Spring容器,以UserServiceImp为名称
public class UserServiceImp implements UserService{
    @Autowired
    private UserDao userDao;
    
    ....
}

*这里只是有test测试类调用举例,在实际开发中也同样适用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

结城明日奈是我老婆

支持一下一直热爱程序的菜鸟吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值