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、开启事务管理;

     

     

     

  • 相关阅读:
    Oracle 按一行里某个字段里的值分割成多行进行展示
    Property or method "openPageOffice" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by
    SpringBoot 项目启动 Failed to convert value of type 'java.lang.String' to required type 'cn.com.goldenwater.dcproj.dao.TacPageOfficePblmListDao';
    Maven 设置阿里镜像
    JS 日期格式化,留作参考
    JS 过滤数组里对象的某个属性
    原生JS实现简单富文本编辑器2
    Chrome控制台使用详解
    android权限(permission)大全
    不借助第三方网站四步实现手机网站转安卓APP
  • 原文地址:https://www.cnblogs.com/syjp/p/11082824.html
Copyright © 2011-2022 走看看