SpringIOC通过注解实现DI(dependence injection,依赖注入)

Spring中可以通过xml文件进行ioc容器内bean的管理,通过注册相应的java bean类实现相应的依赖注入。
除此之外它还支持另外一种更加方便快捷的方式-------使用注解。达到依赖注入的目的,与依赖注入相关的常用注解如下:

@Repository //数据库类
@Component  //组件类
@Service    //服务类
@Controller  //控制器类
@AutoWired   //自动注入
@Qualifier  //指定注入的bean的id

在使用注解之前要先导入context命名空间,如果使用IDEA在使用context命名空间时会自动导入,导入命名空间之后,使用包扫描语句:

<context:component-scan base-package="包名"></context:component-scan>

告诉Spring 要去哪些包中寻找添加了注解需要执行相应操作的类
包名写的应尽量详细(例如只写个:com.*,同样也能扫描到相应的类,达到预定目的,但是可能com开头的包很多,如果写的太粗略会增加扫描时长)

注解含义

前面四个注解,用于标记相应功能的类,@Repository @Component @Service @Controller

Repository:对应我们常说的Dao(Data Access Object)层,用于添加在相应dao层类上
Service:用于和经常Dao层对接的服务类
Controller:这个注解应该添加在控制器类上(其实就是Servlet类)
Component:如果要添加注解的类不属于上面说的,或者你分不清它应该添加什么注解,那么就可以使用这个注解,将被注解的类归为组件类

另外,标注什么注解在处理时并不会区别对待,之所以会有这么多类别的注解,是为了方便他人读懂代码

Autowired :它的作用是,将对应的bean注入到java类中的属性当中
常用的用法是加在类的属性当中,此外它还可以加在方法,方法的参数,构造器上

  • 加在属性上时:会自动在IOC容器中为属性注入值,如果没有特别指定,将使用注入bean的类名的首字母小写形式

  • 加在方法上:spring扫描时会自动调用该方法,并使用ioc容器中注册的bean当成参数传入

  • 加在构造器上:创建这个类时,会调用此构造器,并且使用ioc容器中的bean 作为参数

  • 加在方法参数上:调用这个方法时会使用IOC容器中相应的bean 注入(和@Qualifier一起使用,取消@AutoWired 的默认注入行为)

Qualifier:这个注解的作用是取消Auto的默认行为,通过参数影响AutoWired行为,比如当使用字符串作为参数时,会使用字符串内容作为id注入相应的bean

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值