1、使用前准备
(1)导包(4+2+Spring-aop)
(2)为主配置文件引入新的命名空间(约束)
- 在catalog中导入约束
- 为主配置文件导入context约束
(3)书写主配置文件
<!-- 将会扫描club.ityuchao.domain下的所有class和子包 -->
<context:component-scan base-package="club.ityuchao.doamin"></context:component-scan>
(4)在类中使用注解
2、将对象注册到容器
/*@Service("user")
@Controller("user")
@Repository("user")*/
@Component("user")
public class User {
3、修改对象的作用范围
@Component("user")
@Scope(scopeName="prototype")
public class User {
4、值类型注入
两种方式:
(1)在属性上面写
@Value("tom")
private String name;
通过反射的Filed赋值,破坏了封装性
(2)在set方法上写
@Value("tom")
public void setName(String name) {
this.name = name;
}
未破坏封装性,但是不方便看
5、引用类型注入
两种方式:
(1)自动装配
@Autowired
public void setCar(Car car) {
this.car = car;
}
当car有两个以上的对象时,可以配合以下注解使用
@Autowired
@Qualifier("car2")
public void setCar(Car car) {
this.car = car;
}
(2)指定对象
@Resource(name="car2")
public void setCar(Car car) {
this.car = car;
}
6、初始化|销毁方法
@PostConstruct
public void init() {
System.out.println("User的初始化方法");
}
@PreDestroy
public void destroy() {
System.out.println("User的销毁方法");
}
当属性设值为:@Scope(scopeName="prototype") 时,不会执行销毁方法,因为设值该属性后,Spring创建该对象后将不会再管