作者qrtt1 (有些事,有时候。。。)
看板java
标题Re: [问题] autowired问题一问
时间Sun Oct 9 17:55:39 2016
==============================================================================
→ qrtt1: 另外就是,你写这个是想要达到什麽目的?看不太懂意图 10/08 18:17
→ goldberg123: 我想先把bean inject进来,再依照需求对bean里的属性 10/09 12:29
→ goldberg123: 做塞值动作,所以我才会先autowired进来再去set值 10/09 12:29
→ goldberg123: 不过好像违背@autowired精神,当初考量到这样写是因为 10/09 12:30
→ goldberg123: 是我有一支class需要做成两个不同的bean 10/09 12:32
→ goldberg123: 就是同一支class只是差在属性不同 A的bean的id='A' 10/09 12:32
→ goldberg123: B的bean的id='B'这样 10/09 12:33
==============================================================================
需求清楚了,就知道怎麽处理了,只是属性不同但 class 是一样的
这太常见了,像是一个专案常有一个以上的 javax.sql.DataSource 物件
http://bit.ly/2dWib5e
@ConfigurationProperties(prefix = "
aSet")
@Bean
ConcreteClass aSet() {
return new ConcreteClass();
}
(bSet 也长得一样,只是 prefix, method name 不同)
在 application.properties 内只要写:
aSet.id=this is a set
bSet.id=this is b set
对好後,就只是不同组的 configuration 跟 prefix 罢了
http://bit.ly/2dWhFUy
@RestController
public class GreetingController {
@Autowired ConcreteClass aSet;
@Autowired ConcreteClass bSet;
@RequestMapping("/aSet")
public ConcreteClass aSet() {
return aSet;
}
@RequestMapping("/bSet")
public ConcreteClass bSet() {
return bSet;
}
}
qty:spring-prefix qrtt1$ curl -s
http://127.0.0.1:8080/aSet | jq .
{
"id": "this is a set"
}
qty:spring-prefix qrtt1$ curl -s
http://127.0.0.1:8080/bSet | jq .
{
"id": "this is b set"
}
这样有没有简单又明白呢!?
--
JCConf 工商服务
https://www.facebook.com/jcconf/posts/974947969317750
JCConf 2016 售票至 10/9 (日) 结束呦 :D
报名网址:
http://twjug.kktix.cc/events/jcconf2016-register
议程网址:
http://jcconf.tw/2016/
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.251.136.87
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1476006942.A.5F4.html
※ 编辑: qrtt1 (111.251.136.87), 10/09/2016 17:59:12
1F:推 goldberg123: 哇 这样真的弄明白了 也知道为什麽之前我的作法 10/10 12:48
2F:→ goldberg123: 有问题 真的很谢谢各位帮我解答 10/10 12:48
3F:推 pttworld: 10/10 14:50