码迷,mamicode.com
首页 > 编程语言 > 详细

Spring学习笔记——Spring之旅

时间:2017-10-10 17:43:15      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:文件中   actor   简化   轻量   方式   nbsp   声明   简单   nts   

1、简化Java开发

  Spring——Spring是一个开源框架,它是为了解决企业级Java开发的复杂性而创造的。

  为降低Java开发的复杂性,Spring采用了以下四种关键策略:

  • 基于POJO的轻量级和最小侵入性编程;  
  • 通过依赖注入和面向接口实现松耦合;  
  • 基于切面和惯例进行声明式编程;
  • 通过切面和模板减少样板式代码。 

1.1、激发POJO潜能——非倾入式编程模式,让原始POJO和Spring框架保持独立;

1.2、依赖注入——DI

  通过DI,对象的依赖关系将由系统中负责协调各对象的第三方组件在创建对象的时候进行设定,对象无需创建和管理他们的依赖关系。

  优点:让相互协作的软件组件之间保持松耦合——如果一个对象只通过接口来表明依赖关系,那这种依赖就可以在接口毫不知情的情况下用不同的实现类进行替换。

  依赖注入注入方式分类:

  • 构造器注入;
  • setter方法注入;

1.3、应用切面——AOP

  AOP允许我们把遍布应用各处的功能分离出来形成可重用的组件,并以声明的方式将他们应用到他们需要影响的组件中,使这些组件具有更高的内聚性和更关注自身业务。

  声明方式:

<beans>
    <bean id="aopId"></bean><!--  声明bean  -->
    <aop:config>
        <aop:aspect ref="aopId">
            <aop:pointcut id="" expression=""/><!--  定义切点  -->
            <aop:before pointcut-ref="embark" method=""/><!--  声明前置通知  -->
            <aop:after pointcut-ref="embark" method=""/><!--  声明后置通知  -->
        </aop:aspect>
    </aop:config>
</beans>

1.4、使用模版消除样板式代码

2、Spring容器

  在基于Spring的应用中,应用对象生存于Spring 容器中,Spring容器负责创建对象,装配对象,管理对象的生命周期(从创建到死亡),容器是Spring框架的核心。

  Spring容器分类

  • Bean工厂——org.springframework. beans.factory.BeanFactory接口定义。Bean工厂是最简单的容器,提供简单的DI支持;
  • 应用上下文——org.springframework.context.ApplicationContext接口定义 ,应用上下文基于BeanFactory构建,并提供应用框架级别的服务,相较于Bean工厂功能更加强大。

2.1、Spring应用上下文

  • AnnotationConfigApplicationContext:从一个或多个基于Java的配置类中加载Spring应用上下文。
  • AnnotationConfigWebApplicationContext:从一个或多个基于Java的配置类中加载Spring Web应用上下文。
  • ClassPathXmlApplicationContext:从类路径下的一个或多个XML配置文件中加载上下文定义,把应用上下文的定义文件作为类资源。
  • FileSystemXmlapplicationcontext:从文件系统下的一个或多个XML配置文件中加载上下文定义。
  • XmlWebApplicationContext:从Web应用下的一个或多个XML配置文件中加载上下文定义。

2.2、Bean的生命周期

技术分享

3、Spring风景线

技术分享

 

Spring学习笔记——Spring之旅

标签:文件中   actor   简化   轻量   方式   nbsp   声明   简单   nts   

原文地址:http://www.cnblogs.com/zhuxiong/p/7645856.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!