Spring是一个基于IOC和AOP的结构J2EE系统的框架
IOC 反转控制 是Spring的基础,Inversion Of Control
简单说就是创建对象由以前的程序员自己new 构造方法来调用,变成了交由Spring创建对象
DI 依赖注入 Dependency Inject. 简单地说就是拿到的对象的属性,已经被注入好相关值了,直接使用即可。
一、注解方式
修改applicationContext.xml,在前面加入:
<context:annotation-config/>
表示告诉Spring要用注解的方式进行配置
1.1 对注入对象行为的注解:
1.1.1 @Autowired注解
加在属性前
@Autowired private Category category;
也可以放在setCategory方法前:
@Autowired public void setCategory(Category category) { this.category = category; }
1.1.2 除了@Autowired之外,@Resource也是常用的手段
@Resource(name="c") private Category category;
修改applicationContext.xml,什么都去掉,只新增:
<context:component-scan base-package="com.afeng.pojo"/>
其作用是告诉Spring,bean都放在com.afeng.pojo这个包下
1.2 对bean的注解
修改applicationContext.xml,将bean注解的都去掉,新增:
<context:component-scan base-package="com.afeng.pojo"/>
其作用是告诉Spring,bean都放在com.afeng.pojo这个包下
@Component
为Product类加上@Component注解,即表明此类是bean
@Component("p") public class Product {
为Category 类加上@Component注解,即表明此类是bean
@Component("c") public class Category {
另外,因为配置从applicationContext.xml中移出来了,所以属性初始化放在属性声明上进行了。
private String name="product 1";
private String name="category 1";