Day 86

本文详细探讨了Spring框架中的setter注入技术,包括针对简单类型和引用类型的区分,以及构造器注入的对比。通过实例演示了如何在Spring配置文件中为Bean设置属性并利用setter方法进行数据传递。
摘要由CSDN通过智能技术生成

_Spring技术setter注入

  1. 思考:像一个类中传递数据的方式有几种?
    • 普通方法(set方法)
    • 构造方法
  2. 思考:依赖注入描述了在容器中建立bean与bean之间的联系关系,如果bean运行需要的是数字或是字符串呢?
    • 引用类型
    • 简单类型(基本数据类型与String)
  3. 依赖注入方式
    • setter注入
      • 简单类型
      • 引用类型
    • 构造器注入
      • 简单类型
      • 引用类型

_Spring技术依赖注入—setter多条件注入(引用类型)

  1. 在service包中配置BookPaperService接口及其实现类:在这里插入图片描述

  2. 在applicationContext.xml文件中配置bookPaperService的bean,并且注明bookDao和paperDao的property关系属性:在这里插入图片描述

  3. 在test文件中编写java程序执行需求:

    • package AppTest;
      
      import com.Alvis.service.impl.BookPaperServiceImpl;
      import org.springframework.context.support.ClassPathXmlApplicationContext;
      
      public class App_03 {
          public static void main(String[] args) {
              // 加载配置文件
              ClassPathXmlApplicationContext cpx = new ClassPathXmlApplicationContext("applicationContext.xml");
              cpx.registerShutdownHook();  // 完毕后结束bean的生命周期
      
              BookPaperServiceImpl bookPaperService = (BookPaperServiceImpl) cpx.getBean("bookPaperService");
              bookPaperService.run();
              
          }
      }
      =======================================
      实现类已运行
      init 已执行
      bean 生命周期开启
      this is BookService...
      this is BookDao ...
      this is PaperDao...
      bean 的生命周期已销毁
      destory 已执行
      
      进程已结束,退出代码0
      
    • 在这里插入图片描述

_Spring技术依赖注入–setter注入(简单类型)

  1. 在实现类中写明一下几个要素:

    • 配置好属性变量后设置其对应的setter方法在这里插入图片描述

    • 配置bean的生命周期

    • 具体的代码为:

      • package com.Alvis.service.impl;
        
        import com.Alvis.service.SimpleService;
        
        public class SimpleServiceImpl implements SimpleService {
            private String sign;
            private String name;
        
            // 给两个属性类型配置set方法
        
        
            public void setSign(String sign) {
                this.sign = sign;
            }
        
            public void setName(String name) {
                this.name = name;
            }
        
        
            // 配置bean开始生命周期的方法
            public void init() {
                System.out.println("bean 生命周期开始");
            }
        
            // 配置销毁bean生命周期的方法
            public void destory() {
                System.out.println("bean 生命周期已销毁");
            }
        
        
            @Override
            public void run() {
                System.out.println("this is SimpleService...");
                this.sign = sign;
                this.name = name;
                System.out.println("sign: " + sign + "\n"+"name: " + name);
            }
        
        }
        
  2. 在applicationContext.xml文件中配置bean属性在这里插入图片描述

  3. 在test文件中编写java程序实现setter注入的简单调用:在这里插入图片描述

  4. package AppTest;
    
    import com.Alvis.service.SimpleService;
    import com.Alvis.service.impl.SimpleServiceImpl;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class App_04 {
        public static void main(String[] args) {
            // 获取配置文件
            ClassPathXmlApplicationContext cpx = new ClassPathXmlApplicationContext("applicationContext.xml");
    
            SimpleService simpleService = (SimpleServiceImpl) cpx.getBean("simpleService");
            simpleService.run();
        }
    }
    ===========================================
    实现类已运行
    init 已执行
    bean 生命周期开启
    bean 生命周期开始
    this is SimpleService...
    sign: ***
    name: *****
    
    进程已结束,退出代码0
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值