Spring框架学习
文章平均质量分 84
李阿昀
昀,三尺微命,一介书生。只当穷且益坚,不坠青云之志!
展开
-
Spring入门第一讲——Spring框架的快速入门
Spring的概述什么是Spring据度娘所载: Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Exp原创 2017-04-08 00:27:34 · 140581 阅读 · 92 评论 -
Spring入门第二讲——在编写Spring框架的配置文件时,标签无提示符的解决办法
问题描述初学者在学习Spring框架的过程中,大概会碰到这样一个问题:在编写Spring框架的配置文件时,标签无提示符。本文就来解决掉这种问题。问题原因由于Spring的schema文件位于网络上,如果机器不能连接到网络,那么在编写配置信息时候就无法出现提示信息。解决方案解决方案一让机器上网,Eclipse会自动从网络上下载schema文件并缓存在硬盘上。解决方案二手动添加schema文件,方法如下原创 2016-10-16 17:49:51 · 7333 阅读 · 3 评论 -
Spring入门第三讲——Spring中Bean的配置与管理以及分模块开发的配置
在《Spring入门第一讲——Spring框架的快速入门》这一讲中,我们已经快速入门了Spring,现在咱就在第一讲的基础上,讲解一下Spring中Bean的相关配置和管理,不过这都是基于XML文件的这种方式哟!温馨提示:初学者如果第一次学习Spring这个框架,那么还是建议先入门Spring再说,因此初学者可以看看我写的Spring入门第一讲,而在本讲中我写的一些代码都是基于第一讲基础上的,初学...原创 2019-09-01 08:52:21 · 5197 阅读 · 9 评论 -
Spring入门第四讲——使用Spring的IoC完成CRM系统中保存客户的操作
需求概述还记得我们在学习Struts2框架时提及的CRM系统吗?CRM系统中有一个客户信息管理模块,该模块包括的功能有:新增客户信息客户信息查询修改客户信息删除客户信息而在本讲中,咱主要实现的是新增客户的功能。环境搭建创建web项目,引入jar包创建一个web项目,例如spring4_crm,并引入相关的jar包,那引入哪些jar包呢?由于我们在web层使用的Struts2...原创 2019-09-01 19:24:10 · 2658 阅读 · 10 评论 -
Spring入门第五讲——Spring IoC的注解开发
还记得在《Spring入门第三讲——Spring中Bean的配置与管理以及分模块开发的配置》这一讲中,我说过Spring进行Bean的管理有两种方式吗?其中一种是使用配置文件的方式,这个我们已经讲过了,还有一种是使用注解的方式,本讲就来讲一下Spring IoC的注解开发。那啥是注解呢?注解是代码中的特殊标记,它可以使用在类、方法、属性上面,使用它可以实现一些基本的功能,其写法是@注解名称(属性=...原创 2019-09-03 09:33:53 · 3011 阅读 · 4 评论 -
Spring入门第六讲——Spring AOP的XML开发
Spring的bean管理(注解方式)注解:代码中的特殊标记,注解可以使用在类、方法、属性上面,使用注解可实现一些基本的功能。注解的写法是@注解名称(属性=属性值)。使用注解创建对象第一步,创建Web项目,引入Spring的开发包 除了导入Spring基本的Jar包外(可参考《Spring的概述》一文),还须导入Spring注解的Jar包,如下: 第二步,编写相关的类 在src目录下创建一原创 2017-04-08 00:43:22 · 13358 阅读 · 13 评论 -
Spring入门第七讲——Spring AOP的注解开发
在前一讲中,我已讲过Spring使用基于AspectJ的XML配置文件的方式进行AOP开发,现在我就来讲讲怎样使用基于AspectJ的注解的方式进行AOP开发。使用基于AspectJ的注解的方式进行AOP开发创建web项目,引入jar包首先创建一个动态web项目,例如spring_demo03_aop,然后导入Spring框架相关依赖jar包,要导入哪些jar包呢?这里不废话,直接给出要导入...原创 2019-09-03 21:08:15 · 2022 阅读 · 1 评论 -
Spring入门第八讲——Spring的JDBC模板
Spring使用AspectJ进行AOP的开发:注解方式之前我已讲过Spring使用AspectJ通过配置文件的方式来进行AOP的开发,现在就来讲怎样使用注解方式进行AOP的开发。创建一个Web项目, 引入相关的jar包。所要导入的jar包如下: 引入Spring的配置文件。主要引入AOP的约束:<?xml version="1.0" encoding="UTF-8"?><beans xmlns原创 2017-04-09 00:40:15 · 6221 阅读 · 2 评论 -
Spring入门第九讲——Spring的事务管理
Spring中的事务操作事务的回顾什么是事务事务是逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败。事务的特性原子性:强调事务的不可分割。一致性:事务的执行的前后数据的完整性保持一致。隔离性:一个事务执行的过程中,不应该受到其他事务的干扰。持久性:事务一旦结束,数据就持久化到数据库。如果不考虑隔离性会引发的安全性问题脏读:一个事务读到了另一个事务的未提交的数据。原创 2017-04-10 20:08:45 · 4976 阅读 · 10 评论 -
Spring入门第十讲——Hibernate-5.0.7+Struts-2.3.24+Spring-4.2.4三大框架整合开发
回顾SSH框架至此,Hibernate-5.0.7、Struts-2.3.24和Spring-4.2.4这三个框架,我们已经都过了一遍了。现在,咱就要学习如何整合这三个框架进行开发了。在这之前,咱就来先回顾一下这三个框架。SSH框架整合思想Hibernate-5.0.7、Struts-2.3.24和Spring-4.2.4这三个框架都会应用在JavaEE三层结构中,每一层都用到了不同的框架...原创 2019-09-06 13:06:20 · 1455 阅读 · 1 评论 -
Spring入门第十一讲——Spring的Hibernate模板与延迟加载问题的解决
在上一讲中,我们已经学会了Hibernate-5.0.7、Struts-2.3.24和Spring-4.2.4这三个框架的整合。现在,我在其基础上讲解两个知识点,一个是Spring中Hibernate模板的使用,一个是使用Spring如何解决延迟加载问题。温馨提示:如果有小伙伴没看过前一讲,那么接下来你就别扯蛋了,劝你会去看看。Spring的Hibernate模板在Spring和Hiberna...原创 2019-09-07 11:23:00 · 712 阅读 · 0 评论 -
Spring入门第十二讲——Hibernate-5.0.7+Struts-2.3.24+Spring-4.2.4三大框架纯注解方式的整合
还记得我在《Spring入门第十讲——Hibernate-5.0.7+Struts-2.3.24+Spring-4.2.4三大框架整合开发》这一讲中介绍SSH三大框架整合的时候,说过这三个框架的整合一共有三种方式,其中前两种方式已经讲过了,本讲介绍第三种方式,即纯注解的方式。搭建SSH注解开发的环境创建web项目,引入jar包创建一个web项目,例如ssh3,并引入相关的jar包,那到底引入...原创 2019-10-27 15:56:33 · 674 阅读 · 0 评论 -
Spring+JDBC组合开发
搭建和配置Spring与JDBC整合的环境使用Spring+JDBC集成步骤如下: 第一步,配置数据源。我们使用DBCP数据库连接池。 我们首先在Eclipse中新建一个普通的Java Project,名称为springAndJDBC。接着导入所需Jar包到项目中,所需Jar包共有: 然后我们在Sping配置文件中——beans.xml配置数据源,即在beans.xml中加入如下内容:<b原创 2016-10-21 13:27:56 · 2032 阅读 · 0 评论 -
Spring如何装配各种集合类型的属性
在前面我们已经会注入基本类型对象和其他bean,现在我们就来学习如何注入各种集合类型。Spring如何装配各种集合类型的属性首先新建一个普通的Java Project,名称为spring_collection,并迅速搭建好Spring的开发环境。 接着在src目录下新建一个cn.itcast.service包,并在该包下创建PersonService接口,其代码为:public interface原创 2016-10-19 12:59:50 · 3267 阅读 · 0 评论 -
用@Resource注解完成属性装配
前面我们讲过spring的依赖注入有两种方式:使用构造器注入。使用属性setter方法注入。但其实还有一种注入方式,我们没讲,那就是使用Field注入(用于注解方式)。在详细讲解这种方式之前,我们还须知道以下的知识点。 注入依赖对象可以采用手工装配或自动装配,在实际应用中建议使用手工装配,因为自动装配会产生未知情况,开发人员无法预见最终的装配结果。依赖注入——手工装配依赖对象手工装配依赖对象原创 2016-10-19 14:03:57 · 16010 阅读 · 2 评论 -
编码剖析@Resource注解的实现原理
上文我们已经学会使用@Resource注解注入属性。学是学会了,但也仅限于会使用而已,故我们要深入剖析其内部原理,才算真正明白。接下来我们就来编码剖析@Resource注解的实现原理,但这都是建立在用@Resource注解完成属性装配的案例基础上的。 由于我们要使用dom4j工具来读取Sping的配置文件——beans.xml,所以需要将dom4j所需的jar包导入项目中。dom4j所需的jar包原创 2016-10-19 15:42:05 · 8039 阅读 · 4 评论 -
@Autowire注解与自动装配
前面我们已经学会使用@Resource注解注入属性,并且我们还编码剖析了@Resource注解的实现原理。现在我们来学习使用@Autowire注解注入属性,本文是建立在编码剖析@Resource注解的实现原理的案例基础上的。 用@Autowire注解完成属性装配@Autowire注解和@Resource一样,同样也可以标注在字段或属性的setter方法上,但它默认按类型装配。 我们将@Autowi原创 2016-10-19 16:31:07 · 36910 阅读 · 0 评论 -
让Spring自动扫描和管理Bean
前面的例子我们都是使用XML的bean定义来配置组件。在一个稍大的项目中,通常会有上百个组件,如果这些组件采用XML的bean定义来配置,显然会增加配置文件的体积,查找及维护起来也不太方便。Spring2.5为我们引入了组件自动扫描机制,它可以在类路径底下寻找标注了@Component、@Service、@Controller、@Repository注解的类,并把这些类纳入进Spring容器中管理。原创 2016-10-19 17:19:43 · 15058 阅读 · 0 评论 -
使用CGLIB实现AOP功能与AOP概念解释
使用CGLIB实现AOP功能在Java里面,我们要产生某个对象的代理对象,这个对象必须要有一个特点,即这个对象必须实现一个接口,动态代理技术只能基于接口进行代理。有时候我们在做开发的时候,这个对象就没有实现接口,有人可能会说,它既然没有接口,那我就给它定义一个接口,这是不行的,因为有时候我们拿到一个对象,而这个对象是服务器产生给我们的,是服务器提供给我们的,又不是我们自己写的,动不动就给它定义一个接原创 2016-10-19 22:38:32 · 5274 阅读 · 0 评论 -
使用JDK中的Proxy技术实现AOP功能
AOP技术在企业开发中或多或少都会用到,但用的最多的大概就是做权限系统时,在做权限系统时,我们可能需要粗粒度的权限控制和细粒度的权限控制,对于细粒度的权限控制,我们主要是对方法进行拦截,对方法进行拦截之后,判断用户是否是有权限,有权限就执行该方法,没有权限就不能执行该方法。 现在我们借助一个例子来说明怎么使用JDK中的Proxy技术来实现AOP功能,并且不借助任何其他的框架。 首先新建一个普通的原创 2016-10-19 21:55:55 · 2449 阅读 · 2 评论 -
使用Spring的注解方式实现AOP的细节
前面我们已经入门使用Spring的注解方式实现AOP了,现在我们再来学习使用Spring的注解方式实现AOP的一些细节。本文是建立在使用Spring的注解方式实现AOP入门的案例的基础之上的。 本文是来讲解使用Spring的注解方式实现AOP的一些细节,其实说白了就是学习如何使用各种通知而已,例如前置通知、后置通知、异常通知、最终通知、环绕通知等,之前我们已经学习了前置通知,现在就来学习剩余的通知原创 2016-10-21 09:01:03 · 15204 阅读 · 1 评论 -
使用Spring的注解方式实现AOP入门
首先在Eclipse中新建一个普通的Java Project,名称为springAOP。为了使用Spring的注解方式进行面向切面编程,需要在springAOP项目中加入与AOP相关的jar包,spring aop需要额外的jar包有:com.springsource.org.aopalliance-1.0.0.jarcom.springsource.org.aspectj.weaver-1.6原创 2016-10-20 00:28:09 · 13920 阅读 · 2 评论 -
使用Spring配置文件实现AOP
前面我们已经学会了使用Spring的注解方式实现AOP,现在我们就要学习使用Spring配置文件实现AOP。本文是建立在使用Spring的注解方式实现AOP的细节的案例的基础之上的。 我们首先将MyInterceptor类的代码修改为:/** * 切面 * @author li ayun * */@Aspectpublic class MyInterceptor { publi原创 2016-10-21 10:24:14 · 1997 阅读 · 1 评论 -
编码剖析Spring装配基本属性的原理
上回我们已经讲到了Spring依赖注入的第一种方式,现在我们来详解第二种方式,须知这一切都是以编码剖析Spring依赖注入的原理案例为基础的。 我们将Spring的配置文件——beans.xml的内容改为:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"原创 2016-10-19 09:28:46 · 1665 阅读 · 1 评论 -
编码剖析Spring依赖注入的原理
Spring的依赖注入前面我们就已经讲过所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到组件中。 Spring的依赖注入有两种方式:通过构造器参数,让容器把创建好的依赖对象注入。使用setter方法进行注入。现在我们使用第二种方式进行依赖注入。以Spring管理的Bean的生命周期的案例为基础展开本文的说明。 首先在src目录下新建一个cn.itcast.dao包,并在该包下原创 2016-10-17 00:41:00 · 2885 阅读 · 0 评论 -
Spring管理的Bean的生命周期
bean的初始化时机前面讲解了Spring容器管理的bean的作用域。接着我们就要思考一个问题:bean到底是在什么时候才进行实例化的呢?我们以这个问题为引子来展开本文的说明。 bean对象无外乎是在以下两个时刻进行实例化的:调用getBean()方法时。Spring容器启动时。那么bean对象到底是在哪个时刻进行实例化的,这与Bean的作用域有着某种联系。我们以配置Spring管理的bea原创 2016-10-16 23:00:18 · 7515 阅读 · 1 评论 -
在Eclipse上安装Spring Tool Suite
Spring Tool Suite介绍Spring Tool Suite是一个基于Eclipse IDE开发环境中的用于开发Spring应用程序的工具,提供了开箱即用的环境用于实现、调试和部署你的Spring应用,包括为关键的服务器和云计算、Git、Maven、AspectJ和最新的Eclipse版本提供整合支持。 Eclipse集成Spring Tool Suite插件有两种方式,一个是在线安装原创 2016-10-11 13:11:33 · 18015 阅读 · 2 评论 -
使用Spring注解方式管理事务与传播行为详解
前面讲解了怎么使用@Transactional注解声明PersonServiceBean底下所有的业务方法需要事务管理,那么事务是如何来管理的呢? 我们知道当每个业务方法执行的时候,它都会打开事务,在业务方法执行结束之后,它就会结束事务。那么它什么时候决定这个事务提交,什么时候决定这个事务回滚呢?原先我们手工控制事务的时候,通常这个事务的提交或回滚是由我们来操纵的,那现在我们采用容器的声明式事务管原创 2016-10-21 16:48:29 · 12849 阅读 · 2 评论 -
使用Spring配置文件实现事务管理
前面我们讲解了使用Spring注解方式来管理事务,现在我们就来学习使用Spring配置文件实现事务管理。本文是建立在使用Spring注解方式管理事务与传播行为详解案例基础之上的。 首先我们在cn.itcast.service.impl包下再新建一个业务bean——PersonServiceBean2.java,其代码为:/** * 使用JdbcTemplate进行insert/update/de原创 2016-10-21 18:40:54 · 5468 阅读 · 0 评论 -
Spring4.2.5+Hibernate4.3.11组合开发
今天我们来学习Spring4.2.5+Hibernate4.3.11+Struts1.3.8整合开发。在整合开发时,不要一口气的把这3个框架整合好,而是应该分步整合,通常应该先整合Spring4.2.5+Hibernate4.3.11这2个框架,这2个框架整合好之后,再来整合Struts1.3.8框架。 我们首先新建一个动态web项目,名称为SSH,顺便将项目的整个编码设置为UTF-8,如图所示:原创 2016-10-21 22:12:02 · 2543 阅读 · 0 评论 -
Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
前面我们已经集成了Spring4.2.5+Hibernate4.3.11这两个框架,现在是时候集成web层框架——Struts1.3.8了。本文是是建立在Spring4.2.5+Hibernate4.3.11组合开发基础之上的。 我们首先向SSH项目中导入Struts1.3.8框架所需的jar文件,如图所示: 注意:Hibernate4.3.11中已经存在一个antlr-2.7.7.jar原创 2016-10-22 00:40:00 · 1593 阅读 · 0 评论 -
Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案二
前面我们已经集成了Spring4.2.5+Hibernate4.3.11+Struts1.3.8,但是集成的方案并不完美,因为我们在Action里面每次要取得Spring容器实例,都必须有这样的代码:WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext( this原创 2016-10-22 21:15:37 · 960 阅读 · 0 评论 -
为Spring集成的Hibernate配置二级缓存
前面我们已经集成了Spring4.2.5+Hibernate4.3.11+Struts1.3.8了,接下来我们就要为Spring4.2.5集成的Hibernate4.3.11配置二级缓存了,因为在企业开发中,会大量使用到Hibernate的二级缓存。 由于要在SSH项目中使用到Hibernate4.3.11的二级缓存,所以我们需要向项目中导入Hibernate4.3.11中与二级缓存相关的jar文原创 2016-10-23 00:01:25 · 5175 阅读 · 1 评论 -
Spring提供的CharacterEncoding和OpenSessionInView功能
前面我们以一种更加优雅的方式集成了Spring4.2.5+Hibernate4.3.11+Struts1.3.8,但是在实际开发中我们会碰到两个问题,在此先不言表,只通过例子将其引出来。 我们先在SSH项目的根目录WebRoot下新建一个JSP页面——index.jsp,即项目首页,其内容为:<%@ page language="java" contentType="text/html; char原创 2016-10-23 15:57:57 · 851 阅读 · 0 评论 -
Spring4.2.5+Hibernate4.3.11+Struts2.3.24整合开发
前面我们已经学会了Spring4.2.5+Hibernate4.3.11+Struts1.3.8的整合开发,现在再来学习Spring4.2.5+Hibernate4.3.11+Struts2.3.24的整合开发应该是得心应手的事了,但我们还是有必要说一下,下面开始本文的介绍。 在学习Spring4.2.5+Hibernate4.3.11+Struts2.3.24的整合开发时,不要一口气的把这3个框原创 2016-10-23 16:55:24 · 3109 阅读 · 5 评论 -
Spring简介
Spring是什么Spring是一个开源的控制反转(Inversion of Control,IoC)和面向切面(AOP)的容器框架,它的主要目得是简化企业开发。控制反转(IOC)大概以前,业务逻辑层的代码很有可能这样写:public class PersonServiceBean { private PersonDao personDao = new PersonDaoBean();原创 2016-10-16 15:10:14 · 14124 阅读 · 3 评论 -
搭建Spring4.x.x开发环境
先去Spring官网下载Spring4.x.x开发包(本人使用的版本是Spring4.2.5),这个网上有一大堆博客有介绍,故省略。下载下来之后,我就来详细说明如何在Eclipse中搭建Spring4.2.5开发环境。首先在Eclipse中新建一个普通Java Project,名为spring_first。接着我们就要导入Spring需要的jar包,进入到下载并解压的spring-framewo原创 2016-10-16 17:00:16 · 4455 阅读 · 0 评论 -
编写Spring的第一个案例并测试Spring的开发环境
Spring4.2.5的开发环境搭建好了之后,我们来编写Spring的第一个案例,并测试Spring的开发环境。 首先在Eclipse中新建一个普通的Java Project,名称为spring_first,迅速搭建好Spring4.2.5的开发环境。 然后在src目录下新建一个cn.itcast.service包,并在该包下创建一个接口——PersonService.java,其代码如下:pu原创 2016-10-16 18:53:06 · 4360 阅读 · 0 评论 -
编码剖析Spring管理Bean的原理
在Spring的第一个案例中,我们已经知道了怎么将bean交给Spring容器进行管理,并且明白了怎么从Spring容器中获取bean。那我们就有一个疑问了:Spring是如何创建并管理bean的呢?现在我们就来编码剖析Spring管理Bean的原理。 本文是在Spring的第一个案例的基础上展开的。 我们要使用dom4j读取Sping的配置文件——beans.xml<?xml version=原创 2016-10-16 19:54:10 · 3364 阅读 · 0 评论 -
Spring的三种实例化Bean的方式
Spring提供了三种实例化Bean的方式。使用类构造器实例化。<bean id="personService" class="cn.itcast.service.impl.PersonServiceBean"></bean>不难看出,我们以前使用的就是该方式。上面的配置默认使用的是PersonServiceBean类的默认构造函数来实例化PersonServiceBean对象的。使用静态工厂方原创 2016-10-16 20:44:08 · 11049 阅读 · 0 评论