SpringBoot之IOC

IOC(控制反转):就是程序员不用管new对象的事了,将new对象的任务交给框架来实现。
实现控制反转的方法有两种
1.配置文件管理,bean
2.注解

一、配置文件管理
1.选择resource下面的application.properties,new一个xml文件
在这里插入图片描述
2.在new了的xml文件里,写对应的bean
其中id作为名字,而class对应相应实现类的全限定类名
在这里插入图片描述
3.在测试类中利用Spring提供的方法读取配置文件,然后再根据xml bean中的id找到对应的类
在这里插入图片描述
4.这样就将创建对象的过程交给了框架
在这里插入图片描述

二、如何将一个项目中的new方法全部交给框架?
以上描述中,UserServiceIml中依然有new UserDao的方法,为了解决这个问题
1.利用构造函数
在配置文件中,利用constructor-arg,将下一个bean在UserService中实例化之后,将UserDao对象作为参数传递到UserServiceIml中的有参构造函数中。
在这里插入图片描述
在这里插入图片描述
2.利用Setter方法,通过在xml中在UserService bean中实例化UserDao,然后传值到UserServiceImpl方法中
在这里插入图片描述
在这里插入图片描述
二、注解方式实现IOC
用注解@Repository标记Dao层实现类,其实就是将此时的实现类的类名首字母小写作为id,然后将此个类的全限定类名作为value放到xml配置文件中。
用@Service标记Service层实现类;
当声明一个类,例如 private UserDao userDao;时,不用new了,前面加上@Autowired注解,实现自动new UserDao。
new UserDao的时候是按类名UserDao进行查找的,当类名一样时
解决方法:

  1. @Resource(name = “userDaoImpl”),name是所new类的类名首字母小写

  2. @Autowired
    @Qualifier(“userDaoImpl2”)
    Qualifier括号当中写所new 类的类名首字母小写

    Dao层实现类
    在这里插入图片描述
    Service层实现类
    在这里插入图片描述
    测试类调用
    在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值