频道栏目
首页 > 资讯 > Java > 正文

Spring 注解与xml文件混合声明bean

15-12-13        来源:[db:作者]  
收藏   我要投稿
 在spring中,使用xml文件配置bean的方式比较繁琐,但是具有一定的灵活性,在不更改源代码的情况下就可以更改程序配置或者更改以来关系;使用注解配置的方式高效,但是失去了xml文件的灵活性。
    在这种情况下,我们可以使用xml文件与注解混合使用的方式进行配置bean,在不需要更改属性上可以使用注解的方式进行配置,但是在这个类上面不要使用@Component或者@Controller或者@Serverce等自动装配的注解,否则在xml文件中声明同一个类的bean时,在spring容器中会出现多个类型相同的bean,在自动装配过程中可能会出错(因为有多个相同类型的bean)。在xml文件中声明这个类的bean,这个类中使用@Resource等自动装配的注解也会生效。
例如:
 
/**
* @ClassName: AbstractXmlGenerator
* @Description: XmlGenerator抽象类,内置一个XmlReader和PathManager
* @date 2015年12月12日 下午9:21:21
*
*/
public abstract class AbstractXmlGenerator implements Generator{
    @Resource
    private XmlReader reader;
    private String xmlFilePath;
    private String query;
    @Resource
    private PathManager pathManager;
    public XmlReader getReader() {
        return reader;
    }
    public void setReader(XmlReader reader) {
        this.reader = reader;
    }

 

 
在xml文件中配置:
 
<bean id="forcedSeedsGenerator" class="collector.generator.AbstractXmlGenerator ">
<property name="query" value="lagou keyword"></property>
<property name="xmlFilePath" value=""></property>
</bean>

 

 
 
@Resource
    private XmlReader reader;

 

 
上述的自动装配也会自动进行,即使在xml中对该属性没有显式的配置。    
    若某字段使用了自动装配,而且在xml文件中也对该字段的属性进行了设置,xml文件中声明的这个bean将以xml文件中的配置为主,也就是说xml配置文件覆盖了自动装配。
    当子类继承父类,父类中有自动装配的属性,而且父类并没有在Spring容器中,父类中的自动装配属性也是生效的。
相关TAG标签
上一篇:C结构体实现一个通讯录
下一篇:微商,狂刷朋友圈,为何没能带来成交?
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站