环境
在 Spring4 之后,要使用注解开发就必须依赖于 aop 的包。
使用注解需要导入 约束,增加注解支持。
POJO 类 User
@Component
@Component:组件,放在类上说明这个类被 Spring 所管理,即该类是一个 bean。
如果我们使用配置文件来配置 bean,则定义完 POJO 类后就要在配置文件中去配置 bean 并注入属性。而 注解便可以省去很多步骤,使该 bean 直接就能够被获取到。
但是正常情况下,我们都不会在定义的时候直接给出值,而是在后面的操作中注入。这时候就要用到@Value("xxx")
相比使用
,使用 @Value 还可以省略 setter,代码更加简洁。
@Value 也可以在 setter 上使用
而这一次获取到的 bean 结果便为:
虽然使用注解来注入值很简便,但是遇到了还是来处理属性的注入。一来更为方便快速,二来更为清晰。
衍生注解
由 @Component 衍生出来了三个注解,在 web 开发中, 我们会按照 mvc 三层架构来分层,而这三个注解便对应于这三个层。
@Repository,对应于Dao 层;
@Service,对应于Service 层;
@Controller,对应于Controller 层。
无论是 @Component 还是衍生的这三个注解,作用都是相同的,都是「代表将本类交由 Spring 托管,只是各层所使用的注解名字不同」。
自动装配
@AutoWired:自动装配注解,类似于 byName 的装配方式。
@Qualifier:如果 AutoWired 不能唯一自动装配上属性,则需要通过 @Qualifier(value = "xxx")。
@Nullable:字段标记这个注解,说明这个字段可以为 null。
作用域
@Scope,控制 bean 的作用域。下面的 @Scope 注解的源码:
可以看到 @Scope 有一个参数,这个参数便是 bean 的作用域。
单例 -- singleton
原型 -- prototype
总结
XML 与 注解比较:
xml 更为万能,适用于任何的场景,维护相对较为方便
注解只能在自己的类中使用,维护相对较为复杂
XML 与 注解如何搭配?xml 用来管理 bean,注解只负责完成属性的注入
使用注解的时候一定要注意开启注解的支持。
-- END --
领取专属 10元无门槛券
私享最新 技术干货