zoukankan      html  css  js  c++  java
  • Spring归纳

    Spring总结

    bean标签的scope属性

    scope="singleton"单例模式,默认值

    scope="prototype",多例模式

    注解元素

    @Component@Controller@Service@Repository(仓库)四个注解用来创建对象(这四个对象其实是spring用来为不同的业务层服务的,不过现在还没有实现);

    @Autowired 对象属性自动注入,不需要写setter方法;

    @Resource(name="book") 对象属性注入,name为对象名;

    @Value(value="cat") 普通属性注入,value的值为字符串类型,系统会根据变量的类型自动转换;

    aop操作相关术语

    JoinPoint 连接点,要增强的方法;

    Pointcut 切入点,实际增强的方法;

    Advice 通知/增强,增强的逻辑,称为增强,比如扩展日志功能,日志功能就是增强;

    通知的种类分为前置通知,后置通知,异常通知,最终通知,环绕通知。

    切面,把增强用到切入点的过程;

    引介,一种特殊的通知,再不修改类代码的前提下,可以在运行期为类动态地添加一些方法和属性;

    Target,要增强的类;

    Weaving 织入,把advice用到Target的过程;

    aop配置切入点

    常用的表达式
    execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>)
    第一个*代表任意修饰符
    (1) execution(* day1.Book.add(..)) Bookadd方法
    (2) execution(* day1.Book.*(..))  Book中所有方法
    (3) execution(* *.*(..)) 所有类中方法
    (4) execution(* save*(..)) 所有save开头的方法

    相关概念

    ioc,控制反转反转就是可以可以通过类名、方法名等不通过硬编码的方式加载一个类、实例化一个类、调用类实例的方法,创建对象;

    DI,依赖注入,类里面的属性注入值;

    注解:代码里面的特殊标记,使用注解可以完成xml的功能;

    纵向抽取机制,利用继承,在父类里面写一个方法,然后在子类的某个方法中调用这个方法;

    横向抽取机制,底层使用动态代理方法实现;

    aspectj是一个独立的框架,和spring一起进行aop的操作;

    IOCDI详解

    控制反转就是指引入在IOC容器之前,创建对象的控制权在自己手上,而引入它之后,该控制权就在IOC容器手上了,故曰控制反转;

     IOC的别名:依赖注入(DI)
    2004年,Martin Fowler探讨了同一个问题,既然IOC是控制反转,那么到底是哪些方面的控制被反转了呢?,经过详细地分析和论证后,他得出了答案:获得依赖对象的过程被反转了。控制被反转之后,获得依赖对象的过程由自身管理变为了由IOC容器主动注入。于是,他给控制反转取了一个更合适的名字叫做依赖注入(Dependency Injection。他的这个答案,实际上给出了实现IOC的方法:注入。所谓依赖注入,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。
    所以,依赖注入(DI)和控制反转(IOC)是从不同的角度的描述的同一件事情,就是指通过引入IOC容器,利用依赖关系注入的方式,实现对象之间的解耦。

    注意:

    1、配置文件中的元素先后性不会对程序造成影响;

     

    2、如果没有环绕增强,那么最终通知会在后置增强后执行,否则会在后置增强前执行,因为环绕增强在后置增强前就执行了。

     

     

    3mysqlURL配置方式

     

    Spring操作流程

    获取bean对象

     

     

     

    参数注入

     

    如果使用p名称空间注入”,则需配置以下约束条件

     

    注入复杂数据类型

     

     

    配置通知(非注解方式)

     

    MyBook

     

    配置通知(注解方式)

    Spring配置文件中配置

     

     

     

     

    注解扫描

     

    连接池配置

     

    事务管理(非注解方式)

     

    事务管理(注解方式)

     

     

    jdbc的事务管理器是org.springframework.jdbc.datasource.DataSourceTransactionManager

    hibernate的事务管理器是org.springframework.orm.hibernate4.HibernateTransactionManager

    Mybatis进行事务控制,要使用jdbc的事务管理器;

    Spring配置文件导入

     

    优化Spring配置文件加载问题

    设置Apache Tomcat服务器启动时加载spring配置文件,并且将spring容器中的对象放在“上下文-->Context”中,后面再加载该spring配置文件并获取对象时,系统会直接从Context中寻找,如此可以加快效率。

    所以在web.xml中配置如下代码即可,

     

    SSH整合流程

    1、spring中配置数据源;

     

    2、在spring中配置strutsAction对象,并且设置为多例模式;

    3、在spring中配置“会话工厂”对象,

     

    4、开启事务管理;

     

     

     

  • 相关阅读:
    JavaScript 变量类型 保存内存中的位置 和 引用
    https连接过程
    微信消息自动回复 json版
    RabbitMQ安装
    nginx反向代理
    小程序接口记录
    nginx同服务器不同目录的差别配置
    nginx URL隐藏index.php
    Laravel 打印SQL语句
    laravel PostTooLargeException
  • 原文地址:https://www.cnblogs.com/syjp/p/11082824.html
Copyright © 2011-2022 走看看