• spring~1


    1、什么是spring?

      spring是一个开源框架,是为了解决企业应用开发的复杂性而创建的。框架的优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。spring使用Javabean来完成以前只可能由EJB完成的事情。spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何一个Java应用都可以从spring中受益。spring的核心是控制反转和切面编程。

    控制反转(IOC):在传统的java开发模式中,需要一个对象时,我们使用new或getInstance()方法直接或间接调用构造方法创建对象,但在Spring开发模式中,Spring容器使用了工厂模式创建所需要的对象,不需要自己创建对象,直接使用Spring容器提供的对象即可。

    依赖注入(DI):依赖注入需要有IOC的环境,使用javabean对象的set方法或带参数构造方法,在创建对象时将其属性自动设置为所需值得过程,就是依赖注入的方法。

    面向切面编程(AOP):在面向对象编程(OOP)中,将事务抽象为一个个的对象,在面向切面编程中,我们将多个对象中类似的方面抽象为切面,对这些切面进行一些如权限管理、事务管理等公用操作处理的过程就是面向切面编程的思想。AOP的底层是基于动态代理实现的,如果是接口就使用JDK动态代理,如果是类就使用CGLIB方式实现动态代理。

    2、spring的优点?

      方便耦合,简化开发

      spring就是一个大工厂,可以将所有的对象创建和依赖关系维护交给spring管理

      AOP编程的支持。

      spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能

      声明式事务的支持。

      只需要通过配置就可以完成对事务的管理,而无需手动编程

      方便程序的测试。

      spring对Junit4支持,可以通过注解方便的测试spring程序

      方便集成各种优秀框架

      spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架的直接支持

      降低JavaEE API的使用难度

      spring对JavaEE开发中非常难用的一些API,都提供了封装,使这些API应用难度大大降低。

    3、spring中的工厂(容器)

      ApplicationContext接口有两个实现类:

        (1)、ClassPathXmlApplicationContext:加载类路径下spring的配置文件

        (2)、FileSystemXmlApplicationContext:加载本地磁盘下spring的配置文件

      BeanFactory(过时),与ApplicationContext的差别:

        BeanFactory是在getBean的时候才会生成类的实例

        ApplicationContext在加载applicationContext.xml(容器启动)时候就会创建类的实例。

    4、spring的相关配置

    (1)、id属性和name属性标签的配置

      id:给Bean起个名字。在约束中采用ID的约束:唯一。即ID必须具有唯一性。必须以字母开始,可以使用字母、数字、连字符、下划线、句号、冒号,id不能出现特殊字符。

      name:给Bean起个名字。没有采用ID的约束。name可以出现特殊字符。如果<bean>没有id的话,name可以当做id使用。

    (2)、scope属性:Bean的作用范围

      singleton:默认值,单例的。在整个应用中,只创建bean的一个实例。

      prototype:多例的。每次注入或者通过spring应用上下文获取的时候,都会创建一个新的bean实例。

      request:在web应用中,为每个请求创建一个bean实例。

      Session:在web应用中,为每个会话创建一个bean实例。

    5、spring的Bean的属性注入:

      构造方法的方式注入属性

      set方法的方式注入属性

  • 相关阅读:
    POJ 3614 Sunscreen
    POJ 2431 Expedition
    如何解决inline-block元素的空白间距 css 完美解决
    li的inline-block出现间隙原因,解决方案
    基线baseline
    CSS IE Hack
    css实现页面文字不换行、自动换行、强制换行
    IE 常见bug
    IE haslayout 问题引起的常见 bug
    CSS Cross-Browser Inline-Block
  • 原文地址:https://www.cnblogs.com/xiaoxli/p/9591341.html
Copyright © 2020-2023  润新知