Spring基础

1、什么是Spring

  Spring是一个开元的轻量级的应用开发框架,其目的是用于简化企业级应用开发,减少侵入;

  Spring提供的IOC和AOP应用,可以将组件的耦合度降至最低,即解耦,便于系统日后的维护和升级;

  Spring为系统提供了一个整体的解决方案,开发者可以利用它本身的功能外,也可以与第三方框架和技术整合应用,可以自由选择采用哪种技术进行开发。

2、为什么要使用Spring?

  Spring的本质是管理软件中的对象,如何创建对象和维护对象之间的关系

3、Spring容器介绍

  在Spring容器中任何的Java类和JavaBean都被当成Bean处理,这些Bean通过容器管理和应用。

  Spring容器实现了IOC和AOP的机制,这些机制可以简化Bean对象之间的解耦;

  Spring 容器有BeanFactory和ApplicationContext两种类型;

4、什么是JavaBean

  一种简单规范的Java对象

5、何时使用Spring?

  当需要管理JavaBean对象时就可以使用

  Spring是最简洁的对象管理方案之一。

6、Spring容器的实例化 如何创建对象

  ApplicationContext继承自BeanFactory接口,拥有更多的企业级方法,推荐使用该类型,实例化方法如下:

    //加载文件系统中的配置文件实例化

    String conf="C:\applicationContext.xml";

    ApplicationContext ac=new FileSystemXmlApplicationContext(conf);

    //加载工程classpath下的配置文件实例化

    String conf="applicationContext.xml";

    ApplicatonContext ac= new ClassPathXmlApplicationContext(conf);

7、如何使用Spring?

  遵守Spring定义的规则,基于配置和默认规则,减少代码的书写

8、Spring容器的使用

  从本质上讲,BeanFactory和ApplicationContext仅仅只是一个维护Bean定义以及相互依赖关系的高级工厂接口。通过BeanFactory和ApplicationContext我们可以访问bean定义。

  首先在容器配置文件applicationContext.xml添加Bean定义

  <bean id="标识符" class="Bean类型"/>

  然后在创建BeanFactory和ApplicationContext容器对象后,调用getBean()方法获取Bean的实例即可

  getBean("标识符")

9、Bean的实例化

  Spring容器创建Bean对象的方法有一下3种

    用构造器来实例化

    使用静态工厂方法实例化

    使用实例工厂方法实例化

  将对象的创建规则告诉Spring,Spring会帮你去创建对象;

  基于配置和默认规则,减少了代码的书写!

10、构造方法实例化

  <bean id="" class="'/>

  i或name属性用于指定Bean的名称,用于从Spring容器中查找这个Bean对象

  class用于指定Bean的类型,会自动调用无参数构造器创建对象

11、使用静态工厂实例化

  <bean id="" class="" factory-method="getInstance"/>

  factory-method属性用于指定工厂中创建Bean对象的方法,必须用static修饰的方法。

12、使用实例化工厂方法实例化

  <bean id="" class=""/>

  <bean id=""  factory-bean="上一个的id" factory-method="getTime"/>

  factory-bean属性用于指定工厂Bean对象;

  factory-method属性用于指定工厂中创建Bean对象的方法。

13、Bean 的命名

  Bean的名称

    在Spring容器中,每个Bean都需要有名字(即标识符),该名字可以用<bean>元素中的id或name属性指定

    id属性比name严格,要求具有唯一性,不允许用"/"等特殊字符

  Bean的别名

    为已定义好的Bean,再增加另外一个名字引用,可以使用<alias>指定

    <alias name="fromName" alias="toName"/>

14、Bean的作用域(见图示)

15、Bean的声明周期回调

  指定初始化回调函数方法

    <bean id="" class="" init-mmethod="init'></bean>

  指定销毁回调方法,仅适用于singleton模式的bean 

    <bean id="" class="" detroy-method=""></bean>

  提示:指定销毁回调方法,仅适用于singleton模式的bean

  在顶级的<beans/>元素中的default-init-method属性,可以为容器所有<bean>指定初始化回调方法

  在顶级的<beans/>元素中的default-destroy-method属性,可以为容器所有<bean>指定销毁回调方法

16、Bean的延迟实例化

  在ApplicationContext实现的默认行为就是在启动时将所有singleton bean提前实例化

  如果不想让一个singleton bean在ApplicationContext初始化时被提前实例化,可以使用<bean>元素的lazy-init="true"属性改变

  一个延迟化Bean将在第一次被用到时实例化

  <bean id="" class="" lazy-init="" />

  在定义的<beans>元素中的default-lazy-init属性,可以为容器所有<bean>指定延迟实例化特性

17、指定Bean依赖关系

  当一个bean对另一个Bean存在依赖关系的时候,可以利用<bean>元素的depends-on属性指定

    <bean id="beanOne" class="" despends-on="manager"/>

    <bean id="manager" class=""/>

  当一个Bean对多个Bean存在依赖关系时,despends-on属性可以指定多个bean名,用逗号隔开

    <bean id="" class="" depends-on="manager1,manager2"/>

  

你可能感兴趣的:(spring)