spring中常用的注解介绍

spring之前的版本用的是xml存储、交换数据,后来受Rails框架的启发,spring开始支持使用Annotation来代替xml文件

首先使用Spring注解,需要在配置文件中有如下配置:

    <!-- 配置与注解有关的处理器 -->
    <context:annotation-config/>
    
    <!-- 扫描controller -->
    <context:component-scan base-package="com.xh.ssm.controller"/>


其中扫描器配置隐式的包含了注解处理器,所以就不用配置<context:annotation-config/>

注解其实本身并没有什么作用,根XML一样,只是进行一些配置,传递一些信息,重要的是背后的解析器,处理器!!!!

常用注解如下:

1.与搜索有关的注解:
Spring要求程序员显示指定搜索哪些路径下的Java类,然后符合条件的Java类注册到spring容器中, 那么问题是:spring如何知道该把哪些类当成Bean类处理?  所以就用到了如下注解:
# @Component : 标注一个普通的spring bean类;
# @Controller: 标注一个控制器组件类;
# @Service: 标注一个业务逻辑组件类;
# @Repository : 标注一个Dao组件类;

然后需要在spring配置文件中配置搜索路径:
	<!-- 自动扫描指定包以及其子包下的所有Bean类-->
	<context:component-scan base-package="com.xh.ssm.service.impl"/>

** 默认情况下:扫描的Bean注册到spring容器,这些Bean实例的id默认是Bean类的首字母小写!!!

** 还可以通过为<context:comonent-scan />添加子元素 <include-filter /> 或者 <exclude-filter/>来指定springBean类,通过子元素属性

type指定过滤器类型;expression指定表达式;等等,这里不做详细介绍。


2.与作用域有关的注解:
使用XML配置来配置Bean实例时,可以指定作用域,也可以通过@Scope注解来指定;如果不指定默认为singleton。
	//指定该Bean实例的作用域为prototype
	@Scope("prototype")
	//指定该类作为SpringBean,还可以指定id
	@Component("axe")
	public class SteelAxe implements Axe{

	}

3.与依赖有关的注解:
使用@Resource(name="xxx")注解来配置依赖,spring会将该注解的name属性值,解析为Bean的id,然后完成依赖注入。
可以标注在字段上,或者setter方法上;
@Resource:按照名称进行注入,如果不指定name值,默认是字段的名称,或者setter方法中属性名称;
@AutoWire:按照类型进行注入,
4.与Bean生命周期有关的注解:
@PostConstruct和@PreDestory,这两个注解用于定制Spring容器中Bean的生命周期行为。等同于 init-method,
destory-method两个属性;一个会在完成依赖注入后调用,一个会在Bean销毁前调用,还有Bean的后处理器,这里不做介绍。

这两个注解标注在方法上,指定该方法为初始化方法,或者销毁方法。

5.Spring3.0新增的注解:
@DependsOn和@Lazy,是spring3.0新增的注解:
@DependsOn:该注解是类级别的,可以指定一个String数组类型的值,表示在初始化该Bean之前,会强制初始化数组中的Bean。
@Lazy:该注解是类级别的,可以指定一个布尔值,表示是否要预初始化该Bean
		//强制初始化数组中的Bean
		@DependsOn({"steelAxe", "xh"})
		//预初始化该Bean
		@Lazy(true)
		@Component
		public class Chinese{
		}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值