Spring自动装配的注解用法
昨天闲来无事,调了个Spring注解的实例,挺有收获,小Show下:使用XML配置文件时需要写明要又Spring管理的实例对象的实例名和完整路径,而这些实例的一般产生方式(单例模式)和命名(类名首字母小写)一般挺固定,如果需要Spring管理的对象挺多的话用XML配置起来有些麻烦。采用注解的话,只需一两个注解标签就可搞定。下面简单谈下自己的理解: 注解和XML配置文件道理上是类似的:使用配
昨天闲来无事,调了个Spring注解的实例,挺有收获,小Show下:
使用XML配置文件时需要写明要又Spring管理的实例对象的实例名和完整路径,而这些实例的一般产生方式(单例模式)和命名(类名首字母小写)一般挺固定,如果需要Spring管理的对象挺多的话用XML配置起来有些麻烦。采用注解的话,只需一两个注解标签就可搞定。下面简单谈下自己的理解:
注解和XML配置文件道理上是类似的:使用配置文件只不过是把交由Spring容器管理的对象统一组织了起来,查看时方便。注解呢是在代码里添加标记,而Spring容器在编译前后或运行时跟据这些标记完成对象的实例化和注入。
@Autowired标签设置在setter方法上表明该方法的参数从Spring容器里查找并由Spring完成注入。
@Component添加在类定义代码前表明在Spring容器里实例化该类型一个对象,默认以类名的首字母小写形式为对象实例名,也可以自定义指定要实例化的对象名(name="")。另外需要注意:实例化对象的产生方式(singleton/prototype)。
@Resource使用范围更广泛的一个标记,可以用它指定各样的资源如URL/InputStream/Classpath/xml文件。。。完全可以用它再指定属性name实现@Component的效果。
如果用到上面的注解标记,需要在XML配置文件里加上如下标签
<context:annotation-config />
<context:component-scan base-package="your package。。" />
对于第一个标签自己实验后发现有时不加也行,它的作用没深入研究,以后多接触后再探讨;而第二个标签如果你用到@Component注解标记那么它是必须的,它是Spring查找@Component标记的类从而完成对象实例化所要搜索的包,如果指定错了Spring就不会为@Component标记的类生成对象实例,我们使用时会得到空指针。
更多推荐
所有评论(0)