Spring(配置文件和预初始化)

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也配置了延迟加载,此时会使用局部的延迟加载配置

经验分享 程序员 微信小程序 职场和发展