什么是Spring?
Spring是轻量级的IoC/DI,AOP容器的开源框架,构建轻量级的JavaEE应用
IoC和DI
IoC(反转控制) : 将原本我们在程序中手动创建的对象交由Spring容器管理
没用Ioc之前,我们要负责管理对象的创建和组装,使用IoC之后我们直接从容器中查找就可以了
DI(依赖注入) : 将对象的属性(常量,对象)设置给对象
ApplicationContext和BeanFactory
BeanFactory : IoC容器的基本实现,是Spring里最底层的接口
以Factory结尾表示它是工厂类,负责生产和管理Bean的工厂
采用了延迟加载的方式,只有在getBean()时才会对该Bean进行实例化
ApplicationContext : 继承了BeanFactory,集成了AOP,事务统一资源加载等
推荐使用ApplicationContext,采用的是启动后就预载所有的单例Bean
Spring启动
SpringIoc启动时会通过读取xml配置文件来配置元数据,通过元数据对应用中的各个对象进行实例化及装配
@RunWith(SpringJUnit4ClassRunner.class) : 在测试方法之前启动容器
@ContextConfiguration("classpath:Xxx.xml") : 指定加载的配置文件
Bean标签中的id和name
id : 不可重复,有命名规范
name : 可重复,后者覆盖前者,没有命名规范
Bean的作用域
scope="作用域",默认使用单例singleton
如果是prototype不会交给Spring容器管理(不需要存起来),只会创建和初始化
DI注解
@AutoWired注解 : 完成字段或属性的注入,可以让Spring自动把属性或字段需要的对象找出来,并注入上
@Resource : 首先按照名字去找,如果找到就使用setter注入,如果名字找不到再按类型去找
IoC注解
@Repository : 标注数据访问组件,DAO实现类上
@Service : 标注业务层实现类上
@Controller : 标注控制层类上
@Component : 标注Spring管理的Bean