Spring中的核心思想

IOC(inversion of controll)控制反转&DI(dependency injection)依赖注入。

  将对象的创建由原来(new)的方式转移到配置文件中,交给spring工厂来创建对象,spring不仅要创建对象,还要建立类与类之间的关系,因此控制反转的基础上又提出了依赖注入的概念。

  AOP(aspect oriented programming)面向切面的编程

Set注入

八种基本类型、日期类型、和数组类型注入

<bean id="empDao" class="com.lkl.empDaoImpl">
  <property name="id" value="001"></property>
  <property name="name" value="xiaoming"></property>
  <property name="price" value="99.99"></property>
  <property name="sex" value="true"></property>
<!-- 日期类型 -->
  <property name="birthday" value="1999/9/9"></property>
<!-- 数组类型 -->
  <property name="arr">
    <array>
      <value>1</value>
      <value>2</value>
      <value>3</value>
    </array>
  </property>
</bean>

引用类型、集合类型注入

<!-- 引用类型 -->
<property name="e" ref="emp"></property>
<!-- list集合类型 -->
<property name="list">
  <list>
    <value>xiaojing</value>
    <value>xiaoli</value>
  </list>
</property>
<!-- map集合类型 -->
<property name="maps">
  <map>
    <entry key="001" value="hong"></entry>
    <entry key="002" value="ceng"></entry>
    <entry key="003" value="huang"></entry>
  </map>
</property>
<!-- properties类型 -->
<property name="pro">
  <props>
    <prop key="driver"> com.mysql.jdbc.Driver</prop>
    <prop key="url"> jdbc:mysql://localhost:3306/express</prop>
    <prop key="username">root</prop>
    <prop key="password">root</prop>
  </props>
</property>

Bean的创建模式

  Singleton:单例(默认),全局唯一,一个工厂只创建一次。

  Prototype:非单例,全局不唯一,每当使用时都要重新创建一个新对象。

  注:一般在项目开发中service,dao组件单例,struts2的action必须为多例。

  Spring bean的生产原理

  原理:反射+无参构造方法

Bean的生命周期

何时创建:工厂启动,工厂中所有单例bean随之创建。多例bean每使用一次初始化一次。

何时销毁:工厂关闭,所有单例随之销毁。Spring不会负责多例bean的销毁。

原文地址:https://www.cnblogs.com/lkldeblog/p/10685897.html