前言:前面介绍的是IoC的XML方式进行开发,但在实际开发中,我们常使用注解开发。
一、IOC注解开发的步骤:
1、引入jar包
2、配置applicationContext.xml文件:
引入约束 :路径:spring/doc/spring-farmework-reference/html/xsd-configuration.html :the context schema
3、先创建一个接口和实现类,先利用利用传统方法书写,再利用注解的方法进行
package com.dao;
public interface UserDao {
public void save();
}
/*
* 用户的实现类
*
* */
@Component("userDao")//相当于在<bean id= "userDao" class="com.dao.impl">,不用再xml中配置
public class UserDaoImpl implements UserDao {
private String name;
@Value("张三")
public void setName(String name) {
this.name = name;
}
/*
* 使用注解方式添加属性 :如果类中有属性set方法 把属性注入的注解放入属性的下面
* 如果没有set方法,注解加到属性上面
* */
@Override
public void save() {
System.out.println("UserDaoImpl执行了.....");
}
}
4、在applicationContext.xml中利用注解开发
- 开启spring的组件扫描
- 再类中添加注解 @Component("userDao")
- 使用注解方式添加属性 :如果类中有属性set方法 把属性注入的注解放入属性的下面 @Value("张三")
如果没有set方法,注解加到属性上面 例如:private String name; @Value("张三")
<!-- 使用IOC的注解开发,配置扫描(那些包下的哪些类要使用注解)-->
<context:component-scan base-package="com.dao.impl"/>
5、在编写一个测试类测试就完成了。
二、SpringIoC的注解的详细介绍
1、@Component : 组件 修饰一个类,将一个类交给Spring管理
有三个衍生注解:@Controller :用于标注控制层,相当于struts中的action层
@Service :用于标注服务层,主要用来进行业务的逻辑处理
@Repository :用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件
2、属性注入的注解
2.1@Value :设置普通属性的注解
2.2@Autowird: :可以设置对象类型的注解。但按照的是类型的注入,无关名称的
所以在设置注入时设置它的名称@Qualifier("userDao")
如:service中将dao层注入 @Autowired
@Qualifier(value = "userDao")在实际开发中,我们常使用。
2.3@Resource :完成对象类型的注解 (不是spring框架的注解)
如: @Resource(name = "userDao")//按照名称
注:2.2与2.3属性注入的效果一致
3、bean的一些其它的注解
3.1生命周期的注解
初始化: @PostConstruct
销毁时: @PreDestroy
3.2:bean 的作用范围的注解
@Scope: singleton、prototype、requset、session、globalsession
三、Ioc注解开发和xml的比较
XML:可以适用于任何场景
结构清晰,维护方便
注解:有些地方用不了,这个类不是自己提供。(比如源码提供的)
开发方便
开发中使用xml和注解整合开发