程序员子龙(Java面试 + Java学习) 程序员子龙(Java面试 + Java学习)
首页
学习指南
工具
开源项目
技术书籍

程序员子龙

Java 开发从业者
首页
学习指南
工具
开源项目
技术书籍
  • 基础

  • JVM

  • Spring

    • 动态代理-CGLIB
    • Hibernate Validator 参数校验优雅实战
    • Jackson序列化json时null转成0或空串
    • 别自己瞎写工具类了!SpringBoot中自带工具类,开发效率增加一倍
    • Spring @Autowired Map
    • SpringBoot 缓存之 @Cacheable 详细介绍与失效时间TTL
    • Spring Security 入门
    • Spring Security原理
    • Spring项目整合MybatisPlus出现org.mybatis.logging.LoggerFactory Not Found 异常
    • Spring在代码中获取bean
    • 别再乱写了,Controller 层代码这样写才足够规范!
    • 非静态变量给静态变量赋值
    • 过滤器与拦截器区别、使用场景
    • 接口重试机制 Spring-Retry
    • 利用cglib动态创建对象或在原对象新增属性
    • 聊聊spring事务失效的场景
    • Spring Event 事件解耦
    • 最全的Spring依赖注入方式
    • Spring初始化之ApplicationRunner、InitializingBean、@PostConstruct 使用详解
    • 为啥不建议用 BeanUtils.copyProperties 拷贝数据
  • 并发编程

  • Mybatis

  • 网络编程

  • 数据库

  • 缓存

  • 设计模式

  • 分布式

  • 高并发

  • SpringBoot

  • SpringCloudAlibaba

  • Nginx

  • 面试

  • 生产问题

  • 系统设计

  • 消息中间件

  • Java
  • Spring
程序员子龙
2024-01-29

Spring @Autowired Map

# Spring @Autowired Map List

这是Spring的一个特殊的注入功能

当注入一个Map的时候 ,value泛型为T,则注入后Spring会将实例化后的bean放入value ,key则为注入后bean的名字

当注入一个List的时候,List的泛型为T,则注入后Spring会将实例化的bean放入List中

定义一个接口

public interface UserService {
    
}
1
2
3

两个实现类

@Service("beijing")
public class BeijingUserServiceImpl implements UserService{
    
}


@Service("shanghai")
public class ShanghaiServiceImpl implements UserService {
    
}

1
2
3
4
5
6
7
8
9
10
11

测试类

@Autowired
Map<String, UserService> map ;

@Autowired
List<UserService> list;

public void test(){
	 for (Map.Entry m : map.entrySet()){
            System.out.println("key : " + m.getKey()+" =value:" + m.getValue());
        }
        
           for (Map.Entry m : map.entrySet()){
            System.out.println("key : " + m.getKey()+"; value:" + m.getValue());
        }

        list.stream().forEach(l ->{

            System.out.println(l.toString());
        });

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

打印结果:

key : beijing; value:com.test.controller.BeijingUserServiceImpl@188c5d23
key : shanghai; value:com.test.controller.ShanghaiServiceImpl@183e329d

com.test.controller.BeijingUserServiceImpl@188c5d23
com.test.controller.ShanghaiServiceImpl@183e329d
1
2
3
4
5

注入map的使用场景:

完成简单版的策略模式

上次更新: 2024/01/30, 15:08:57
别自己瞎写工具类了!SpringBoot中自带工具类,开发效率增加一倍
SpringBoot 缓存之 @Cacheable 详细介绍与失效时间TTL

← 别自己瞎写工具类了!SpringBoot中自带工具类,开发效率增加一倍 SpringBoot 缓存之 @Cacheable 详细介绍与失效时间TTL→

最近更新
01
一个注解,优雅的实现接口幂等性
11-17
02
MySQL事务(超详细!!!)
10-14
03
阿里二面:Kafka中如何保证消息的顺序性?这周被问到两次了
10-09
更多文章>
Theme by Vdoing | Copyright © 2024-2024

    辽ICP备2023001503号-2

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式