当前位置: 首页 > article >正文

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方法都已被调用。


http://www.kler.cn/a/537869.html

相关文章:

  • 2025.2.9机器学习笔记:PINN文献阅读
  • 为多个GitHub账户配置SSH密钥
  • 基于钉钉API的连接器实现:企业数据集成与自动化管理
  • 让文物“活”起来,以3D数字化技术传承文物历史文化!
  • 深入理解小波变换:信号处理的强大工具
  • 检索式知识库问答相关研究调研
  • to_csv保存指定列的方法
  • apachePoi中XSSFClientAnchor图片坐标简述;填充多张图片
  • 利用PHP爬虫开发获取淘宝分类详情:解锁电商数据新视角
  • Spring中都应用了哪些设计模式?
  • GitHub Pages + Jekyll 博客搭建指南(静态网站)
  • 8.高精度算法
  • 每日学习 设计模式 五种不同的单例模式
  • F#语言的学习路线
  • 零基础都可以本地部署Deepseek R1
  • 【AI知识点】如何判断数据集是否噪声过大?
  • UnityShader学习笔记——深度与法线纹理
  • 采用idea中的HTTP Client插件测试
  • postman使用简介
  • VMware虚拟机安装、创建Ubuntu虚拟机及汉化设置全流程详细教程
  • Android车机DIY开发之软件篇(十) NXP MfgTool和UUU的使用
  • 响应式编程库Reactor(二)Spring Webflux
  • HarmonyOS 5.0应用开发——全局自定义弹出框openCustomDialog
  • 蓝桥与力扣刷题(19 删除链表的倒数第N个结点)
  • 刚发布的nodejs 23提供了哪些新能力
  • 高效Android Studio编程:快捷键汇总