Spring的好处:Spring能消除在许多工程中常见的对Singleton的过多使用;
Spring能消除各种各样自定义格式的属性文件的需要,使配置信息一元化;
Spring能帮助我们真正意义上实现针对接口编程;
使用Spring构建的应用程序易于单元测试;
Spring支持JDBC和O/R Mapping产品(Hibernate);
MVC web框架,提供一种清晰,无侵略性的MVC实现方式;
Spring能使用AOP提供声明性事务管理,可以不直接操作JTA也能对事务进行管理。
----------
IoC(Inversion of Control控制反转,也称依赖注入):不创建对象,但是描述创建它们的方式,在代码中不直接与对象和服务器连接,但在配置文件中描述哪一个组件需要哪一项服务,容器负责将这些联系在一起。
----------
IoC组件注入方式:
1 接口注入
2 通过set方法注入(设值注入)重点掌握
3 通过构造注入
----------
Spring的两个容器:Bean工厂和ApplicationContext联系
两者的关系:
ApplicationContext扩展Bean工厂接口;
ApplicationContext提供附加功能;
Bean工厂延迟加载所有的Bean,直到getBean被调用;
ApplicationContext则在初始化自身时检验,为立即加载。这样有利于检查所依赖属性是否注入,所以通常情况下我们选择使用ApplicationContext;
Spring容器中的Bean缺省状态下是单例模式。
----------
常用实现:
ClassPathXmlApplicationContext spring配置文件必须放在src目录下;
FileSystemXmlApplicationContext配置文件放在工程下;
XmlWebApplicationContext根据布署路径寻找,
----------
Bean中id和name的区别:
id是唯一标识bean,不能用特殊字符,不能数字开头,在bean引用的时候只能有id指向你需要的bean
name可以用特殊字符,并且一个bean可以用多个名称:name="bean1,bean2,bean3"用逗号隔开,如果没有id,则neme的第一个名称默认是id。