spring学习(spring-DI简单入门案例)

目录

一、spring-DI入门案例的实现思路分析。

(1)bean管理与创建对象的方式。

(2)如何注入?

二、导入依赖坐标。接口与实现类。编写配置文件。

(1)spring-context。

(2)接口与实现类。

<1>dao层。

<2>service层。

(3)新建spring配置文件(XXX.xml)。

(4)配置bean。

<1>属性class。

<2>属性id。

<3>标签配置当前bean的属性。

三、测试类。

(1)编写测试类(App)。

(2)运行结果。


一、spring-DI入门案例的实现思路分析。

(1)bean管理与创建对象的方式。
  • 首先,一定是基于IoC管理bean。
  • 不能在XXXService中使用new形式创建的XXXDao对象。

(2)如何注入?
  • 在XXXService中所需的XXXDao对象如何进入(注入)到XXXService中?(提供方法
  • XXXService与XXXDao之间的关系如何进行描述?(采用配置

二、导入依赖坐标。接口与实现类。编写配置文件。

(1)spring-context。


(2)接口与实现类。
<1>dao层。
  • BookDao。

package com.fs.dao;
public interface BookDao {
    /**
     * dao层的save方法
     */
    void save();
}

  • BookDaoImpl。

package com.fs.dao.impl;

import com.fs.dao.BookDao;

public class BookDaoImpl implements BookDao {
    @Override
    public void save() {
        System.out.println("book dao save...");
    }
}

<2>service层。

  • BookService。

package com.fs.service;

public interface BookService {
    /**
     * service层save方法
     */
    void save();
}

  • BookServiceImpl。

package com.fs.service.impl;

import com.fs.dao.BookDao;
import com.fs.dao.impl.BookDaoImpl;
import com.fs.service.BookService;

public class BookServiceImpl implements BookService {

    /*private BookDao bookDao = new BookDaoImpl();*/
    private BookDao bookDao;

    //提供成员属性的setter方法
    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }

    @Override
    public void save() {
        System.out.println("book service save...");
        bookDao.save();
    }
}

(3)新建spring配置文件(XXX.xml)。


(4)配置bean。
  • 通过<bean>标签配置bean。


<1>属性class。
  • 通过class属性标明管理的bean对象所属类(给bean定义类型)。注意:不要配接口,要配实现类!

<2>属性id。
  • 通过id属性标明当前配置的bean。(相当于"起名字",方便拿取)

<3>标签<property>配置当前bean的属性。
  • 这里实现的方式——依赖注入(DI)中的setter注入。


  • name属性值一定要与使用依赖注入的类(BookServiceImpl)的成员变量名(bookDao)相同。
  • name属性表示配置哪一个具体的属性。


  • ref属性表示参照哪一个具体的bean。而这个ref属性值对应某个bean的"id"。

三、测试类。

(1)编写测试类(App)。
  • 通过ApplicationContext加载spring配置文件。
package com.fs.test;

import com.fs.service.BookService;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {
    public static void main(String[] args) {
        //获取IoC容器
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("springContext.xml");
        //通过id获取指定bean
        BookService bookService = (BookService) context.getBean("bookService");
        bookService.save();
    }
}

(2)运行结果。
  • service层的save方法与dao层的save方法都已被调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

岁岁岁平安

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值