1.Spring 注解
- 注解是Java语法,被Java编译器检查,可以减少配置错误。
- 注解提供了默认支持功能,默认情况下会自动完成注入功能。
- 注解和XML配置可以混合使用。(自己写的类使用注解,别人写的API使用XML配置)
2.利用Spring注解创建Bean
1)创建Java类,标注注解
Spring 会自动查找注解@Componment 找到后自动实例 DemoBean 并且自动分配Bean的ID: demoBean。
@Component //默认的BeanID为 "demoBean"
2)需要在XML配置文件中开启注解扫描功能
<context:component-scan base-package="day02.bean"/>
3.Spring 支持多个组件注解
@Component 通用组件
@Named 通用组件
@Repository 持久层组件
@Service 业务层组件
@Controller 控制器
> 其中@Named来自 javax.inject 包,需要利用Maven导入。
@Component("myBean") //自定义BeanID为 myBean
@Scope("prototype") //创建多个对象实例
4.管理对象的声明周期
@PostConstruct 构造器之后执行方法
@PreDestroy 在销毁之前执行的方法
导入注解包
<artifactId>javax.annotation-api</artifactId>
<artifactId>javax.inject</artifactId>
5.注解注入属性
- @Autowired 和 @Resource 功能一样。
- 注解采用默认规则自动注入。先按照名字规则,自动注入,如果名字不匹配,就按照类型自动注入。
- 注解可以标注在 Bean属性 和 实例变量上。
- 注解必须经过Spring的解析出来才能生效。
原理:
6.@Autowired和@Resource
@Autowired 用于标注被注入的Bean属性或者实例变量。 Spring运行期间会自动按照名字相同或者类型相同的规则进行注入。@Autowired 和 @Resource 注解不仅仅能够标注实例变量,还能标注Bean属性方法,实现Bean属性注入。
7.混合使用 注解和xml文件
可以用<bean>声明bean组件注入到注解标注的属性,也可以将注解声明的Bean注解注入到<property> 属性中。
8.@Value用于为属性注入基本值,经常与Spring表达式配合实现读取配置文件
1)编写配置文件 config.properties
name=\u5C0F\u5F3A
其中\u5C0F\u5F3A是中文 “小强” 的Unicode转码。
2)利用配置文件读取properties
<util:properties id="config" location="classpath:config.properties"/>
3)重构Worker注入属性
@Value("#{config.name}") private String name;