(狂神)Spring笔记------04

7.4 使用注解实现自动装配

jdk1.5支持的注解 ,Spring2.5就支持注解了!

要使用注解须知:

1.导入约束 context约束

2.配置注解的支持<context:annotation-config/>【重点】

 @Autowired

直接在属性上使用即可!(也可以在set方法上写)

如果在属性上写set方法都不需要了

xml:

实体类:

 测试:

测试结果:

 

 使用Autowired我们可以不用编写Set方法了,前提是你这个自动装配的属性在IOC(Spring)容器中存在,且符合名字byname!

科普:

@Nullable 字段标记了这个注解,说明这个字段可以为null;

如果xml中名称不一样:

测试结果:

仍然可以正常运行。

但是如果xml中我们有多个名不同类型相同的bean的时候:

 

我们的实体类会报错,这时候我们可以使用新的注解去指定我们配置中的bean

@ Qualifier(value)

就可以正常测试了。

如果@Autowired自动装配的环境比较复杂,自动装配无法通过一个注解【@Autowired】完成的时候,我们可以使用@Qualifier(value="xxx")去配合@Autowired的使用,指定一个唯一的bean对象注入!

@Resource

实体类:

 

bean.xml当类型一致时:

 

 

测试成功。

当名称符合时:

 

 

依然测试成功。

我们用Resource注解也可以指定装配

xml:

 

实体类:

 

 

 运行成功。

小结:

@Resource和@Autowired的区别:

都是用来自动装配的,都可以放在属性字段上

@Autowired通过byType的方式实现,而且必须要求这个对象存在!【常用】

@Resource默认通过byname的方式实现,如果找不到名字,则通过byType实现!如果两个都找不到的情况下,就报错!【常用】

执行顺序不同:@Autowired通过byType的方式实现。@Resource默认通过byname的方式实现。

 

8.使用注解开发

在Spring4之后要使用注解开发必须要保证aop的包导入了

使用注解需要导入context约束,增加注解的支持! 

 

1.bean

 实体类:

xml:

 

测试:

 

 

 

2.属性如何注入

使用注解只需要更改实体类就行:

 

 

3.衍生的注解

@Component有几个衍生注解,我们在web开发中,会按照mvc三层架构分层!

dao[@Repository]

service[@Service]

controller[@Controller]

这四个注解功能都是一样的,都是代表将某个类注册到Spring中,装配Bean

4.自动装配

@Autowired:自动装配通过类型,名字。
    如果Autowired不能唯一自动装配上属性,则需要通过@Qualifier(value="xxx")
    @Nullable 字段标记了这个注解,说明这个字段可以为null
    @Resource :自动装配通过名字。类型。

5.作用域

@Scope(值)

6.小结

xml与注解:

xml更加万能,适用于任何场合!维护简单方便

注解 不是自己类使用不了,维护相对复杂!

xml与注解最佳实践:

xml用来管理bean;

注解只负责完成属性的注入;

我们在使用的过程中,只需要注意一个问题:必须让注解生效,就需要开启注解的支持

 

9.使用JavaConfig实现配置

我们现在要完全不使用Spring的xml配置了,全权交给Java来做!

JavaConfig是Spring的一个子项目,在Spring4之后,他成为了一个核心功能!

 

例:

实体类:

我们这种方法完全不去使用xml文件了,用config去代替:

 

测试:

 

 

但是除此之外,我们也会遇到多个bean实体类的情况:

 新的配置类:

 

 用@Import引入

这种纯Java的配置方式,在SpringBoot中随处可见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值