zoukankan      html  css  js  c++  java
  • 使用spring boot 实现两个没有关系的类注入

    两个类既不是接口与实现类的关系,也不是父子类关系,那能不能注入呢? 答案:可以的

    1、新建一个类 A

    package io.xiongdi.controller;
    
    public class ClassA {
    
        public void print(){
            System.out.println("this is class A");
        }
    }

    2、然后建一个类 B,两者没有任何关系,只有一个方法返回类 A

    package io.xiongdi.controller;
    
    import org.springframework.stereotype.Component;
    
    @Component
    public class ClassB {
        public ClassA getClassA(){
            return new ClassA();
        }
    }

    3、在建一个类,使 spring 去找类 B 的方法去给类 A 注入,继承 PropertyEditorSupport 实现 setValue 方法

    package io.xiongdi.controller;
    
    import java.beans.PropertyEditorSupport;
    
    public class ClassAEditor extends PropertyEditorSupport {
        @Override
        public void setValue(Object value) {
            super.setValue(((ClassB)value).getClassA());
        }
    }

    4、使用测试类,验证效果

    package io.xiongdi.test;
    
    import io.xiongdi.controller.ClassA;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    import javax.annotation.Resource;
    
    @SpringBootTest
    @RunWith(SpringRunner.class)
    public class EditorTest {
        
        @Resource(name = "classB")
        private ClassA a;
        
        @Test
        public void testa(){
            a.print();
        }
    }

    看看输出效果吧

    注意: 类名 ClassAEditor 不能改,因为 spring 是根据 要注入的  类名 + Editor 来找到的

    只要你不觉得尴尬,那尴尬的就是别人
  • 相关阅读:
    DOM操作之获取HTML、文本和值
    DOM操作之属性和样式操作
    DOM节点的增删改查
    其他选择器
    属性过滤选择器
    Linux
    Linux
    Appium自动化(3)
    Appium自动化(2)
    Appium自动化(1)
  • 原文地址:https://www.cnblogs.com/wujiaxing/p/11198443.html
Copyright © 2011-2022 走看看