`
阅读更多
spring概念及其应用:
  IOC:
    管理对象之间的依赖关系和生命周期。将对象之间的依赖耦合关系抽取成模块,由IOC容器管理,提高程序的模块性和灵活性。
    org.springframework.beans.factory.BeanFactory接口定义了对象管理的基本方法,包括创建对象,检查对象的属性、检查IOC容器是否包含该对象。是不是单例的。
    对象之间的依赖关系通常通过XML文件配置好,交给spring的ioc容器管理。基本配置:
    定义bean
      <bean id="usedao" class="com.demo.dao.UserDAO" />
      <bean name="userdao" class="com.demo.dao.UserDAO" />
    其他属性:
      scope : 定义对象的形态,可选值: singleton / prototype
      depends-on:所依赖的对象,必须在本对象初始化之前初始化,其值为其他bean的ID值。
      dependency-check:在注入属性后,是否执行对象属性的依赖检查,其值为:none / simple /object / all
      autowire: 对象注入的方式,一般用byName / byType 两种方式。
      lazy-init:延迟初始化,true 、 false
      abstruct:定义是否为抽象类,此类可以不存在。
      parent:java的继承概念的体现。用于指定对象的abstruct类
     
    DI注入依赖:
      setter方式:
         <property name="atrributeName" value="aa" />
         <property name="attributeName" ref="beanId" />
         <pooperty name="attributeName">
             <idref local="" /> //idref 和value 同义,用于将其他bean的id值作为一个字符串注入进来,local只是使id值
             <idref bean="" />  //idref 和value 同义,用于将其他bean的id值作为一个字符串注入进来,bean可以使id或name值
             <ref local="" />  //不能跨xml文件,只能指定其他bean的id值
             <ref bean="" />  //跨xml文件 ,指定其他bean的id或name值
             <ref parent="" /> //父容器bean的id或name值
         </property>
      constructor方式:
        <constructor-arg index="0" ref="" />             // 将对应的bean注入到索引为0的构造函数中
        <constructor-arg index="1" ref="" /> // 将对应的bean注入到索引为1的构造函数中
        <constructor-arg type="java.lang.String" ref="" />//  根据类型匹配注入参数
        <constructor-arg type="int" value="1233" /> // 根据类型注入参数
           构造函数可以凭借索引和类型区别注入的参数,但spring推荐索引方式,这样可以避免由于类型冲突造成的错误
          
        注入java.util.List / Map / Set 和 数组:
         <property name="list" >
           <list>
              <value>234</value>
              <ref bean="otherBean" />
           </list>
         </property>
         <property name="set" >
           <set>
              <value>234</value>
              <ref bean="otherBean" />
           </set>
         </property>
         <property name="array" >
           <list>
              <value>234</value>
              <ref bean="otherBean" />
           </list>
         </property>
         <property name="properties" >
          <props>
             <prop key="key1" >prop1</prop>
             <prop key="key2" >prop2</prop>
          </props>
         </property>
         <property name="map">
            <map>
               <entry>
                  <key>key1<key>
                  <value>value1</value>
               </entry>
               <entry>
                 <key>key2</key>
                 <value>vlaue2</value>
               </entry>
            </map>
         </property>
        
 
  AOP: 面向切面编程
    aspect: 切面模块化的类。此类中包含了 advice 、pointcut
    advice: 横切面关注点实现,为before 、 after 、 after returning 、 after throwing 、around等类型
    pointcut: advice其作用的范围,通过相关表达式创建
    jointpoint: advice起作用的点
    weave:    将目标对象和横切面关注点代码组织的过程
    introduce: 动态的将方法添加的目标对象里面
    proxy:  代理类 ,兄弟代理  JDK Dynamic proxy、 父子代理  cglib
    target: 代理模式的目标类
  
   具体采用哪种方式,spring会自动选择,关键点: target是否实现了接口。JDK Dynamic proxy 、cglib
   强制待用cglib方式需配置 :<aop:spring-autoproxy target-proxy-class="true"/>
   
    spring支持annotation和配置文件方式挂历切面类:
       annocaton:
          @Aspect
          @Pointcut("execution(* com.demo.manger.*.*(..))")
          @Before("allAddMethod()")
          @After("allAfterMethod()")
          <aop:spring-autoproxy />启用spring对annotation的支持
         
         
       XML配置方式:
          <aop:config>
             <aop:aspect id="xmlAspect" ref="" >
                <aop:pointcut id="myPointcut" expressing="execution(* add*(..))" />
                <aop:advice pointcut-ref="myPointcut" method="beforeAdd()" />
             </aop:aspect>
          </aop:config>
   
   
   
分享到:
评论

相关推荐

    spring小结之配置二级缓存!

    本文将围绕“Spring小结之配置二级缓存”这一主题,详细阐述二级缓存的概念、作用以及如何在Spring中进行配置。 首先,二级缓存是指在应用程序中的第一级缓存(通常是数据库连接池提供的缓存)之外的另一层缓存机制...

    Spring框架小结

    ### Spring框架概述 Spring框架作为Java开发领域中最受欢迎的企业级应用程序框架之一,其核心特性包括控制反转(Inversion of Control, IoC)、依赖注入(Dependency Injection, DI)、面向切面编程(Aspect ...

    Spring_AOP_学习小结 Spring_AOP_学习小结 Spring_AOP_学习小结

    Spring AOP,即面向切面编程,是Spring框架的核心组件之一,它允许程序员在不修改原有业务代码的情况下,对程序进行功能增强。本篇文章将详细阐述Spring AOP的基本概念、种类、代理原理、通知类型以及切入点,帮助你...

    Spring 个人小结

    spring 个人小结 ,工厂模式 源码解析 ,AOP ,IOC 隔离事务

    spring学习小结

    【Spring 框架学习小结】 Spring 是一个流行的 Java 应用开发框架,它以其控制反转(Inversion of Control, IOC)和面向切面编程(Aspect-Oriented Programming, AOP)为核心特性,被誉为轻量级框架。下面将详细...

    Spring3.2小结

    Spring 3.2 是一个重要的版本,它在Spring框架的基础上提供了更多增强的功能和优化,尤其在依赖注入(Dependency Injection,DI)和控制反转(Inversion of Control,IoC)方面。Spring是一个开源的Java框架,它旨在...

    Spring Boot小结.xmind

    Spring Boot小结.xmind

    Spring笔记和小结

    Spring框架是Java开发中广泛应用的一个开源框架,以其强大的功能和灵活性深受开发者喜爱。它通过提供IoC(控制反转)和AOP(面向切面编程)等核心特性,简化了企业级应用的开发工作。在本笔记中,我们将探讨Spring...

    spring 学习小结笔记

    Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(DI)和面向切面编程(AOP)功能而闻名。本笔记将深入探讨Spring的核心概念,包括如何与Hibernate结合访问数据库,以及如何利用JDBC进行对象化的数据...

    spring 个人小结 源码分析机制原理

    本篇文章将基于标题"spring 个人小结 源码分析机制原理"及描述,深入探讨Spring的核心机制、源码分析以及创建Bean的过程。 首先,Spring的BeanUtils组件在处理Bean时,有一个重要的区别:Apache的BeanUtils支持`...

    Java中Spring获取bean方法小结

    在Java开发中,Spring框架是不可或缺的一部分,它提供了一个强大的依赖注入(DI)和面向切面编程(AOP)的容器。Spring的核心在于其BeanFactory和ApplicationContext,它们使得对象的管理和装配变得简单。这里我们将...

    spring boot实战.pdf高清无水印

    1.3 小结 18 第2章 开发第一个应用程序 19 2.1 运用Spring Boot 19 2.1.1 查看初始化的Spring Boot新项目 21 2.1.2 Spring Boot项目构建过程解析 24 2.2 使用起步依赖 27 2.2.1 指定基于功能的依赖 28...

    Spring攻略PDF版

     1.6 小结   第2章 Spring简介   2.1 Spring Framework   2.1.1 Spring的模块介绍   2.1.2 Spring的发布版本   2.1.3 Spring的项目   2.2 安装Spring Framework   2.2.1 问题描述  ...

    spring+hibernate出错小结

    NULL 博文链接:https://tcrct.iteye.com/blog/243252

    Spring总结(四)

    Spring个人总结,基于Annotation注解的方式开发,配置

    Spring攻略中文版PDF

     1.6 小结   第2章 Spring简介   2.1 Spring Framework   2.1.1 Spring的模块介绍   2.1.2 Spring的发布版本   2.1.3 Spring的项目   2.2 安装Spring Framework   2.2.1 问题描述  ...

    Spring攻略英文版(附带源码)

     1.6 小结   第2章 Spring简介   2.1 Spring Framework   2.1.1 Spring的模块介绍   2.1.2 Spring的发布版本   2.1.3 Spring的项目   2.2 安装Spring Framework   2.2.1 问题描述   2.2.2...

    Struts2+Hibernate+Spring项目小结――Struts2部分总结

    "educationSelectItemInfos" executeResult="false" /&gt; ...在实际项目中,还需要结合Hibernate进行持久层操作,以及Spring进行依赖注入和事务管理,共同构建出完整的SSH(Struts2 + Hibernate + Spring)企业级应用。

    spring 3.1中的cache小结

    在Spring 3.1版本中,引入了对缓存的支持,极大地提高了应用程序的性能和效率。这个特性使得开发者能够方便地在应用中集成缓存机制,而无需深入了解底层缓存库的实现细节。本文将围绕Spring 3.1的缓存功能进行详细...

Global site tag (gtag.js) - Google Analytics