在使用Spring的使用过程中我们需要进行相关配置文件applicationContext.xml的配置,除此之外我们也可以使用注解的方式来代替xml配置文件。
1.使用步骤
(1)为住配置文件引入新的约束(命名空间),需要导入约束spring-context.xsd约束文件
(2)需要导入包spring-aop否则运行的时候会报错
(3)开启使用注解代替配置文件,使用案例如下:
package entity;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@Component("student")
@Scope(scopeName="singleton")
public class Student {
@Value("尚光荣")
private String name;
@Value("22")
private Integer age;
// @Autowired
@Resource(name="car")
private Car car;
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Student() {
System.out.println("Student对象创建了");
}
@PostConstruct
public void init() {
System.out.println("我是初始化方法");
}
@PreDestroy
public void destory() {
System.out.println("我是销毁方法");
}
@Override
public String toString() {
return "Student [" + (name != null ? "name=" + name + ", " : "") + (age != null ? "age=" + age + ", " : "")
+ (car != null ? "car=" + car : "") + "]";
}
}
2.注解解释
(1)@Component(" "):早期注解用于注册对象
(2)@Service(" "):用于注册service层的对象
(3)@Controller(" "):用于注册Web层次的对象
(4)@Repository(" "):用于注册Dao层次的对象
(5)@Scope(" "):表示对象作用范围
(6)@Value(" "):为成员变量赋值,可以放在成员变量上,也可以放在set方法上面。第一种方式是通过反射Field方式赋值破环了封装型,推荐使用第二种方式
(7)@Autowired(" "):自动为对象类型的成员变量赋值需要配合注解@Qualifier(" ")使用,用来指定唯一的注入对象
(8)@Resource(" "):这是一种比第七种方式更加方便的为对象类型的成员变量进行赋值,推荐使用
(9)@PostConstruct:表示这是初始化方法,在构造方法执行完之后执行
(10)@PreDestory:表示这是一个销毁方法,在对象完全销毁前调用
注意:只有类型是Singleton的对象,spring容器才会进行完整生命周期的管理。类型是prototype的对象,当容器创建完对象之后就不会再去进行管理