zoukankan      html  css  js  c++  java
  • Spring学习笔记

    Spring IoC容器

      Inverse of Controll-控制反转(也称为DI-依赖注入)

      1)用来管理对象之间的依赖
      2)一般采用构造方法、工厂方法、set方法来注入依赖

      3)反转了原来的由对象自我控制依赖的实例化和定位

    spring AOP

      aspect Oriented Programming (面向切面编程)

      1.通知(Advice):
        通知定义了切面是什么以及何时使用。描述了切面要完成的工作和何时需要执行这个工作。
      2.连接点(Joinpoint):
        程序能够应用通知的一个“时机”,这些“时机”就是连接点,例如方法被调用时、异常被抛出时等等。
      3.切入点(Pointcut)
        通知定义了切面要发生的“故事”和时间,那么切入点就定义了“故事”发生的地点,例如某个类或方法的名称,Spring中允许我们方便的用正则表达式来指定
      4.切面(Aspect)
        通知和切入点共同组成了切面:时间、地点和要发生的“故事”
      5.引入(Introduction)
        引入允许我们向现有的类添加新的方法和属性(Spring提供了一个方法注入的功能)
      6.目标(Target)
        即被通知的对象,如果没有AOP,那么它的逻辑将要交叉别的事务逻辑,有了AOP之后它可以只关注自己要做的事(AOP让他做爱做的事)
      7.代理(proxy)
        应用通知的对象,详细内容参见设计模式里面的代理模式
      8.织入(Weaving)
        把切面应用到目标对象来创建新的代理对象的过程,织入一般发生在如下几个时机:
      (1)编译时:当一个类文件被编译时进行织入,这需要特殊的编译器才可以做的到,例如AspectJ的织入编译器
      (2)类加载时:使用特殊的ClassLoader在目标类被加载到程序之前增强类的字节代码
      (3)运行时:切面在运行的某个时刻被织入,SpringAOP就是以这种方式织入切面的,原理应该是使用了JDK的动态代理技术

    Spring 注解

      【@Autowired】 、 【@Resource】 方式进行装配,这两个注释的区别是
        @Autowired 默认按类型装配
        @Resource 默认使用安名称装配,当找不到与名称匹配的bean时才会安类型转配

      @Autowired注解是按类型装配依赖对象,默认情况下它要求依赖对象必须存在。
        如果允许null值,可以设置它的required属性为false。
        如果想使用按名称装配,可以结合 [@Qualifier] 注解一起使用.

      【@Component】
        是所有受Spring 管理组件的通用形式,@Component注解可以放在类的头上,@Component不推荐使用。

      【@Controller】

        用于标注控制层组件(如struts的action)

        注:如果@Controller不指定其value【@Controller】,则默认的bean名字为这个类的类名首字母小写,如果指定value  @Controller(value="UserAction")或者         @Controller("UserAction"),则使用value作为bean的名字。

      【@Scope】

        @Scope("prototype")表示将Action的范围声明为原型,可以利用容器的scope="prototype"来保证每一个请求有一个单独的Action来处理,避免struts中Action的线程安全问题。spring 默认scope 是单例模式(scope="singleton"),这样只会创建一个Action对象,每次访问都是同一Action对象,数据不安全,struts2 是要求每次次访问都对应不同的Action,scope="prototype" 可以保证当有请求的时候都创建一个Action对象

      【@Service】

        对应的是业务层Bean

      【@Repository】

        对应数据访问层Bean

  • 相关阅读:
    Linux下Redis的安装和部署
    js实现复制到剪贴板功能,兼容所有浏览器
    解决file_get_contents无法请求https连接的方法
    PHP使用正则表达式验证电话号码(手机和固定电话)
    php MYSQL 一条语句中COUNT出不同的条件
    学到的较复杂的 mysql 语名
    数据库相关 sql 语句
    php对象比较
    魔术方法
    inner join left join right join
  • 原文地址:https://www.cnblogs.com/helloquan/p/5818092.html
Copyright © 2011-2022 走看看