Spring(配置文件和预初始化)
Spring可以整合其他框架
后端整合 | 前端整合
JDBC、ORM技术 | Spring MVC、Struts 2
OXM | 各种视图技术(JSP)
事务管理 |
-----------------------------------
AOP 面向切面编程
-----------------------------------
IoC、Context
企业中的项目都是框架的整合:比如三大框架整合:
---SSH(Strut2,Spring,Hibernate)
---SSM(Strut2,Spring,Mybatis),SSH(SpringMVC,Spring,Hibernate)
---SSM(SpringMVC,Spring,Mybatis)
3.Spring的本质
Spring的本质:通过XML配置来驱动Java代码。
Spring用的熟:几乎所有Java代码都放在XML去配置。
要求:眼中看到的XML配置,心中想的是执行的Java代码。
bean元素 :驱动使用new调用构造器。 默认它总是调用无参数的构造器。
如果想控制它调用有参数的构造器,就需要在<bean.../>元素里添加<constructor-arg.../>子元素,每个该元素代表一个构造器参数。
<constructor-arg.../>子元素里value属性指定的值优先被当成String类处理。
为了明确地指定该值的类型,可以指定type属性。
property元素: 驱动它调用setter方法。 对象创建出来之后,立即就会被调用。
<constructor-arg.../>元素: 驱动调用有参数的构造器。
Spring的容器 Spring容器: BeanFactory(接口) ↑ ApplicationContext(功能更强大) ↗ ↖ ClassPathXmlApplicationContext FileSystemXmlApplicationContext - ClassPathXmlApplicationContext: 从类加载路径搜索配置文件,得到Spring的容器对象 - FileSystemXmlApplicationContext:从绝对路径或相对路径搜索配置文件 1.预初始化bean Spring默认会在加载配置文件初始化ApplicationContext的时候自动创建bean对象,这种形式称为预初始化。 预初始化只会初始化 Single Instance 的bean, bean默认都是Single Instance的。 可以通过配置来取消预初始化,取消以后就成为延迟加载的bean. -- a.在<beans>全局配置文件中加上default-lazy-init="true" -- b.在需要延迟加载的bean上配置lazy-init="true" -- 当局部bean配置了延迟加载,全部的beans也配置了延迟加载,此时会使用局部的延迟加载配置
