1.SpringIOC注解开发入门
1.1.创建接口和实现类
1.2.约束文档
1.3.开启Spring的组件扫描(扫描只是扫描类上的注解)
1.4.在类上添加注解
1.5.编写测试类
1.6.注解方式设置属性值
注意:如果使用注解方式设置属性值,可以没有set方法
- 如果提供set方法,将属性注入注解写在set方法上
- 如果不提供set方法,将属性注入注解写在属性上
2.Spring的IOC注解详解
2.1.@Component:组件
- 作用:用于
修饰一个类
,将这个类交给Spring管理 - 衍生注解(3个,功能类似,目前和Component功能一致,但是更建议使用衍生的注解)
@Controller:web层
@Service:service层
@Repository:dao层
2.2.属性注入注解
- 普通属性:
@Value
设置普通属性值 - 对象类型属性:@Autowired设置对象类型的属性值,但是是
按照类型完成的属性注入
,习惯是按照名称注入的,所以我们使用@Autowired+@Qualifier(“被注入的对象在其类上注解的名称”)来完成按名字注入 - 实际上,@Autowired+@Qualifier=@Resource,
@Resource
完成对象类型属性按照名称的注入。此注解不是Spring提供,而是Spring实现的一套接口规范中给出的,@Resource(name=“被注入的对象在其类上注解的名称”)
2.3.Bean的其他注解
2.3.1.生命周期相关注解
- @PostConstruct:初始化方法
- @PreDestro:销毁方法
2.3.2.Bean作用范围注解
@Scope:作用范围,值选择如下
singleton
:(默认)单例prototype
:多例- request
- session
- globalsession
3.IOC的XML和注解开发比较
3.1.XML和注解的比较
XML | 注解 | |
---|---|---|
Bean定义 | <bean id="…" class="…"> | @Component,衍生注解@Repository、@Service和@Controller |
Bean名称 | 通过id或name指定 | @Component(“person”) |
Bean注入 | <property>或者通过p命名空间 | @Autowired按类型注入,@Qualifier按名称注入 |
生命过程、Bean作用范围 | init-method、destroy-method范围scope属性 | @PostConstruct:初始化方法、@PreDestro:销毁方法、@Scope设置作用范围 |
适用场景 | 可以适用任何场景 | 有的地方用不了,比如这个类不是自己提供的 |
- XML:结构清晰,维护方便
- 注解:开发方便
3.2.XML和注解整合开发
XML管理Bean,注解去完成属性注入(了解)