如果是基于xml的形式使用Spring整合,那么要在相应的类或者方法或者属性中设置set与get方法,此时在bean.xml文件中文件头的内容如下:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" >
如果是基于注解的Spring整合的话,那么可以把相应的set与get方法去掉,同时在属性定义的上面加上@autowire(默认按类型装配)或者@resource(默认按名称装配),同时beam.xml的文件头是这样的:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <context:annotation-config />
此时注意必须加入<context:annotation-config/>表示使用注解,缺少这个会报空指针异常!!!
这样,当 Spring 容器启动时,AutowiredAnnotationBeanPostProcessor 将扫描 Spring 容器中所有 Bean,当发现 Bean 中拥有 @Autowired 注释时就找到和其匹配(默认按类型匹配)的 Bean,并注入到对应的地方中去。
如果是@component注解的话,它是注释在类上面的,注释的类上面加上要注入的名字即component(name="userService"),被注释的类会被注入,然后在bean.xml中只需要配置如下图,其中base_package是指要扫描的区域。
<context:annotation-config />
<context:component-scan base-package="com.bjsxt"/>
原文:http://www.cnblogs.com/2027437606qq/p/5036095.html