spring体系

一、spring从体系架构上分为

1. 基本组件框架组合:Spring Framework

2.专项领域应用组件:Spring Portfolio

这个Spring Portfolio主要应用满足于特定的的应用场合:包括了spring Security/spring boot等等

这里主要阐述基本组件框架组合:Spring Framework。

二、Spring Framework

spring框架的发布版本包括了20个不同的模块。每个模块有3个JAR文件。这20个模块依据所属功能可以划分为6类不同的功能!如下图:

1. spring核心容器

    核心容器是spring框架最核心的部分,它管理着spring应用中bean的创建、配置和管理等等主要为ID依赖注入功能!该功能是spring的两大核心之一!

2. spring的AOP模块

这个模块是spring应用系统中开发切面的基础

3. 数据访问和集成:

     主要用于访问数据持久层(数据库数据等)。包括了简化的JDBC、DAO及框架型ORM如:Mybatis和Hibernate

4. Web和远程调用

    此部分解决了web应用的MVC模型。所以这里集合了spring-MVC框架。另外还支持了用于分布式场景的REST API标准等等!

5. Instrumentation:提供JVM的代理

6. 测试:这是spring的测试单元模块,可以模拟用户的请求场景等测试!

三、spring的两个核心内容

    DI【依赖注入】和AOP【面向切面】

1.  DI【依赖注入】

简化POJO老式Java开发,实现解耦!

注入的方式有很多,最常见几种注入方式【装备方式】:推荐用自动配置的机制!

1)借助JavaConfig完成显式注入:

    带有@Bean注解的方法可以采用任何必要的Java功能来产生bean实例。构造器和Setter方法只是@Bean方法的两个简单的样例!

    使用Javaconfig的时候,要创建一个带有@Configuration注解的类!

2)xml配置:

    a.要创建一个XML文件,并以<beans>元素为根

    b.创建<bean>元素【等同于javaConfig的@Bean!注解】

    c. 填写id和class(指定到对应的java类)

a/b/c完成了一个原材料Bean的定义!

<bean id="compactDisc" class="soundsystem.SgtPeppers"/>

    d. 定义另外一个<bean>为使用者,然后在这个使用者中通过constructor-arg(这是)引用材料bean的id

    d1.构造方式【引入ref】注入

<bean id="cdPlayer" class="soundsystem.CDPlayer">
   <constructor-arg ref="compactDisc" />
<bean/>

    d2.构造方式字面量【value属性】注入[这里用了spring的c命名空间等同于constructor-arg]

<bean id="compactDisc">
  class="soundsystem.BlankDisc"
  c:_tittle="THIS IS TITTLE"
  c:_artist="ARTIST NAME"
<bean/>

这个方式注入的时候可以通过<set><list>元素注入多个参数!

e. Setter注入方式!

在使用者类没有显式的编写构造函数的时候(只有默认隐式)推荐使用此方式注入!Setter方式的注入需要在<bean>元素标签中使用<property>注入到compactDisc的compactDisc属性中(setCompactDisc()Setter方法)(如下例子):property的命名空间是p!Setter同样有ref引用方式和字面量<value>方式!

<bean id="cdPlayer" class="soundsystem.CDPlayer">
   <property name="compactDisc" ref="compactDisc"/>
<bean/>

3) 自动化装配bean(推荐的方式)

 

猜你喜欢

转载自my.oschina.net/u/3697586/blog/1815327
今日推荐