- 浏览: 821862 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (488)
- struts1 (4)
- spring (13)
- extjs (36)
- mysql (3)
- sqlserver (2)
- oracle (37)
- 杂谈 (11)
- 面试相关 (35)
- Java基础知识总结 (5)
- Java重要知识点 线程和io流知识点 (6)
- 服务器相关 (1)
- 生活 (1)
- jsp (7)
- servlet (2)
- junit (3)
- struts2 (9)
- 开发必备 (4)
- 使用开发工具总结的知识 (4)
- ibatis (12)
- ajax (2)
- dwr (2)
- jquery (1)
- 设计模式 (4)
- Lucene的学习 (5)
- 经验总结 (19)
- mysql全文搜索相关 (7)
- hibernate (33)
- Sphinx (1)
- log4j的总结 (1)
- 敏捷开发 (9)
- 持续集成 (15)
- UML使用总结 (1)
- Scrum (1)
- OO(面向对象编程) (1)
- struts1和struts2总结 (1)
- 数据库加密 (1)
- 多线程和Socket编程 (6)
- PowerDesigner (2)
- 权限相关 (1)
- ant应用总结 (4)
- 面试必知知识点总结 (6)
- io流与nio流总结 面试相关 (1)
- 敏捷管理工具的使用 (7)
- hsqldb相关 (1)
- svn源码相关 (2)
- debug调试技巧总结 (1)
- hibernate和ibatis对比相关 (6)
- eclipse mylyn 插件的使用总结 (2)
- fisheye使用总结 (2)
- java泛型总结 (1)
- ssh整合总结 (10)
- SpringSide的学习总结 (1)
- JPA学习总结 (2)
- RoR 总结 (2)
- 模型驱动 总结 (1)
- Oracle SQL优化技巧 (4)
- 数据库相关资料 (1)
- oracle练习相关 (4)
- PowerDesigner 使用总结 (2)
- Struts实现国际化相关 (2)
- 权限框架 Spring Security (1)
- freemarker使用总结 (1)
- jsp servlet总结相关 (3)
- Java NIO总结 (1)
- 自己学习必须 (3)
- 蝴蝶容器相关 (2)
- eclipse插件的使用 (1)
- myeclipse的使用 (1)
- flex相关 (1)
- javaeye重生后总结的知识点 (2)
- 公司学习总结 (3)
- JAXB 相关 (1)
- ECSide (1)
- EdoJs 企业ajax框架 (1)
- RSA加密算法 (1)
- jbpm相关 (1)
- JMF原理 (1)
- MyEclipse使用总结 (1)
- Funsion Charts 相关总结 (3)
- 常用知识2011 (2)
- Flex与Java整合 (1)
- IBM WebSphere相关 (1)
- jQuery使用技巧 (2)
- 2011年面试相关知识点总结 (2)
- sqlserver开发相关 (8)
- eclipse 打jar相关 (2)
- Oracle/Mysql/SqlServer比较 (1)
- WebService Axis1.4开发相关 (4)
- 进制数的转换 总结 (1)
- WebService Axis2.0开发相关 (0)
- iteye Struts2 Spring Hibernate整合相关 (3)
- iteye osgi资料相关总结 (1)
- iteye ifos相关相关 (1)
- iteye 国际化相关 (1)
- iteye Hibernate缓存机制 (4)
- iteye Struts2 总结 (1)
- iteye Struts标签总结 (0)
- iteye web配置文件大全 (6)
- iteye Efs 框架总结 (1)
- iteye sql优化 (2)
- iteye 大数据量高并发的数据库优化 (1)
- iteye 开发相关 (1)
- iteye s1sh 和 s2sh整合中的问题以及解决 (1)
- iteye s1sh整合实例 (1)
- iteye s2sh整合实例 (1)
- iteye 面试相关 基础篇 (1)
- iteye Android相关 (1)
- iteye 面试相关 Web篇 (1)
- iteye Sql Server相关 (0)
- iteye struts1与struts2比较 (1)
- iteye jquery 和Struts2 (0)
- iteye struts2与其他插件整合 (0)
- iteye jquery 开发相关 (1)
- iteye eclipse结合spket(Ext,Jquery)开发相关 (0)
- iteye myeclipse 使用技巧相关 (0)
- iteye Memcached 缓存系统相关 (0)
- iteye 常用软件相关 (0)
- iteye 最新技术预览 AjaxSwing (0)
- iteye struts上传下载相关 (0)
- iteye 新技术相关 (0)
- test (0)
- iteye 开发Java游戏相关 (0)
- iteye Java反编译 (0)
- iteye XML解析相关 (0)
- iteye 压缩ZIP相关 (0)
- iteye 面试相关 (0)
- iteye Android开发相关 (4)
- csdn (0)
- e-inoc (0)
- iteye http错误码对应说明 (0)
- iteye 面试扩展知识点 (0)
- iteye oracle面试相关 存储过程,触发器,游标等 (0)
- iteye english study (0)
- iteye starflow工作流引擎 (0)
- iteye IBM WebSphere Application Server Toolkit使用相关 (0)
- iteye spring3 (0)
- iteye mybatis (0)
- iteye js技巧总结 (0)
- iteye SEO优化相关 (2)
- iteye QUI网页界面集成框架 (1)
- iteye AjaxAnywhere (1)
- iteye Nutz相关 (1)
- iteye ibatis技巧 (0)
- iteye dwz (0)
- 128个ajax/javascript框架 (0)
- iteye 2012 Java Swing教程 (1)
- iteye 码头集装箱相关 (1)
- iteye swing (2)
- 兼职工作 (0)
- 2012 新总结的面试相关知识点 常用知识点 (1)
- 淘宝网店相关 (0)
- oracle 常用函数 2012新总结 (1)
- 我的时尚潮流屋 (0)
- 2012 年 面试新总结知识 (1)
- 技巧 (1)
- 2013总结 (1)
- 2015工作相关 (3)
- springmvc (5)
- EasyPR-Java (1)
- java (2)
- editplus 4.0 注册码 (1)
- android (1)
- oracle连接数据库相关 (1)
- 编程资料总结 (2)
- 20160808 (1)
- visio 2013 (1)
最新评论
-
drew926:
泛型的类型参数可以有多个?这是java哪个版本支持的?
java泛型总结 -
listenan:
赞!非常感谢。
Scrum总结 -
cwscwj:
写的很深刻,谢谢,看了一遍,过段时间打算再看一遍。
Scrum总结 -
hwedwin:
w
Struts 2中的OGNL\EL的使用总结 -
lanni2460:
不错 很好 支持……
sqlserver三个驱动包下载
Spring的简单应用实例
先定义一个接口human,
然后写出实现这个接口的两个子类Chinese和American类
然后创建一个工厂类factory,以实现工厂模式
下面是一个测试程序,使用工厂方法创建对象
这就是java的工厂模式
下面介绍一下java spring的IoC(控制翻转inversion of control)模式
在项目根目录下创建一个beam.xml文件
然后修改ClientTest代码如下:
从这个程序可以看到,ctx就相当于原来的Factory工厂,原来的Factory就可以删除掉了。然后又把Factory里的变量移到了ClientTest类里,整个程序结构基本一样。
也许有人说,IoC和工厂模式不是一样的作用吗,用IoC好象还麻烦一点。
举个例子,如果用户需求发生变化,要把Chinese类修改一下。那么前一种工厂模式,就要更改Factory类的方法,并且重新编译布署。而IoC只需要将class属性改变一下,并且由于IoC利用了Java反射机制,这些对象是动态生成的,这时我们就可以热插拨Chinese对象
关于IoC的低侵入性。
什么是低侵入性?如果你用过Struts或EJB就会发现,要继承一些接口或类,才能利用它们的框架开发。这样,系统就被绑定在Struts、EJB上了,对系统的可移植性产生不利的影响。如果代码中很少涉及某一个框架的代码,那么这个框架就可以称做是一个低侵入性的框架。
Spring的侵入性很低,Humen.java、Chinese.java等几个类都不必继承什么接口或类。但在ClientTest里还是有一些Spring的影子:FileSystemXmlApplicationContext类和ctx.getBean方式等。
现在,低侵入性似乎也成了判定一个框架的实现技术好坏的标准之一
先定义一个接口human,
1. public interface human{ 2. void eat(); 3. void walk(); 4. }
然后写出实现这个接口的两个子类Chinese和American类
1. public class Chinese implements Human{ 2. public void eat(){ 3. System.out.println("中国人对吃很有研究"); 4. } 5. public void walk(){ 6. System.out.println("中国人田径运动不是很强"); 7. } 8. } 9. public class American implements Human{ 10. public void eat(){ 11. System.out.println("美国人以吃面包为主"); 12. } 13. public void walk(){ 14. System.out.println("美国的田径运动比较厉害"); 15. } 16. }
然后创建一个工厂类factory,以实现工厂模式
1. public class factory{ 2. public Human getHuman(String name){ 3. if(name.equalsIgnoreCase(chinese)) 4. return new Chinese(); 5. else if(name.equalsIgnoreCase(American) 6. return new American(); 7. else 8. throw IllegalArgumentException("你输入的人种错误,不能创建该对象"); 9. } 10. }
下面是一个测试程序,使用工厂方法创建对象
1. import java.util.Scanner; 2. 3. public class ClientTest{ 4. public static void main(String[] args){ 5. 6. System.out.println("input the name of you want to create:"); 7. Scanner s=new Scanner(System.in); 8. String name=s.nextline(); 9. Human human=null; 10. human=new factory().getHuman(name); 11. human.eat(); 12. human.walk(); 13. } 14. }
这就是java的工厂模式
下面介绍一下java spring的IoC(控制翻转inversion of control)模式
在项目根目录下创建一个beam.xml文件
1. <?xml version="1.0" encoding="UTF-8"?> 2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 3. <beans> 4. <bean id="Chinese" class="cn.com.chengang.spring.Chinese"/> 5. <bean id="American" class="cn.com.chengang.spring.American"/> 6. </beans> 7.
然后修改ClientTest代码如下:
1. import org.springframework.context.support.FileSystemXmlApplicationContext; 2. public class ClientTest { 3. 4. public static void main(String[] args) { 5. 6. ApplicationContext ctx = new FileSystemXmlApplicationContext("bean.xml"); 7. System.out.println("..."); 8. Scanner s=new Scanner(System.in); 9. String name=s.nextline(); 10. Human human=null; 11. human=(Human)ctx.getBean(name); 12. human.eat(); 13. human.walk(); 14. } 15. } 16.
从这个程序可以看到,ctx就相当于原来的Factory工厂,原来的Factory就可以删除掉了。然后又把Factory里的变量移到了ClientTest类里,整个程序结构基本一样。
也许有人说,IoC和工厂模式不是一样的作用吗,用IoC好象还麻烦一点。
举个例子,如果用户需求发生变化,要把Chinese类修改一下。那么前一种工厂模式,就要更改Factory类的方法,并且重新编译布署。而IoC只需要将class属性改变一下,并且由于IoC利用了Java反射机制,这些对象是动态生成的,这时我们就可以热插拨Chinese对象
关于IoC的低侵入性。
什么是低侵入性?如果你用过Struts或EJB就会发现,要继承一些接口或类,才能利用它们的框架开发。这样,系统就被绑定在Struts、EJB上了,对系统的可移植性产生不利的影响。如果代码中很少涉及某一个框架的代码,那么这个框架就可以称做是一个低侵入性的框架。
Spring的侵入性很低,Humen.java、Chinese.java等几个类都不必继承什么接口或类。但在ClientTest里还是有一些Spring的影子:FileSystemXmlApplicationContext类和ctx.getBean方式等。
现在,低侵入性似乎也成了判定一个框架的实现技术好坏的标准之一
发表评论
-
AOP(Aspect oriented programming) 面向方面编程
2010-09-29 11:15 1120一 AOP(Aspect oriented program ... -
Spring框架与AOP思想的研究与应用
2010-09-29 11:11 1248Spring框架与AOP思想的研 ... -
Spring AOP总结
2010-09-29 10:47 1475Spring AOP总结 Spring ... -
Spring参考手册 IOC
2010-09-29 10:41 1272Spring参考手册 IOC 概述 ... -
Spring参考手册 AOP
2010-09-29 10:39 1464Spring参考手册 AOP 概述 ... -
Spring总结之AOP
2010-09-29 10:35 1238Spring总结之AOP AOP( ... -
对Spring AOP中三种实现方式的总结
2010-09-29 10:34 1241aop: 1: 编程式: 其中,必须先自己从s ... -
Spring IoC控制反转总结
2010-09-28 09:21 1501Spring IoC控制反转总结 ... -
Spring 是什么 以及总结
2010-09-28 08:20 1290什么是spring Spring的 ... -
Spring Jar包
2010-09-18 21:57 1665Spring Jar包 spring.jar是包含 ... -
spring自己总结的知识
2010-08-15 13:52 949Spring:总结用XML配置的十二个最佳实践2007-05- ... -
spring笔记
2010-08-15 13:51 1067------------------------------- ...
相关推荐
在“spring boot 简单案例下载”中,我们可以推测这是一个包含了一些基本的 Spring Boot 示例项目的压缩包。这些示例可能是为了帮助初学者理解和学习 Spring Boot 的核心特性而准备的。下面,我们将深入探讨 Spring ...
通过上述步骤,你可以创建一个简单的Spring AOP应用,实现对特定方法的调用进行日志记录。当然,AOP的潜力远不止于此,你可以根据实际场景扩展通知类型,或者创建更复杂的切入点表达式,以实现更细粒度的控制。 在...
它支持基于cron表达式或者固定延迟/间隔的定时任务,可以方便地集成到Spring应用中。 2. **启用Spring Task**: 要使用Spring定时任务,首先需要在Spring Boot的配置类上添加`@EnableScheduling`注解,这会启动一...
在这个“spring简单实例 事务回滚”的案例中,我们将深入探讨Spring如何处理事务回滚,以及它是如何在Java源码层面实现这一功能的。 首先,让我们理解什么是事务。在数据库操作中,事务是确保数据一致性的重要机制...
在这个"Spring Bean简单应用实例"中,我们将深入理解这两个概念以及如何在实际应用中使用它们。 首先,控制反转(IoC)是一种设计模式,它将对象的创建和管理职责从应用代码中分离出来,转交给容器来处理。这样,...
在“Job基于Spring简单实例”中,我们可能会遇到以下关键概念和组件: 1. **配置Spring任务调度**: 配置Spring的任务调度通常需要在配置类中启用`@EnableScheduling`注解,这会启动一个后台任务调度器,定期检查...
在本文中,我们将深入探讨如何在IntelliJ IDEA(IDEA)中使用Spring框架进行简单的入门。Spring是一个广泛使用的开源Java框架,它为构建企业级应用程序提供了强大的支持,包括依赖注入、面向切面编程(AOP)、事务...
在“maven+spring简单实例”中,我们主要探讨如何结合这两个强大的工具来创建一个简单的Java应用。首先,我们需要了解Maven的工作原理。Maven通过项目对象模型(Project Object Model, POM)来描述项目,并利用插件...
在Spring MVC中,Controller通常是一个简单的Java类,使用了`@Controller`注解来标识。它包含了处理HTTP请求的方法,这些方法通常使用`@RequestMapping`注解来定义请求映射。例如,一个处理获取医院叫号信息的请求的...
【标题】"mybatis-spring整合简单实例代码"所涉及的知识点主要集中在如何将MyBatis与Spring框架进行集成,以便在Spring应用中利用MyBatis进行数据访问。这一过程通常包括以下几个关键步骤: 1. **环境配置**:首先...
**Spring MVC 框架实例详解** Spring MVC 是 Spring 框架的重要组成部分,它是一个用于构建 Web 应用程序的 Model-View-Controller (MVC) 模型的实现。在基于 Spring 2.5 的项目中,XML 配置是主要的配置方式,相比...
这个简单实例的学习价值在于,它可以帮助初学者理解如何将Spring和MyBatis结合使用来构建一个完整的应用程序。开发者可以通过这个例子学习到如何配置Spring的Bean,如何创建MyBatis的Mapper,以及如何在Spring中调用...
总的来说,"Spring入门案例"旨在帮助初学者理解Spring的基本原理和使用方式,包括但不限于Bean的定义与管理、依赖注入的实现、以及Spring如何简化企业级应用的开发。通过深入学习和实践这个案例,你将能够更好地掌握...
**Spring 整合 JPA 简单实例** 在现代的Java开发中,Spring框架与JPA(Java Persistence API)的结合使用已经成为了一个常见的实践,它简化了数据库操作,提供了对象关系映射(ORM)的功能。JPA是Java EE的一部分,...
对于初学者,这个实例是一个很好的起点,因为它提供了从头到尾的 Spring 应用体验。你可以通过阅读源码了解 Spring 如何配置和管理 bean,如何实现 MVC 模式,以及如何与 JSP 配合工作。同时,不要忘记利用 Spring ...
在这个"struts+hibernate+spring简单实例"中,开发者通过这三个框架的集成,创建了一个基础的登录验证系统。用户输入用户名和密码,这些信息会被发送到后台进行处理。首先,Struts作为前端控制器接收HTTP请求,并...
Spring Boot 实现的云应用开发工具集,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)操作的简单方法。...
在这个实例工程中,我们将深入探讨Spring JdbcTemplate的基本使用、优势以及常见操作。 一、Spring JdbcTemplate简介 Spring JdbcTemplate的出现是为了弥补原生JDBC在编码上的繁琐,它通过模板方法模式,将SQL执行...
在这个名为"spring一些简单的例子"的压缩包中,你可能会找到一系列帮助初学者理解并掌握Spring框架基础知识的代码示例。以下是一些相关的知识点和详细说明: 1. **依赖注入(Dependency Injection)**:Spring的...
在这个"spring-quartz简单实例"中,我们将探讨如何在Spring环境下配置和使用Quartz。 首先,我们需要引入Quartz和Spring的依赖。在Maven项目中,这通常通过在pom.xml文件中添加以下依赖来完成: ```xml ...