01—Spring框架

粗粗12年下半年起,才发app开发都到来身边的发。

  1. Spring框架简介和官方压缩包目录介绍

  2. 工厂模式

  3. Spring环境搭建

  4. IoC详解

  5. Spring创建Bean的老三栽方法(包含两栽工厂方式)

  6. scope属性讲解

  7. DI详解

  8. Spring中几乎种注入方式

  9. Spring解析properties文件

但是也直只有是感到,没悟出自己得亲自上阵。

由要一个口做(帮朋友倒腾倒腾),而且只要跨越平台,而且前后台都要弄,而且时间少。

1. Spring框架简介及法定压缩包目录介绍

  1. 重要发明者:Rod Johnson

  2. 轱辘理论推崇者:

    2.1 轮子理论:不用还发明轮子.

    2.2 IT行业:直接采用写好的代码.

  3. Spring框架宗旨:不重发明技术,让原技术以起来更为方便.

  4. Spring几坏中心作用

    4.1 IoC/DI
       控制反转/依赖注入

    4.2 AOP      面向切面编程

    4.3 声明式事务.

    4.4 采用模板方式对其余技术的支持

    4.5 spring的定时器

    5.专注spring中之例外之版中。包的结构和名称、数量还见面生变。

     

末选择了web方式实现app,用的是jingle,http://www.cnblogs.com/x3d/p/3524835.html

二.工厂模式

厂子模式下实例化对象的一致种植设计模式。可以下降对象期间的耦合度。通过工厂对象来解耦。更适合程序设计开闭原则。

  1. 简短工厂

  2. 泛工厂

  3. 通用工厂

     

频率真的坏高,这种频率还有成本没有的意,只要用一些web知识就是好开搞定,这难道成本还免逊色也。

三.Spring环境搭建

1.导入jar包

基本jar包

 
葡京国际平台 1
 

2.创spring的配置文件

2.1spring的配备文件可以吃自由的名。默认的惯给applicationContext.xml

2.2spring的部署文件可以当路的任性位置。一般默认的我们会安放src的根下。

2.2.1使没有长约束文件。需要团结手动或联网状态下载spring的牢笼文件

3.当spring的部署文件中经<bean>标签来喻spring管理谁目标的生命周期

3.1<bean>
id:表示唯一的一个标记。不能够重新

3.2<bean>
class:把谁类实例化。

4.启动spring框架

4.1启动时指定创建哪个IOC容器

4.1.1BeanFactry:基本的IOC容器。只是缓存对象。

4.1.2ApplicationContext:高级IOC容器。是beanFactory的子接口 扩展了BeanFactory的力量。添加了如 解析properties 国际化等拍卖

 

三.IoC详解

1.IOC(Inversion of contorl)控制反转

2.操纵:实例化对象的历程

3.五花大绑:原来实例化一个目标的进程外的控制权是左右在我们程序员自己手中的。而现在周对象创建进程全交由spring来负担。

4.容器(container)并无是价值的是web容器。他无能够处理要。该容器是借助,spring缓存对象的聚合(Map<String,Object>)。

 

然而性能真的非常没有。

四.Spring创建Bean的老三种方式(包含两栽工厂方式)

 

1.BeanFactory暨ApplicationContext对象的区别

1.1创建对象的岁月

BeanFactory是当调用getBean方法时,先去创建对象。

ApplicationContext是于启动spring框架时即便出言有的目标创建好。

1.2 能力达到的分别

BeanFactory只是若一个中坚的IOC容器。只能缓存对象没额外的力。而ApplicaitonContenxt可以操作properties,国际化等。。。

 

1.运无参的构造方法

Spring的配备文件

<bean id="suibian" class="com.bjsxt.dao.SpringTest"></bean>    

 

2.以工厂模式来创建对象

<!– 使用工厂模式来构建对象 –>

    <!– 1.配置能够产生对象的工厂 –>

    <bean id="factory" class="com.bjsxt.commons.ObjectFactory"></bean>

    <!– 告知spring哪个工厂中调用的哪个方法 –>

    <bean id="test" factory-bean="factory" factory-method="createSpringTest"></bean>

 

4.使工厂遭的静态方法来得到对象

<!– 调用工厂中的静态方法获取对象 –>

<bean id="test" class="com.bjsxt.commons.ObjectFactory"  factory-method="createSpringTest"></bean>

 

广大人数总了性优化的更,但如如一条条底优化过去,成本还见面不如呢?

五.scope属性讲解

Scope属性是spring配置文件被的<bean>标签的习性。他操纵了利用什么点子来创建对象(单例,多例) scope的取值范围为:

Prototype:多例

Singleton:单例(默认值)

 

 

六.DI详解与Spring中几栽注入方式

1.DI:dependence injection

2.以构造方法完成值的流入

<constructor-arg index="" name="" type="" value=""></constructor-arg>

2.1.index: 表示构造方法中的参数的位置。注意从0开始

2.2.name:按照构造方法的参数的名目完成注入。

2.3.type:根据项目匹配岗位

2.4.value:注入的价(value一般用来存放基本数据类+String)

 

3.基给属性之流入方式

3.1 要求近似吃必使含有一个无参的构造方法。

3.2 要求性能必须提供set方法。

<bean id="suibian" class="com.bjsxt.dao.SpringTest" scope="prototype">

    <property name="msg" value="lisi"></property>

    </bean>    

 

4.渐其他种类

4.1 注入set类型

<bean id="suibian" class="com.bjsxt.dao.SpringTest" scope="prototype">

    <!– <property name="msg" value="lisi"></property> –>

    <property name="set">

     <set>

     <value>a</value>

     <value>b</value>

     <value>c</value>

     </set>

    </property>

    </bean>    

 

4.2 注入List类型

<bean id="suibian" class="com.bjsxt.dao.SpringTest" scope="prototype">

    <property name="list">

    <list>

    <value>aa</value>

     <value>bb</value>

     <value>cc</value>

    </list>

    </property>

    </bean>    

 

4.3 注入一个Map

    <bean id="suibian" class="com.bjsxt.dao.SpringTest" scope="prototype">

    <property name="map">

    <map>

    <entry key="key1">

    <value>aaa</value>

    </entry>

    <entry key="key2">

    <value>bbb</value>

    </entry>

    </map>

    </property>

    </bean>   

 

4.4 注入一个properties

    <bean id="suibian" class="com.bjsxt.dao.SpringTest" scope="prototype">

    <property name="prop">

    <props>

    <prop key="key1">

    aaaa

    </prop>

    <prop key="key2">

         bbbb

    </prop>

    </props>

    </property>

    </bean>

 

4.5 注入springIOC容器中的目标

求注入的靶子与被注入的对象还急需以ioc容器中在。

 

<bean id="userDao" class="com.bjsxt.dao.UserDaoImpl"></bean>

 

<bean id="userServie" class="com.bjsxt.service.UserServiceImpl">

<property name="userDao">

<ref bean="userDao"/>

</property>

</bean>

 

故而,对持续查找低本钱的app跨平台支付方案。

七.Spring解析properties文件

1.经以spring的布局文件被开操作properties文件的工具类。

  <!– 配置解析properties工具类 –>

  <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

  <property name="location">

  <value>/config.properties</value>

  </property>

  </bean>

 

2.自此咱们会使用命名空间来开这个工具类

事后重新张嘴。。。。。

 

 

 

titanium一直是一个不过好方案,但每当未曾履行的图景下,恐怕也如跨了各种坑,对于一个口之多少项目,是否折腾得打。

而自一度控制去试试一试跳。