为什么要用spring, 下面我从几个非常常用的方面来分析一下.
Spring是基于j2ee框架. 他站在非常实用的角度帮助程序员解决了很多不需要程序员搞和程序员一直重复搞的问题. 下面我只讲能节省我们工作的地方以使得大家对spring有足够的兴趣.
1, 松耦合问题.
这个问题我不费太多笔墨. 因为太多的文章解释这个问题. 大名叫:依赖注入. 说白了就是根据配置文件动态组装复杂对象. 或许有人又问, 我就是用程序组合也很简单啊. 是的, 你程序组装简单业务的是很简单. 如果组装的对象里面包含了Ejb, 包含了JMS, 包含了远程RMI那就没有这样组装简单了. 就说到这里.不说那么多废话.
2, AOP, 面向切面编程. 这个功能我们自己是不好设计的. 这个功能大家也都知道是干什么的, 例如方法的事务管理, 用户安全验证, 日志记录, 等等. 为了避免将更多的代码放进方法中去.spring使用这个AOP来监控符合你配置的正则表达式的方法名字. 并允许在执行这个方法的前后执行你的方法. 这个是建立在spring上下文框架下的一个功能. 原理是映射机制. 如果没有上下文是不好搞的.
虽然spring AOP对于大多程序员就足够了. 但与AspectJ相比, 他只能是功能比较弱的解决方案. AspectJ提供了SpringAOP不可能实现的多种切点类型. 如果不够用,你可以引入AspectJ. 来帮助你做更多的工作.
上面两个是大的方面的一个简单的说明. Spring在更多细节中方便了大家的工作. 下面我继续依次给以说明.
3, Bean工厂节省了.
你不用再自己构造工厂了. 不用再用自己构造单例模式了. 不用自己再关心对象的创建了. 不用new对象了. 一切都直接从 上下文的框架中取就行了. 框架会帮助你构造你需要的对象. 你只需要跟上下文打交道就可以了. 当然,你多出了装配的工作. 但这是必须要付出的代价. 因为复杂性被集成在了配置里面. 使得你在开发层面只关心业务. 要是配置有可视化的工具就太好了. 但别着急, 找找, 现在只有想不到,没有找不到.
4, 集成Hibernate使用节省了事务的显式代码.
这个其实还是切面的一个好处应用. 配置进去是很简单. 既然能节省工作, 我就给你说一下.
5, Spring 针对不同的数据库访问模式提供了不同的模板. 分别适用于不同的持久机制.
包括: 针对JCA CCI的链接, 针对JDBC的, 支持命名参数的JDBC的链接, Hebernate的,针对iBATIS sqlMap的, Oraclede TopLink的. 这些模板使用方式的统一降低了程序员使用不同数据库的成本.模板的使用让你只关心数据的准备, 而看不到那些样板代码, 其实那些样板代码都还在, 只是被巧妙的隐含到了template中了.
例如: List list = jdbcTemplate.query(“select * from table1”,new Object[]{“a”,”b”},new RowMapper(){…..}); 意思表达到了.
其中对数据源的引用可以配置使用JNDI以从应用服务器中获取数据库的连接. 这样程序就可以集中处理业务逻辑而不必关心数据库的具体情况 .
如果不能从JNDI中取得, 那就必须在spring中配置一个连接池. 可以使用开源的DBCP. 这个支持多种数据库连接.
6, 数据库层面的缓存的使用.
Spring并不提供实际的缓存解决方案, 而是要以来第三方的缓存方案. 包括: EHcache,Gigaspaces, JBoss Bache, JCS, OSCache, Coherence .无论采用哪种缓存方案, 对于spring的配置都是一样的. 但缓存的配置文件都是要分开的. 简化了使用缓存的成本.
7. 安全验证方面节省的工作.
基于多种方式的用户验证. 都节省了很多工作.
8, 访问 RMI , 访问 Http Invoker, 访问Web Service
如果要穿越防火墙最后是后两种. 但httpInvoder局限于spring的对象. webService 可以多种.平台. 不管使用哪种, spring都为他们的配置提供了统一简单的配置. 使用起来非常方便. Xfire协助你访问webService简单易用.
9, JMS的访问. 大量冗余的代码被节省了. 配置好了即可使用. 当然你需要使用activeMQ第三方的队列服务器来接受消息.
10 , 访问EJB.. JNDI都非常简单了. 所有额外的工作,你配置好之后, spring都帮你做了. 你要做的就是: 使用.
分享到:
相关推荐
**为什么选择Spring?** Spring框架提供了多种集成其他技术的方式,例如: 1. **ORM集成**:Spring支持多种对象关系映射(ORM)框架,如Hibernate、JPA(Java Persistence API)、iBatis、JDO(Java Data Objects...
在详细的了解SpringCloud中所使用的各个组件之前,我们先了解下微服务框架的前世今生。在网站开发的前期,项目面临的流量相对较少,单一应用可以实现我们所需要的功能,从而减少开发、部署和维护的难度。这种用于...
我们为什么采用Spring技术栈?
你在项目中为什么要用 Spring? Spring 提供了许多优点,例如简化 JavaEE 开发、提高开发效率、降低系统的耦合度等。 Spring 的 AOP 技术可以将核心代码和辅助性代码分开,使开发者更关注于业务逻辑的开发。 解释...
2. 为什么要使用 Spring? Spring 的优点是提供了一个轻量级的框架,能够简化 Java 企业级应用程序的开发,提高开发效率和代码重用率。 3. 什么是 DI 机制? DI 机制是依赖注入机制,能够将对象之间的依赖关系...
1、为什么要使用Spring? 2、Bean 3、Spring事务 4、基本框架 5、面向切面编程 6、为Spring添加REST功能 7、spring计划任务 8、spel 9、面试
要开始使用 Spring,首先需要搭建开发环境。以下是一般步骤: 1. **安装 Java:** 确保你的计算机上安装了 Java 开发工具包(JDK),版本至少为 8 或更高。 2. **集成开发环境(IDE):** 可选择 Eclipse、...
2、使用 Spring 框架能带来哪些好处? 3、什么是控制反转(IOC)?什么是依赖注入? 4、请解释下 Spring 框架中的 IoC? 5、BeanFactory 和 ApplicationContext 有什么区别? 6、Spring 有几种配置方式? 7、如何用...
首先, Spring Boot是现在比较流行的框架,可以实现快速开发,包括我自己也在用它开发项目。其优点是简化了 Spring相关组件的配置,实现自动配置,降低了项目搭建的复杂度,使开发变得更加简便,从而提升开发效率。 ...
spring3.2的源代码,至于为什么要下载spring3.2的源代码呢? 个人觉得spring3.2的源代码比较好编译,没啥脾气,像我之前下载的spring的最新版本源代码,还有spring4.0的源代码,不论是使用jdk1.6还是1.7甚至是1.8编译...
例如,我们可以使用JDBCItemReader来读取数据库中的数据,自定义ItemProcessor进行业务逻辑处理,然后用JdbcPagingItemWriter将结果写回数据库。 5. **启动作业**:在Spring Boot的主类或者配置类中,使用`...
要初始化 Spring 应用程序,需要使用 Spring Tool Suite 初始化 Spring 项目,然后检查 Spring 项目结构。Spring 项目结构主要包括配置文件、Java 类文件和资源文件等。 3. 编写 Spring 应用程序 编写 Spring 应用...
3. **创建Spring项目**:在Eclipse中,可以使用"File" -> "New" -> "Other" -> "Spring" -> "Spring Project"来创建一个新的Spring项目。选择相应的模板,如"MVC"或"Web",根据项目需求配置。 4. **配置Spring**:...
1 什么是spring ? Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. spring的设计思想是,单例模式和工厂模式 2 spring的四大特点...
Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和...
│ 开篇词 从零开始:为什么要学习 Spring Boot?.mp4 │ 01 家族生态:如何正确理解 Spring 家族的技术体系?.mp4 │ 02 案例驱动:如何剖析一个 Spring Web 应用程序?.mp4 │ 03 多维配置:如何使用 Spring ...
为了将 Spring Integration 和 Spring WS 整合在一起,我们需要使用 Spring Integration 的 Web 服务 gateway。这个 gateway 允许我们将 Web 服务和 Spring Integration 集成在一起,使得我们可以使用 Spring ...
2. 使用 Spring Cloud 有什么优势? 使用 Spring Cloud 可以解决以下问题: * 与分布式系统相关的复杂性,如网络问题、延迟开销、带宽问题、安全问题等。 * 服务发现:服务发现工具管理群集中的流程和服务如何查找...
spring团队对新一代软件开发的思索。 为什么软件开发是spring boot? 为什么软件开发是spring cloud? 如何使用spring cloud搭建微服务。