Spring的宣传口号中有以下几点:
- 针对接口编程
- 通过XML配置业务类
- 避免不必要的Singleton
- DAO的封装
- 异常的处理
- AOP
- 一些额外功能的支持
整个Spring可以这样说,通过配置文件对业务进行配置。
当然有些口号确实帮助程序减轻了开发工作,也使得Web开发更加容易,但是并不是所有的口号都描述了事实。
我的看法列在下面,供大家参考:
配置文件有一定的灵活性,但是万事有利有弊,配置文件在带来灵活性的同时,也带来了很多弊端:
- 一般来说,配置文件是无法利用编译器的静态检查功能,只能通过大量单元测试来解决问题,也就是说它将许多可以静态编译器可以发现的错误,推迟到了单元测试甚至运行时才能发现。这样需要编写大量的单元测试,甚至部分是不需要的,无谓的增加开发量。即使进行一些简单修改,也需要完整的运行测试用例,增加了测试量。
- 有时候说XML配置可以随时修改,不需要重新启动服务,其实不见得,如果新增加了或者修改了类,不管有没有修改配置文件都需要重新启动服务(大部分的WEB Server可以支持热布署),从这方面来看,修改配置文件和修改代码没有质的区别。
- 利用IDE,如Eclipse很容易查看代码,包括继承,调用等,对代码也很容易管理,对于XML配置文件,随着模块的增加,不仅难以维护,而且难以查找。
- 如何重构,一般的IDE主要是支持代码级的重构,对XML重构的支持都不完善,XML的验证机制也很难保证XML文件的正确性。
- XML配置文件带来弱类型的使用,也就是说如果你要使用一个对象,必须进行强行转换,这样使用,对Java这种强类型的编译语言,其实不一定是一件好事,一般的设计中总要尽量避免强行转型的。
分享到:
相关推荐
下面我们将对 Spring Boot 中的几种注入方法进行详细的介绍和分析。 1. @Autowired @Autowired 是 Spring 中最常用的注入方法之一,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。@Autowired ...
这个压缩包文件"spring一些常用的jar包"显然包含了用于构建和运行Spring应用的基础组件。以下是对这些关键jar包及其功能的详细解释: 1. **springsource**: 这个可能是指Spring的源代码库或者相关的工具,...
Spring 2.0是Spring框架的一个里程碑,它引入了AOP代理、JDBC抽象层、对JSF的支持以及对portlet的集成。然而,随着时间的推移,Spring 3.0.5带来了许多显著的改进和增强: 1. **泛型支持**:Spring 3.0引入了对Java...
Spring Integration + Spring WS 整合 在 Java 领域中,Spring Integration 和 Spring WS 是两个常用的框架,它们分别负责...这个项目对新手入门非常友好,因为它提供了一个简单的示例代码,使得开发者可以快速上手。
首先,Spring 5是Java开发者广泛使用的开源框架,它的主要改进包括对Java 8及更高版本的全面支持、反应式编程的支持(通过Spring Framework 5.0的WebFlux模块)、更好的类型安全的事件处理系统,以及对HTTP/2协议的...
在Java开发领域,Spring Boot和Spring Batch的整合是构建高效批处理系统的一种常见方式。Spring Boot以其简洁的配置和快速的启动能力深受开发者喜爱,而Spring Batch作为Spring框架的一部分,专注于批量处理任务,...
"SpringTest_springtest_spring_java_Framework_"这个标题暗示了我们讨论的是关于Spring框架的测试方面,可能是使用Spring进行单元测试或集成测试的一些实践。 描述中的“简单小应用,实现了一些基本的功能”可能是...
《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》从源代码的角度对Spring的内核和各个主要功能模块的架构、设计和实现原理进行了深入剖析。你不仅能从本书中参透Spring框架的出色架构和设计思想,还能从...
Spring Cloud是基于Spring Boot的一系列工具集,旨在快速建立分布式系统中的一些常见模式(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话和集群状态)。...
以下是对Spring框架及其核心组件的详细解释。 Spring框架的核心在于IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)。IoC通过管理对象的生命周期和依赖关系,使得代码...
spring3.2的源代码,至于为什么要下载spring3.2的源代码呢?...虽然每个版本之间有差别,由于我们想要研究的都是spring的一些基本的功能,关于baen解析,bean注入,aop啥的,这些基本的功能每个版本之间差别是非常小的。
Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供...
Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(DI)和面向切面编程(AOP)功能,以及对其他技术的广泛支持,成为企业级应用开发的首选。本教程集合了多个资源,旨在帮助初学者快速入门并进一步...
这通常涉及到`@PreAuthorize`和`@Secured`等注解的使用,以控制对特定路由的访问权限。 4. **处理登录和会话管理**:创建一个登录接口,用户可以通过这个接口提交凭证并获取JWT token。这个token将在后续的请求中...
包含spring 3.0.5的所有jar文件: org.springframework.aop-3.0.5.RELEASE.jar org.springframework.asm-3.0.5.RELEASE.jar org.springframework.aspects-3.0.5.RELEASE.jar org.springframework.beans-3.0.5.RELEASE...
7. **性能优化**:在4.3.14版本中,Spring团队对框架进行了大量性能优化,包括更快的启动时间、更少的内存消耗以及更高的并发处理能力。 8. **安全增强**:Spring Security是Spring生态中的重要组件,4.3.14版本...
在5.2.3.RELEASE版本中,Spring框架引入了一些新的特性和改进。例如,性能优化、错误处理的增强、对Java 13的支持以及更好的反应式编程支持。这个版本可能还包括对旧版本中已知问题的修复,以提升稳定性和兼容性。 ...
在Spring 4.3版本中,我们看到了许多改进和优化,这些变化对理解Spring的工作原理至关重要。现在,我们将深入探讨Spring 4.3中的核心概念和技术细节。 首先,让我们关注依赖注入(DI)。这是Spring的核心特性之一,...
6. **Test**:测试模块支持在开发过程中对 Spring 应用进行单元测试和集成测试,提供了模拟对象、测试上下文框架以及与各种测试框架的集成。 7. **Spring Boot**:近年来,Spring Boot 成为了快速开发 Spring 应用...