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方法的方式注入属性

posted @ 2018-09-05 15:33  菠菜汤圆  阅读(102)  评论(0编辑  收藏  举报