spring-依赖注入

Bean的依赖注入概念

  • 依赖注入(DependencyInjection):它是Spring框架核心IOC的具体实现
    在编写程序时,通过控制反转,把对象的创建交给了Spring,但是代码中不可能出现没有依赖的情况。
    Ioc解耦只是降低他们的依赖关系,但不会消除。例如:业务层仍然会调用持久层的方法。
    那这种业务层和持久层的依赖关系,在使用Spring之后,就让Spring来维护了。
    简单的说,就是坐等把框架把持久层2对象传入业务层,而不用我们自己去获取。

Bean的依赖注入方式:

怎么将UserDao怎样注入到UserService内部呢?

  • 构造方法
  • set方法

思路:

1.实现一个UsrDao方法
2.在service中创建一个UserDao方法
3.通过set方法来进行注入
4.编写xml文档

实现一个UsrDao方法

public class UserDaoImpl implements UserDao {
    public void save() {
        System.out.println("save running.....");
    }
}

实现service中调用dao方法,并通过set方法来进行注入

public class UserImplService implements UserService {
    private UserDao userDao;

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

4.编写xml文档

 <bean id="userDao" class="com.my.UserDaoImpl"/>
    <bean id="UserService" class="com.my.service.UserImplService">
        <!--name是指属性的service中的set方法名字的除去set的开头字母小写-->
        <!--业务层调用数据层,调用数据层对象的过程交给spring容器来做,然后就可以用数据层的方法了-->
        <property name="userDao" ref="userDao"></property>
  </bean>

5.测试

public class UserDemo {
    @Test
    public  void mytest(){
        ApplicationContext application = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserService userDao1 = (UserService) application.getBean("userService");
        userDao1.save();
    }
}

重点bean的配置


** name是指属性的service中的set方法名字的除去set的开头字母变为小写**
ref为注入的对象

总结

先创建一个(UserDao)接口,然后再接口(UserDao)中编写方法,创建一个类(UserDaoImpl)来实现方法
然后编写一个(UserService)接口,然后再接口中(UserService)中实现方法,创建一个类(UserImplService)来实现方法
在(UserImplService)方法中,利用set方法进行注入。
在xml配文件中,进行配置注入name为:set方法,以及注入的对象:userDao
测试中的流程:先读取配置文件,将要注入的值放到容器当中。

posted @ 2021-11-26 11:39  不会笑的孩子  阅读(55)  评论(0编辑  收藏  举报