我计划使用下面的设置在我的Spring MVC中创建我的对象但是如何将值注入myService ie;使用默认值...
实例化对象public class MyController {
private MyService myService;
@Autowired
public void setMyService(MyService aService) { // autowired by Spring
this.myService = aService;
}
@RequestMapping("/blah")
public String someAction()
{
// do something here
myService.foo();
return "someView";
}
}
为MyService
class Myservice(){
String servicename;
public Myservice(servicename){
this.servicename = servicename;
}
}
没有春天
MyService first = new MyService("firstservice");
MyService second = new MyService("secondservice");
答案 0 :(得分:1)
只需使用@Autowired
声明构造函数,将其标记为要使用的构造函数,并将其参数标记为@Value
以指示要使用的值。
@Autowired
public Myservice(@Value("example") String servicename){
或使用占位符
@Autowired
public Myservice(@Value("${placeholder.key}") String servicename){
答案 1 :(得分:-2)
首先,您的考试使用Spring DI是错误的。将Myservice类型注入另一个您应该将MyService声明为接口:
interface Myservice(){
public void foo();
}
之后,声明此接口的实现(再次使用Spring DI注入String类型):
class BarService() implements Myservice{
String servicename;
@Autowired
public Myservice(@Value("servicename") String servicename){
this.servicename = servicename;
}
public void foo(){
}
}