Noark入门之注入方式

普通类注入

只要是被IOC容器接管的类可以当作属性注入.

1@Autowired 2private VipService vipService;

接口注入

如果有被IOC容器接管的类实现了此接口,也可以作属性一样注入实现类.

1@Autowired 2private VipExportService vipExportService;

List注入

如果有多个实现,又要注入全部实现,那就使用List注入的方式吧...

1@Order(100) 2@Component(name = { "@gm add ?", "@gm add help" }) 3public class AddHelpCommand implements GmCommand { 4 5 @Autowired 6 private List<AbstractAddCommand> commands; 7 8 @Override 9 public String help() { 10 StringBuilder sb = new StringBuilder(); 11 commands.forEach(v -> sb.append(v.help()).append("\n")); 12 return sb.toString(); 13 } 14 15 @Override 16 public void exec(long playerId, String... args) {} 17}

又是一个无理又很现实的需求,添加命令要获得所有添加系列的命令,构建添加系列的帮助文档...

如果List有排序需求,请参考@Order注解...

Map注入

在上面的命令中发现了@Component注解是有名称的,那是不是能实现Map的方式注入,还真可以...

1@Autowired 2private Map<String, GmCommand> commands;

常规就是一个名称,如果有需要多个名称,功能相同别命而已,请随便...

1@Component(name = "@gm reload") 2public class ReloadCommand implements GmCommand {}

如果是注入配置文件中的参数呢

请参考@Value注解,如果配置不存在则使用属性的默认值.

1@Value("template.path") 2private String templatePath;

@Value所支持的类型等同于模板配置类型,亦支持模板转化器,所以他在理论上支持所有类型...

点赞
收藏

评论区

加载中...

相关推荐

SpringIOC官方文档解读

IoC容器本章介绍了Spring的控制反转(IoC)容器。1.1。SpringIoC容器和Bean简介本章介绍了反转控制(IoC)原则的Spring框架实现。IoC也称为依赖注入(DI)。在此过程中,对象可以通过①构造函数参数(),②工厂方法的参数③或在构造或从工厂方法返回后在对象实例上设置的属性来定义其依

MyBatis 面试题(附答案解析)

目录MyBatis的实现逻辑MyBatis的缓存实现逻辑{}和${}的区别是什么?MyBatis中自定义标签的执行原理简述Mapper接口的工作原理在Spring中Mapper接口是如何被注入的?在Mapper接口中是否可以有重载方法?当实体类中的属性名和表中的字

Spring高级进阶:BeanFactoryPostProcessor

BeanFactoryPostProcessor是实现spring容器功能扩展的重要接口,例如修改bean属性值,实现bean动态代理等。很多框架都是通过此接口实现对spring容器的扩展,例如mybatis与spring集成时,只定义了mapper接口,无实现类,但spring却可以完成自动注入,是不是很神奇?本文将通过简单的例子,展现BeanFacto

SpringIOC

XML方式:IOC:控制反转的底层原理就是:工厂模式反射配置文件DI:依赖注入就是通过配置文件设置属性值BeanFactory 是老版本的工厂类:调用getBean的时候,才会生成类的实例ApplicationContext 是新版本的工厂类:加载配置文件的时候,就会将Spring管理的类

Spring 4.3 的新功能和增强

核心容器改进核心容器额外提供了更丰富的元数据来改进编程。默认Java8的方法检测为bean属性的getter/setter方法。如果目标bean只定义了一个构造函数,则它无需要指定@Autowired注解@Configuration类支持构造函数注入。任何SpEL

Spring源码阅读——3

SpringIoC容器1、IoC容器概述控制反转、IoC容器、依赖注入控制反转:不是什么技术,而是一种设计思想。Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。IoC容器:IoC容器控制了对象的

Noark入门之注入方式 - HelloWorld