04 Spring依赖注入

简介: bean的概念:Spring框架在运行时管理的对象

思维导图


21.jpg


提要


配置文件中的标签及属性说明

bean的概念:Spring框架在运行时管理的对象

标签 说明

子标签

属性

bean

配置管理bean的标签

子标签


property 

setter注入时使用property标签注入内容

array、list、set、map

name,

constructor-arg

构造器注入时使用constructor-arg标签注入内容 



array

注入集合时候使用



value 

注入集合时候使用用于写值




1 spring使用setter注入


1.1 注入普通类型数据


(1)在目标类中添加变量设置set方法

(2)在配置文件中,添加property标签

<bean id="bookService" class="com.zinksl.service.impl.BookService">
        <property name="bookDao" value="普通类型数据"/>
</bean>


1.2 注入引用类型数据


(1)在目标类中添加变量设置set方法

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

(2)在配置文件中,添加property标签

<bean id="bookService" class="com.zinksl.service.impl.BookService">
        <property name="bookDao" ref="bookDao"/>
</bean>


1.3 获取bean调用方法或获取值


public static void main(String[] args) {

//        第一步获取Spring容器
        ClassPathXmlApplicationContext act = new ClassPathXmlApplicationContext("applicationContext.xml");
//        获取bean
        BookService bookService = (BookService) act.getBean("bookService");
        BookDao bookDao = (BookDao) act.getBean("bookDao");
//        调用方法
        bookService.say();
//        act.close();
        act.registerShutdownHook();
    }
}


2 spring使用构造器注入


2.1 在目标类中重写构造方法,将需要引用的对象传入构造方法


//    应用类型数据
    private StudentDao studentDao;
//    普通类型数据
    private String name;
    private int age;
// 重写构造器
    public StudentService(StudentDao stu,int ageParameter,String nameParameter) {
        this.studentDao = stu;
        this.age = ageParameter;
        this.name = nameParameter;
    }



2.2 注入引用类型数据


在配置文件中的bean标签下新增constructor-arg标签

<!-- studentDao对象 -->
<bean id="studentDao" class="com.zinksl.dao.impl.StudentDao"/>
<bean id="studentService" class="com.zinksl.service.impl.StudentService">
<!--   此处name指构造器参数名 -->
  <constructor-arg name="stu" ref="studentDao"/>
</bean>


2.3 在主方法中获取bean调用方法

 

//第一步获取容器
        ApplicationContext apc = new ClassPathXmlApplicationContext("applicationContext.xml");
  //获取对象
         StudentService studentService = (StudentService) apc.getBean("studentService");
         studentService.say();
目录
相关文章
|
2月前
|
XML Java 测试技术
Spring Boot中的依赖注入和控制反转
Spring Boot中的依赖注入和控制反转
|
4月前
|
XML Java 程序员
Spring6框架中依赖注入的多种方式(推荐构造器注入)
依赖注入(DI)是一种过程,对象通过构造函数参数、工厂方法的参数或在对象实例构建后设置的属性来定义它们的依赖关系(即与其一起工作的其他对象)。
64 3
|
4月前
|
Java 测试技术 开发者
Spring IoC容器通过依赖注入机制实现控制反转
【4月更文挑战第30天】Spring IoC容器通过依赖注入机制实现控制反转
50 0
|
20天前
|
Java Spring 容器
彻底改变你的编程人生!揭秘 Spring 框架依赖注入的神奇魔力,让你的代码瞬间焕然一新!
【8月更文挑战第31天】本文介绍 Spring 框架中的依赖注入(DI),一种降低代码耦合度的设计模式。通过 Spring 的 DI 容器,开发者可专注业务逻辑而非依赖管理。文中详细解释了 DI 的基本概念及其实现方式,如构造器注入、字段注入与 setter 方法注入,并提供示例说明如何在实际项目中应用这些技术。通过 Spring 的 @Configuration 和 @Bean 注解,可轻松定义与管理应用中的组件及其依赖关系,实现更简洁、易维护的代码结构。
25 0
|
1月前
|
设计模式 自然语言处理 Java
简单了解下Spring中的各种Aware接口实现依赖注入
在Spring框架中,Aware接口是一组用于提供特定资源或环境信息的回调接口。这些接口被设计用来允许Bean获取对Spring容器或其他相关资源的引用,并在需要时进行适当的处理。
21 2
|
1月前
|
自然语言处理 Java 开发者
简单了解下Spring中的各种Aware接口实现依赖注入
【8月更文挑战第21天】在Spring框架中,Aware接口系列是一种特殊的机制,它允许Bean在初始化过程中获取到Spring容器或容器中的特定资源,从而实现了更加灵活和强大的依赖注入方式。本文将围绕Spring中的各种Aware接口,详细探讨它们如何帮助开发者在工作和学习中更好地实现依赖注入。
39 0
|
2月前
|
缓存 Java Spring
Spring循环依赖问题之Spring不支持构造器内的强依赖注入如何解决
Spring循环依赖问题之Spring不支持构造器内的强依赖注入如何解决
|
3月前
|
设计模式 Java 测试技术
Spring Boot中的依赖注入详解
Spring Boot中的依赖注入详解
|
3月前
|
缓存 Java 测试技术
Spring 框架,不只是依赖注入和面向切面那么简单!
【6月更文挑战第25天】Spring框架超越DI和AOP,涵盖事务管理、数据访问抽象如`JdbcTemplate`、消息驱动支持如`@JmsListener`、缓存管理和测试工具。示例代码展示了其简化复杂性的能力,如自动事务处理、数据库操作及消息队列监听。Spring是构建高效企业级应用的全面解决方案。
30 4
|
3月前
|
Java Spring 容器
spring如何进行依赖注入,通过set方法把Dao注入到serves
spring如何进行依赖注入,通过set方法把Dao注入到serves