2012-03-22 199 views
0

我读春天3.0文档,我来到了一句话 - XML注射前进行Spring注解和XML配置

注释注入,从而后者配置 将覆盖前者通过两种方式连接属性。

接下来的问题来到我的脑海: 如果我在bean中使用的注释(如@Service("myService")),现在我使用的是其他的bean,并用“为myService”,并“为myService”将通过注入XML配置。

会这样吗?我试过,但它给我

BeanCreationException(无法解析引用豆“为myService”而设置的bean属性“为myService”)

后来,我通过这个问题Wiring Spring bean through annotations and xml context去了,但在解决方案它被告知“只留下未指定的所有注释字段,并且他们会自动注入魔法。” (我没有尝试这种解决方案)

但是,如果我想指定所有注释字段,就像我上面指定@Service注释什么? 有什么建议?

回答

0

我想出了答案,它工作得很好。其实我忘了在xml配置中添加标签。我们需要在每个配置文件中添加此标记,即如果您已经为服务层bean编写了配置文件,请为服务层带注释的bean添加标记。类似于dao和控制器层。

0

你需要自动装配你的构造类似下面...

@Autowired(required=true) 
public UserService(DataSource dataSource){ 
    this.userDS = new UserDS(dataSource); 
} 

所以,在上面的代码DataSource将在自动UserService注入。

+1

废话。这个问题与构造函数注入无关。构造函数,方法和字段注入是做同样事情的三种不同版本,但是这个问题可以用任何这些方法来解决。 – 2012-03-22 07:26:42