- 浏览: 142320 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
flyingcatjj:
很适合我这种刚接触的
myeclipse xfire 开发webservice实例 -
tangzlboy:
非常好,非常详细,非常中用。
linux入门 -
yzz9i:
楼主说的很是详细。
myeclipse xfire 开发webservice实例 -
zqx888191:
很再理阿!
老程序员的教诲 -
simplecat123:
...
SQLite数据读取
1 Spring是什么 Spring是一个开源的控制反转(Inversion of Control ,IoC)和面向切面(AOP)的容器框架.它的主要目得是简化企业开发. 2 什么是控制反转 public class PersonServiceBean { private PersonDao personDao = new PersonDaoBean(); public void save(Person person){ personDao.save(person); } } PersonDaoBean 是在应用内部创建及维护的。所谓控制反转就是应用本身不负责依赖对象的创建及维护, 依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。 3 依赖注入 当我们把依赖对象交给外部容器负责创建,那么PersonServiceBean 类可以改成如下: public class PersonServiceBean { private PersonDao personDao ; //通过构造器参数,让容器把创建好的依赖对象注入进PersonServiceBean,当然也可以使用setter方法进行注入。 public PersonServiceBean(PersonDao personDao){ this.personDao=personDao; } public void save(Person person){ personDao.save(person); } } 所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到组件中。 4 为何要使用Spring 至少在我看来,在项目中引入spring立即可以带来下面的好处 降低组件之间的耦合度,实现软件各层之间的解耦。 可以使用容器提供的众多服务,如:事务管理服务、消息服务等等。当我们使用容器管理事务时, 开发人员就不再需要手工控制事务.也不需处理复杂的事务传播。 容器提供单例模式支持,开发人员不再需要自己编写实现代码。 容器提供了AOP技术,利用它很容易实现如权限拦截、运行期监控等功能。 容器提供的众多辅作类,使用这些类能够加快应用的开发,如: JdbcTemplate、 HibernateTemplate。 Spring对于主流的应用框架提供了集成支持,如:集成Hibernate、JPA、Struts等,这样更便于应用的开发。 5 如果使用Spring, 我们就不再需要手工控制事务 另外,如果使用spring, 我们也不需要处理复杂的事务传播行为 public void payment(){ Bean1.update();//更新金额 Bean2.save();//记录操作日志 } 如果我们不使用Spring,针对下面这两种业务需求,我们该如何做? 第1种可能的业务需求:要求Bean1.update()和Bean2.save()在同一个事务中执行。 第2种可能的业务需求:要求不管Bean1.update() 的事务是否成功,都需要记录操作日志。 public class Bean1 { public void update(){//注意:下面省略了一些代码 Connection conn = null; conn.setAutoCommit(false); Statement.executeUpdate(“update account set amount=? where id=?"); } } public class Bean2 { public void save(){//注意:下面省略了一些代码 Connection conn = null; conn.setAutoCommit(false); Statement.executeUpdate(“insert into Log (content) values (?)"); } } 使用Spring,我们只需要通过声明式的事务属性配置就可以轻松地实现这两种业务需求 1.要求Bean1.update()和Bean2.save()的在同一个事务中执行 2.要求不管Bean1.update() 的事务是否成功,都需要记录日志。 @Transactional(propagation=Propagation.Required) public void payment(){ Bean1.update();//更新金额 Bean2.save();//记录日志 } public class Bean1 { @Transactional(propagation=Propagation.Required) public void update(){ executeUpdate(“update account set amount=? where id=?"); } } public class Bean2 { @Transactional(propagation=Propagation.RequiresNew) public void save(){ executeUpdate(“insert into Log (content) values (?)"); } } 6 轻量级与重量级概念的划分 经常会有同学问到spring属于轻量级框架,还是重量框架?其实划分一个应用是否属于轻量级还是重量级,主要看它使用了多少服务. 使用的服务越多,容器要为普通java对象做的工作就越多,必然会影响到应用的发布时间或者是运行性能. 对于spring容器,它提供了很多服务,但这些服务并不是默认为应用打开的,应用需要某种服务, 还需要指明使用该服务,如果应用使用的服务很少,如:只使用了spring核心服务,那么我们可以认为此时应用属于轻量级的, 如果应用使用了spring提供的大部分服务,这时应用就属于重量级。目前EJB容器就因为它默认为应用提供了EJB规范中所有的功能, 所以它属于重量级。 完毕!end!
发表评论
-
十八 Spring2.5+Hibernate3.3+Struts2整合开发
2011-07-04 17:16 766十八 Spring2.5+Hibernate3.3+Strut ... -
十七 Spring2.5+JPA+Struts1.3整合开发
2011-07-04 17:16 1186十七 Spring2.5+JPA+Struts1.3整合开发 ... -
十六 Spring2.5+Hibernate3.3+Struts1.3整合开发
2011-07-04 17:13 880十六 Spring2.5+Hibernate3.3+Strut ... -
十五 用xml方式配置事务
2011-07-04 17:11 789十五 用xml方式配置事务 ... -
十四 spring容器的声明式事务管理
2011-07-04 17:10 925spring在运行期(unchecked ... -
十三 Spring+JDBC组合开发
2011-07-04 17:09 913十三 Spring+JDBC组合开发 ... -
十二 spring的AOP编程
2011-07-04 17:06 1341Aspect(切面):指横切性关 ... -
十一 使用CGLIB实现AOP功能与AOP概念解释
2011-07-04 17:05 773十一 使用CGLIB实现AOP功能与AOP概念解释 前面 ... -
十 使用JDK中的Proxy技术实现AOP功能
2011-07-04 17:03 760十 使用JDK中的Proxy技术实现AOP功能 通过代理 ... -
九 自动扫描和管理bean
2011-07-04 17:02 710九 自动扫描和管理bean ... -
八 @Autowire注解与自动装配
2011-07-04 17:01 825使用了@Autowired的注解方式,这种默认按类型查找符合的 ... -
七 编码剖析@Resource注解的实现原理
2011-07-04 17:00 1060七 编码剖析@Resource注解的实现原理 Itcas ... -
六 用@Resource注解完成属性装配
2011-07-04 16:58 1823六 用@Resource注解完成属性装配 java代 ... -
五 依赖注入
2011-07-04 16:57 708五 依赖注入 1>set注入方式 1 对象注入 ... -
四 spring管理bean的作用域
2011-07-04 16:57 923四 spring管理bean的作用域 先看配置 < ... -
三 实例化bean的方法
2011-07-04 16:56 681三 实例化bean的方法 1接口 package cn. ... -
二 开启spring之旅
2011-07-04 16:55 6891 首先下载spring 最佳答案 版本2.5.6,官 ... -
Spring学习笔记(4)----Bean节点信息配置
2010-10-29 16:53 738默认情况下,Spring的Ioc容器启动时会初始化bean ... -
Spring学习笔记(3)----编码剖析Spring管理Bean的原理
2010-10-29 16:47 689Xml代码 <?xml versio ... -
Sping学习笔记(2)----实例化Bean的三种方式
2010-10-29 16:45 781Spring的实例化Bean有三种方式: 使用类构造器 ...
相关推荐
Spring Boot简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的、产品级别的Spring应用。Spring Boot为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring Boot应用只...
spring 框架介绍
SpringCloud系列Demo代码,每个子项目都是SpringCloud的一个知识点或者说技能点且都有对应的博客介绍,代码开箱即用适合新手学习或老司机复习。 SpringCloud系列Demo代码,每个子项目都是SpringCloud的一个知识点...
Spring Cloud之一 Spring Cloud简介,简单介绍SpringCloud,微服务,SOAP等内容
Spring MVC提供了一个轻便的高层次的功能:表单控制器实现了一个与定义的页面流程。 Spring Web Flow允许你使用一个简单清晰的方法体现你的页面流程,并且随时重用。关注点:Web流程的逻辑结构和Web事件条件的定义。
介绍Spring Cloud Stream与RabbitMQ集成的代码示例。Spring Cloud Stream是一个建立在Spring Boot和Spring Integration之上的框架,有助于创建事件驱动或消息驱动的微服务。
Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大...
本书共计10章,分别介绍了快速搭建Spring Web应用、精通MVC结构、URL映射、文件上传与错误处理、创建Restful应用、保护应用、单元测试与验收测试、优化请求、将Web应用部署到云等内容,循序渐进地讲解了Spring MVC4...
这是一个关于spring的详细的介绍,对spring进行了详细的讲解,大家可以好好看看。
Spring介绍 一 Spring的主要技术 1 IOC: 2 AOP动态代理: 3 Spring中支持事务管理
一部分详细分析了Spring的核心:IoC容器和AOP的实现,能帮助读者了解Spring的运行机制;第二部分深入阐述了各种基于IoC容器和AOP的Java EE组件在Spring中的实现原理;第三部分讲述了ACEGI安全框架、DM模块以及Flex...
介绍一个基于Spring Boot 3.0、Spring Cloud 2022 & Alibaba的微服务RBAC权限管理系统。该系统可以实现微服务RBAC权限管理,通过RBAC权限管理机制对用户访问系统的权限进行限制,从而提高系统的安全性和可用性。同时...
介绍Spring框架 1.1。 依赖注入和控制反转 1.2。 模块 1.2.1。 核心容器 1.2.2。 数据访问/集成 1.2.3。 web 1.2.4。 AOP和仪表 1 2 5。 测试 1.3。 使用场景 1.3.1。 依赖关系管理和命名约定 Spring依赖和依靠弹簧...
2.1.1 Spring的模块介绍 2.1.2 Spring的发布版本 2.1.3 Spring的项目 2.2 安装Spring Framework 2.2.1 问题描述 2.2.2 解决方案 2.2.3 实现方法 2.3 建立Spring项目 ...
它通过实际完成一个完整的Spring项目示例,展示了与Spring相关API的使用技巧,能够显著减少每一位入门者摸索Spring API的时间。《Spring 2.0技术手册》是学习Spring Web开发的最佳读物,它能让读者在示例学习中获得...
(用户持久化类)重构第一步——面向接口编程 8 重构第二步——工厂(Factory)模式 9 重构第三步——工厂(Factory)模式的改进 10 重构第四步-IoC容器 11 控制反转(IoC)/依赖注入(DI) 11 什么是控制反转/依赖...
三,Spring Batch流程介绍 5 四,Spring Batch之Step执行过程介绍 6 五,Spring Batch应用 7 1,简单应用 7 构建应用 7 对象定义 7 读写及处理接口 8 任务定义 10 任务执行 11 任务重试 13 ...
黑马spring第一天课堂笔记,关于spring介绍和入门都比较基础的文档。