zoukankan      html  css  js  c++  java
  • Spring初学

    一。spring体系结构
    spring核心组件
    1.Beans(包装应用程序自定义对象Object,Object中存有数据)
    2.Core (资源加载,资源抽象,建立维护与bean之间的一些关系所需的一些工具)
    3.Context (一个bean关系的集合)
    4.Expression Language
    Spring设计理念
    1.spring是面向Bean的编程
    2.spring两大核心技术 1.控制反转 2.面向切面编程
    3.spring优点
    低侵入设计
    独立于各种应用服务器
    依赖注入特性将组件关系透明化,降低了耦合度
    面向切面编程特性允许将通用任务进行集中式处理
    与第三方宽假的良好整合

    二。spring IOC(Inversion of Control)
    定义和原理:
    理解一:将控制组件的控制权从代码本身转移到外部容器(Spring容器)

    组件化的思想:分离关注点,使用接口,不再关注实现
    依赖注入:将组件的构建和使用分开
    目的:解耦和,实现每个组件只关注组件内部的事情
    要点:明确定的接口
    IOC的好处:解耦和 利于程序扩展
    IOC:思想控制反转
    DI:实现层面,依赖注入
    applicontionContext.xml 容器
    spring配置文件
    <bean id="hellSpring" class="cn.springdemo.HellSpring">
    //指定被赋值属性名
    <property name="who">
    <!--赋值内容-->
    <value>Spring</value>
    </property>
    </bean>


    AOP定义和原理(Aspact Oriented Programming)面向切面编程
    目标:让我们可以专心做事 日志记录 事务处理 异常扑获

    原理:
    1.将复杂的需求分解出不同方面,将公共功能集中解决
    2.采用代理机制组装起来运行,在不改变源程序的基础上对代码段进行增强处理,增加新的功能。
    所谓面向切面编程,是一种通过预编译方式和运行期动态代理实现在不修改源码的情况下给程序动态添加功能的技术。
    bean的作用域
    Struts2: Action类多例的。 Struts1 Action是单例的
    S2: Servlet 单例的 xxx_jsp.java 底层也是通过单例多线程来处理客户端请求的
    JSP:单例的 xxx.jsp
    scope="prototype" 原型模式(N个对象):真正使用时才会创建,每获取一次,都会创建不同对象
    scope="singleton" 单例模式:容器初始化时需要使用name建,每次获取的都是同一个对象,默认值
    三。AOP相关术语
    增强处理(advice)
    前至增强
    后置增强
    环绕增强。异常抛出增强,最终增强
    切入点(pointcut)
    连接点(Join Point)
    切面(Aspect)
    目标对象(Target object)
    aop代理(AOP proxy)
    织入(Weaving)

    前置增强接口 MethodBeforeAdvice
    后置增强接口 AfterReturningAdvice

    6.BeanFactory 使用对象的时候创建,这是和ApplicationContext的区别
    Resource resource=new ClassPathResource("applicationContext.xml");
    BeanFactory ctx=new XmlBeanFactory(resource);
    获取到上下文,并没有初始化bean,等待使用bean的时候才初始化
    ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");

    所有的bean已经初始化了

    http://www.yesky.com/imagesnew/software/spring/beans.html

    7.代码通过getBean()方法从容器获取指定的bean实例,容器首先会调用Bean类的无参构造器,创建实例对象

  • 相关阅读:
    【转】python 面向对象(进阶篇)
    【转】Python 面向对象(初级篇)
    【转】MySQL— pymysql and SQLAlchemy
    【转】MySQL— 索引
    pycharm+pygame飞机大战
    python+Django创建购物网站(二)
    python语言系统学习(三)
    复习NLP-实战(九)----语言模型
    Linux常用命令--跟K8S相关
    Nginx-ingress-controller部署应用
  • 原文地址:https://www.cnblogs.com/wangbenqing/p/7227334.html
Copyright © 2011-2022 走看看