随笔分类 - spring学习
摘要:一、事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: 使用Spring的事务管理功能后,我们可以不再写步骤 2 和 4 的代码,而是由Spirng 自动完成。
那么
阅读全文
摘要:概念解释及使用场景: classpath是指WEB-INF文件夹下的classes目录。 通常我们一般使用这种写法实在web.xml中,比如spring加载bean的上下文时,如下: 经过如上的写法,可能会认为这个就是web.xml固有的写法,其实不是,这种写法是spring的写法,与web.xml
阅读全文
摘要:结合业务层实现一共完成CRUD操作 1,定义一共IMessageServese接口 本业务层充分考虑到几乎所有可能出现的情况,而且也要涉及到参数传递问题。 2,定义这个接口实现类,所有的操作方法都是假实现; 3,既然整个代码都在Spring的控制中,那么可以利用依赖注入的方式在Action里面注入服
阅读全文
摘要:本次实现数据的CRUD功能,数据依然以VO类形式进行数据接收。 一,建立Message.java类操作,负责数据的接收操作。 和 2,定义Action。 范例:定义MessageAction 下面由于第一次执行,可以直接利用地址重写方式传递所需要数据。 后台服务器结果: 以上地址组成结构如下: 1,
阅读全文
摘要:之前是通过配置完成aop操作,如果自己写的话,太麻烦了,可以使用基于annotation的配置完成。 第一步:打开AOP的annotation支持 加上一句话: 随后需要在ServiceAspect类中编写所需要使用的annotation。 范例:修改serviceAspect类。 运行结果: 可以
阅读全文
摘要:范例:定义一个参数拦截 配置也修改: 此时运行报错。 此时serviceBefore2方法有参数了,就需要修改了。 范例:定义切入点表达式 这里通过 and args() 和arg-names来指定要传入操作前方法的参数。 运行结果: 因为after方法没有参数,不能直接使用第一个定义的切入点,所以
阅读全文
摘要:AOP是面向方面的编程,在实际开发中,AOP都会工作在业务层,因为业务层要调用数据层,而业务层也要完成所有辅助性的业务层操作。 范例:定义业务层操作接口: 实现操作接口: 此时的业务层只关兴核心的业务功能,核心的功能就是调用了业务层代码。 随后所有的辅助性操作功能,都通过spring容器,动态配置。
阅读全文
摘要:实际使用:配置文件 spring的核心就是一个配置文件。所以只有将表达式应用到配置文件上才会特别有意义。 范例:利用配置文件,编写表达式应用 注意,这里value的值要想设置为str的bean的值,必须使用表达式处理方式:#{ } 。 范例:测试本程序: 输出结果: 可以发现所以操作都是围绕字符串进
阅读全文
摘要:spring认为,数组和List集合是等价的。 要想操作list集合,利用“{内容,内容...}”的形式就可以完成了(类似数组)。 效果: 如果只想定义一个空的集合,直接设置未"{ }"。 但是此时这个List集合,相当于使用了Collections类,这个工具类下面可以创建空集合,但是许多方法不支
阅读全文
摘要:表达式所有操作都是可以以变量形式出现的。 观察变量的定义: 如果要想设置变量,必须需要依靠“StandardEvaluationContext”类完成,而这个类的子类的构造方法也可以接收一个变量: 这个构造方法表示的是设置根变量的内容:整个变量体系之中 会自动存在一个“#root”的根变量。 观察如
阅读全文
摘要:Class表达式 spring中对于class反射机制也有自己的处理。 1,class::使用T(类名)的形式可以取得一个指定泛型类型的Class对象。 范例: 运行结果: 计算结果:Class<String>。 2,静态属性:如果调用的静态属性则使用:“T(类).静态属性名称”。 运行结果: 3,
阅读全文
摘要:基本表达式 一,字面表达式 二,数学表达式 三,关系表达式 四,字符串表达式 String类中所有操作方法都是开发过程中最常用的。 五,正则表达式
阅读全文
摘要:1,表达式语言的操作形式以及处理流程。 2,在spring中各种表达式字符串的编写。 SPEL(spring Express language) 表达式入门 观察一下表达式: 范例:表达式操作 1)基础参考(如果不使用表达式,实现同样的功能): 2)表达式实现: 以上是通过硬编码形式完成,必须有St
阅读全文
摘要:注入Resource 虽然Resource 的子类利用了字符串格式进行了隐藏,但是此时的代码中,ResourceLoader跟我的开发没有任何关系, 如果真的开发只关心Resource一个接口就够了。 为了解决Resource与ResourceLoader的操作的耦合问题,在spring设计的时候考
阅读全文
摘要:目标: 1,掌握Resource接口的使用。 2,掌握ResourceLoader接口的使用。 3,掌握各种资源数据的读取操作。 具体内容: 要想进行资源读取操作,首先想到IO包中提供的操作类。 但是,有如下问题: 1,这些类的互相操作,难道太高,很多人对IO领悟并不是很彻底。 2,IO支持的读取有
阅读全文
摘要:利用annotation配置注入关系 为了更好的解释此类存在的意义,下面通过一段习惯性的开发进行问题的描述,例如: 现在有一个IAdminService服务层,这个服务层要调用的是IAdminDAO和IRoleDAO两个数据层操作,于是定义如下: 范例:定义数据层操作。 和 实现层: 和 最早的时候
阅读全文
摘要:首先需要明确,默认情况下,只要在applicationContext.xml文件里面配置的时候自动进行构造方法初始化。 但是用户也可以实现自己的配置,让其在第一次使用的时候进行初始化,这种操作叫做 延迟加载 lazy-init="true" 范例:延迟加载 完整代码: 不进行延迟加载的操作配置: 正
阅读全文
摘要:spring中只有两大核心技术: 控制反转(IOC)&依赖注入(DI),AOP(面向切面编程) 依赖注入:指利用配置文件的关系,来决定类之间的引用关系,以及数据的设置操作。 构造方法注入 默认在applicationContext文件中配置的程序都可以自动通过spring容器加载时自动对对象实例化。
阅读全文
摘要:使用myeclipse开发spring一个Demo。 第一步:新建一个web project。 第二步:安装spring开发的支持包。 安装后多了这几个东西 3,定义一个操作接口: 4,定义接口操作子类。 随后不提供有工厂的操作类,因为spring本身就有工厂类。在之后的工作就不应该出现工厂类。 5
阅读全文
摘要:自动装配 新建person类: 新建Car类: Address类: 配置文件: 使用: 运行: 改成自动装配: byName:可以使用autowire属性自动装配的方式,byName根据bean的名字和当前bean的setter风格的属性名自动装配。 byType: 可以使用autowire属性自动
阅读全文