博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用spring boot 实现两个没有关系的类注入
阅读量:5238 次
发布时间:2019-06-14

本文共 1285 字,大约阅读时间需要 4 分钟。

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

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;@Componentpublic 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 来找到的

转载于:https://www.cnblogs.com/wujiaxing/p/11198443.html

你可能感兴趣的文章
Item 9: Avoid Conversion Operators in Your APIs(Effective C#)
查看>>
面试很痛苦,备点前端面试题(一)——js数据类型及其转换
查看>>
js去除空格
查看>>
学习Spring Boot:(二十八)Spring Security 权限认证
查看>>
IT学习神器——慕课网App获App Store、Android应用市场重磅推荐
查看>>
Linux网络状态工具ss命令使用详解
查看>>
菜根谭#21
查看>>
Python Paramiko模块与MySQL数据库操作
查看>>
vc6 使用的那些事
查看>>
opengl实现直线扫描算法和区域填充算法
查看>>
答读者问(18):一个大四学生有关专业发展的相关疑问
查看>>
Eclipse使用异常——tomcat启动
查看>>
hdu 1418(抱歉)(欧拉公式,定点数,棱数,面数的关系)(水题)
查看>>
【翻译】ExtJS vs AngularJS
查看>>
C++ 虚函数表解析
查看>>
3D数学读书笔记——矩阵进阶
查看>>
目标检測的图像特征提取之(一)HOG特征
查看>>
JS正则--留档
查看>>
cssText笔记
查看>>
外部类与main方法笔记
查看>>