Spring学习总结

初步认识了spring并学习了反转控制和依赖注入:

    * Spring是什么:

        Spring是一个开源框架,为了解决企业应用开发的复杂性而创建的,但现在已经不止应用于企业应用。

        是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架:

    ·· 从大小与开销两方面而言Spring都是轻量的。

    ·· 通过控制反转(IOC)的技术达到松耦合的目的。

    ·· 提供了面向鞋面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发。

    ·· 包含并管理应用对象的配置和生命周期,这个意义上是一种容器。

    ·· 将简单的组件配置,组合成为复杂的应用,这个意义上是框架。

    *  Spring适用范围:

         构建企业应用(SpringMVC+Spring+Hibernate/ibatis)。

         单独使用Bean容器(Bean管理)。

         单独使用AOP进行切面处理。

         其他的Spring功能,如:对消息的支持等。

    * 什么是IOC

         IOC:控制反转,控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是

        由外部容器负责创建和维护

         DI(依赖注入)是其一种实现方式

         目的:创建对象并且组装对象之间的关系

    * Bean容器初始化

        基础:两个包

    -- org.springframework.beans

    -- org.springframework.context

    -- BeanFactory提供配置结构和基本功能,加载并初始化Bean

    -- ApplicationContext保存了Bean对象并在spring中被广泛使用

        方式,ApplicationContext

    -- 本地文件

    -- Classpath

    -- Web应用中依赖servlet或Listener

        实现方式

    -- 文件:   

 FileSystemXmlApplicationContext context = 

    new FileSystemXmlApplicationContext("xml文件路径");

    -- Classpath    

ClassPathXmlApplicationContext context = 

    new ClassPathXmlApplicationContext("相对路径");

     -- Web应用    

<listener>

    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<servlet>

    <servlet-name>context</servlet-name>

    <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>

    <load-on-startup>1</load-on-startup>
</servlet>

Spring框架中的DI的解释与使用

       解释: Dependency Injection依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件。

       使用:在beans.xml中配置依赖注入                   

<?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
                            http://www.springframework.org/schema/beans/springbeans.xsd">
        <!--配置一个bean[对象]-->
        <bean id="userService" class="com.cyh.service.IUserServiceImpl">
        <!--依赖注入数据-->
             <property name="name" value="caiyuhao"></property>
        </bean>
</beans>

BeanFactory和ApplicationContext对比

  • BeanFactory采取延迟加载,第一次getBean时才会初始化bean

  • ApplicationContext是及时加载,对BeanFactory扩展,提供了更多功能

    • 国际化处理

    • 事件传递

    • Bean自动装配

    • 各种不同应用层的Context实现

Spring中的作用域:

类别说明
singleton在Spring IoC容器中仅存在一个Bean实例,Bean以单例方式存在,默认值。
prototype每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行new XxxBean()。(可以理解成多例)
request每次HTTP请求都会创建一个新的Bean,该作用域仅适用于WebApplicationContext环境。
session同一个HTTP Session共享一个Bean,不同Session使用不同Bean,仅适用于WebApplicationContext环境。
globalSession一般用于Portlet应用环境,该作用域仅适用于WebApplicationContext环境。

其中我们需要掌握前两个,一个是单例singleton,意思是每次创建bean对象,无论创建几个,都是同一个对象实例;

一个是多例prototype,意思是每次创建的都是不同的对象,不是同一个。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值