自动注入@InjectField的使用
发布日期:2021-06-30 22:58:45
浏览次数:2
分类:技术文章
本文共 2663 字,大约阅读时间需要 8 分钟。
1.添加依赖
com.bamboo bamboo-injection-starer 1.0-SNAPSHOT
2.application.yml配置
bamboo: injection: # 是否启用 远程数据 手动注入 enabled: true # 是否启用 远程数据 注解注入 aop-enabled: true
3.在需要注入的对象上添加注解@InjectionField
import static com.bamboo.common.constant.InjectionFieldConstants.ORG_ID_CLASS;import static com.bamboo.common.constant.InjectionFieldConstants.ORG_ID_METHOD;public class Station { // 正常的字段 private String name; /** * 行政区级 * @InjectionField(api = DICTIONARY_ITEM_CLASS, method = DICTIONARY_ITEM_METHOD) RemoteData* * */ @InjectionField(api = "dictionaryItemServiceImpl", method = "findDictionaryItem") private RemoteData level; /** * 组织ID * 需要注入 组织的相关数据 */ @InjectionField(api = ORG_ID_CLASS, method = ORG_ID_METHOD) private RemoteData org;}
4.手动注入:
public class Controller{ @Autowired private InjectionCore injectionCore; @Test public void test(){ Station station = Station.builder().org(new RemoteData(101L)).level(new RemoteData("CITY")).build(); // 从数据库连查询出来 // 手动注入 ,注意:不调用该方法,不会注入数据 injectionCore.injection(station); log.info(station); Station station1 = Station.builder().org(new RemoteData(101L)).level(new RemoteData("CITY")).build(); Station station2 = Station.builder().org(new RemoteData(102L)).level(new RemoteData("DIQU")).build(); Listlist = Arrays.asList(station1, station2); // 从数据库连查询出来 // 手动注入 ,注意:不调用该方法,不会注入数据 injectionCore.injection(list); log.info(list); }}
5.自动注入:
public class Controller{ @Autowired private Service service; @Test public void test(){ // 直接调用 Station station = service.get(); log.info(station); // 直接调用 Listlist = service.list(); log.info(list); }}@org.springframework.stereotype.Servicepublic class Service{ // 通过这个注解 实现注入 @InjectionResult public Station get(){ Station station = Station.builder().org(new RemoteData(101L)).level(new RemoteData("CITY")).build(); // 从数据库连查询出来 return station; } // 通过这个注解 实现注入 @InjectionResult public List list(){ Station station1 = Station.builder().org(new RemoteData(101L)).level(new RemoteData("CITY")).build(); Station station2 = Station.builder().org(new RemoteData(102L)).level(new RemoteData("DIQU")).build(); List list = Arrays.asList(station1, station2); // 从数据库连查询出来 return list; }}
转载地址:https://lukeyalvin.blog.csdn.net/article/details/104247076 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月28日 04时28分01秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
剑指offer编程题,一周刷完
2019-05-01
推荐系统初学
2019-05-01
Map的遍历和排序
2019-05-01
约瑟夫环问题
2019-05-01
springboot+log4j2体验
2019-05-01
redis集群启动方式
2019-05-01
ubuntu系统开机自启动方式
2019-05-01
ES查询效率之快的三个重要技术
2019-05-01
JDBC概念,JDBC连接到Oracle 11g(内附驱动jar包),
2019-05-01
彻底卸载MySQL
2019-05-01
Oracle创建表,修改表(添加列、修改列、删除列、修改表的名称以及修改列名)
2019-05-01
SQL命令分类(DDL、DML、DCL、TCL以及事务)
2019-05-01
nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate 报错
2019-05-01
kafka集群搭建
2019-05-01
Python正则表达式,从入门到实战,精华都在这里!
2019-05-01
喜欢玩王者荣耀的有福了,用 Python 获取英雄皮肤壁纸
2019-05-01
一名数据分析师的SQL学习历程
2019-05-01
图解《金字塔原理》,7步掌握其精华!
2019-05-01
数据分析入门选择Python还是SQL?七个常用操作对比!
2019-05-01
最后一台,i7+6核电脑
2019-05-01