• spring基础概念


    spring是轻量级的DI和AOP容器框架,

    轻量级:spring框架的jar包打包后只有2.5MB,并且spring框架开的应用的对象一般不依赖spring的类。

    依赖注入:spring提供了一种送耦合的技术,称为依赖注入(DI),以前被称为反向控制,使用DI,对象就是被动接收依赖类,而不是自己主动去找,可以将DI理解为JNDI的反转。

    面向切面:spring对面向切面变成提供了强大的支持,通过将业务逻辑从应用服务中分离出来,实现了内聚开发,应用对象只做他该做的业务逻辑,而不负责业务逻辑

    容器:spring是一个容器,因为他包含并且管理应用对象的生命周期和配置。开发人员可通过配置来控制Bean是单一实例还是每次请求生成一个实例。

    框架:spring使用简单的组件组成一个复杂的应用,在spring中应用对象通过XML文件配置组合起来

    spring由7个模块组成,开发人员不必将应用完全建立在spring框架之上,可以选择适合自己的应用模块,不使用自己不需要的模块。

    核心容器:spring的7个模块全部建立在核心容器的基础之上,在核心容器中可以找到beanFactory这个类

    1.application-Context —— web 模块

    2.AOP模块

    3.DAO - ORM 模块

    4.MCV模块

    5.JMX模块 (java管理模块)

    6.JCA模块(JavaEE连接器API)

    7.JMS (java消息服务)

    spring的bean的有效范围在spring容器之内,脱离了容器,bean就失效。

    spring的基础容器spring容器(BeanFactory)可以满足简单应用的需求,而更高级的容器,应用上下文容器(ApplicationContext),则提供企业级的服务。

    AOP的五种通知类型:

    before 前  

    After-returning 返回后

    After-throwing 抛出后

    Around 周围

    Introduction 引入

    spring获取配置bean可以后去两种容器下的配置bean,BeanFactory和applicationContext(应用上下文)。

    两种容器的区别:

    一、从ApplicationContex 应用上下文容器中获取bean和从bean工厂容器中获取bean

    具体案例:

    //从ApplicationContext中取bean

    ApplicationContext ac=new ClassPathXmlApplicationContext("com/hsp/ioc/beans.xml");

    //当我们去实例化beans.xml,该文件中配置的bean被实例(该bean scope是 singleton)从bean中取出student

               //如果我们使用beanfactory去获取bean,当你只是实例化该容器, 那么

               //容器的bean不被实例化,只有当你去使用getBean某个bean时,才会实时的创建.

               BeanFactory factory = new XmlBeanFactory(

                          new ClassPathResource("com/hsp/ioc/beans.xml"));

               factory.getBean("student");

    结论:

    1.如果使用ApplicationContext ,则配置的bean如果是 singlton不管你用不用,都被实例化.(好处就是可以预先加载,缺点就是耗内存)

    2.如果是 BeanFactory ,则当你获取beanfacotry时候,配置的bean不会被马上实例化,当你使用的时候,才被实例(好处节约内存,缺点就是速度)

    3.规定: 一般没有特殊要求,应当使用ApplicatioContext完成(90%)

    ————————————————
    版权声明:本文为CSDN博主「老妈老爹我」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_36287601/article/details/82559260

  • 相关阅读:
    rsync文件备份同步
    程序员的家!我终于拥有自己的blog了!!!
    使用APMServ服务配置如何进行Wordpress本地伪静态设置
    清理Windows.edb文件释放C盘空间(原创)
    不知道按到什么键了,代码前面出现了省略号,使用Ctrl+E+S恢复
    (转)c/c++资源(源码,开发工具)
    EditPlus自动换行
    不用外部软件,直接对文件批量重命名(转)
    C# 实现自定义处理窗体按键(整理)
    C# 控件名称缩写介绍(转)
  • 原文地址:https://www.cnblogs.com/jinsheng1027/p/11356267.html
Copyright © 2020-2023  润新知