Spring框架学习二 IOC依赖注入

了解IOC和DI:

1、IOC(反转控制):

反转资源获取的方向。传统的资源查找是组件向容器请求查找资源。

 

               IOC则是容器主动将资源推送给它管理的组件,组件所要做的是选择一种合适的方式接受资源。

                在完成添加后,对Spring 的配置文件进行一个最简单的Bean的配置.

    1.在项目中添加Source Folder文件(个人习惯)

    2.新建一个配置文件.以xml结尾,这里命名为application.xml

    3.在配置文件里写入头部的配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>

        4.在声明完配置之后,进行简单的编写

      (1).首先先声明一个对象,这里命名为:User,并有name,一个String,的属性,并进行set方法

public BookDao bookDao;
    public String name;
    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public void save() {
        System.out.println("BookServiceImpl------Impl save"+"姓名:"+name);
        bookDao.add();
    }

        (2).Spring的基本配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--告诉spring框架,创建管理哪些对象
        id:给创建出来的对象起一个名字-----标示
        Class:要创建对象对应类的全类名-----类的完全限定名
    -->
    <bean id="bookDao" class="com.gao.dao.Impl.BookDaoimpl"></bean>
    

</beans>

id:在spring配置里,id和name属性都能定义bean元素的名称

          可以使用name属性为bean元素起多个名,之间可以使用空格或者逗号隔开(不推荐)。

          在开发中,尽量使用id定义bean元素名称

         class:则是该id所对应的类,class里所写的一定是要类的完全限定名

      (3) 编写main方法,获取User对象

  

        使用ApplicationContext获取IOC容器,参数所需写的是配置文件的名称

      使用ApplicationContext对象的getBean方法取得Bean对象,参数写的是第三步填写的唯一标识id

       打印user,即可获取user对象的地址

@Test
    public void test01() {
        System.out.println("BookService...add");
        //对象的创建由spring框架创建,此处只需要直接问IOC容器要
        //1,通过ClassPathXmlApplicationContext加载spring.xml获得获得IOC容器
        ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("Spring.xml");
        //2,通过IOC容器中根据名字获得对象
        bookService= (BookService) context.getBean("bookService");
        bookService.save();

        System.out.println("==================");

//        bookService=new BookServiceImpl();
//        bookService.save();
    }

2、DI(依赖注入):

IOC的另一种表述方式,组件以一些预先定义好的方式接受来自容器的资源注入。

   Spring中支持三种依赖注入方式:1、属性注入   2、构造器注入  3、工厂方法注入

 2.1 属性注入:属性注入即通过Setter方法注入Bean的属性值或依赖的对象。 使用<property>元素

<!--依赖注入-->
    <bean id="bookService" class="com.gao.service.impl.BookServiceImpl">
    <!--spring的依赖注入:property表示BookServiceImpl的属性,常规属性使用value赋值,
    类型属性使用ref引用-->
        <property name="bookDao" ref="bookDao"/>
        <property name="name" value="张三"/>
    </bean>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值