Spring中使用@Value如何按类型注入值

西夏一品堂 发布于 2018/07/13 15:54
阅读 3K+
收藏 0

容器中,有一个Runnable的bean

@Configuration
public class Config {

	@Bean("myrun")
	public Runnable run() {
		return () -> System.out.println("this is spring run");
	}
}

现在想使用@Value的方式,把这个bean注入进来

@Service
public class Runner {

	@Value("#{myrun}")
	private Runnable run;
	
	public void run() {
		run.run();
	}
}

这种是按bean的名字注入,没有问题,是OK的。

但是,我想按类型注入(不知道名字是什么),请问,如何使用@Value的方式,按类型注入(不想使用@Autowired、@Inject等方式按类型注入)

请问,如果使用@Value按类型注入,@Value括号里面应该怎么写?

加载中
0
风吹屁屁凉
风吹屁屁凉

@Autowired + @Qualifier("myrun")

风吹屁屁凉
风吹屁屁凉
回复 @西夏一品堂 : 可以这么想,Autowired是取的Bean圈子里的,Value取的是properties圈子里的,两个都关联不上
风吹屁屁凉
风吹屁屁凉
回复 @西夏一品堂 : 不支持
西夏一品堂
西夏一品堂
该评论暂时无法显示,详情咨询 QQ 群:点此入群
0
tangchd
tangchd

1.问题好奇葩,不想按照类型注入,又想让@Value按类型注入。

2.Value注解的作用并不是用来注入bean,是用来注入properties配置的。

 

0
y
youngkun
@Value用于设property属性值的,不能用于bean注入
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部