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 5是Java开发者广泛使用的开源框架,它的主要改进包括对Java 8及更高版本的全面支持、反应式编程的支持(通过Spring Framework 5.0的WebFlux模块)、更好的类型安全的事件处理系统,以及对HTTP/2协议的...
`Spring3.2中文版.pdf`是Spring 3.2版本的中文文档,此版本进一步优化了对Java EE 6的支持,增强了数据访问和事务管理功能,包括JPA 2.0的改进和对NoSQL数据库的支持。3.2还引入了Spring Framework Profile特性,...
在Java开发领域,Spring Boot和Spring Batch的整合是构建高效批处理系统的一种常见方式。Spring Boot以其简洁的配置和快速的启动能力深受开发者喜爱,而Spring Batch作为Spring框架的一部分,专注于批量处理任务,...
"SpringTest_springtest_spring_java_Framework_"这个标题暗示了我们讨论的是关于Spring框架的测试方面,可能是使用Spring进行单元测试或集成测试的一些实践。 描述中的“简单小应用,实现了一些基本的功能”可能是...
以下是对Spring框架及其核心组件的详细解释。 Spring框架的核心在于IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)。IoC通过管理对象的生命周期和依赖关系,使得代码...
spring3.2的源代码,至于为什么要下载spring3.2的源代码呢?...虽然每个版本之间有差别,由于我们想要研究的都是spring的一些基本的功能,关于baen解析,bean注入,aop啥的,这些基本的功能每个版本之间差别是非常小的。
Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(DI)和面向切面编程(AOP)功能,以及对其他技术的广泛支持,成为企业级应用开发的首选。本教程集合了多个资源,旨在帮助初学者快速入门并进一步...
这通常涉及到`@PreAuthorize`和`@Secured`等注解的使用,以控制对特定路由的访问权限。 4. **处理登录和会话管理**:创建一个登录接口,用户可以通过这个接口提交凭证并获取JWT token。这个token将在后续的请求中...
随着Spring的不断进化和发展,它已经成为了企业级应用开发的重要支柱,尤其在JavaEE领域,Spring以其强大的功能和灵活的设计,逐渐取代了一些传统但技术陈旧的选择。 Spring框架的核心设计理念是依赖注入...
Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供...
本文将深入探讨Spring对JDBC(Java Database Connectivity)的支持,以及如何在实际项目中使用这些功能。 首先,Spring JDBC的核心是`org.springframework.jdbc`包,它提供了一套高级抽象,用于简化数据库操作。在...
7. **性能优化**:在4.3.14版本中,Spring团队对框架进行了大量性能优化,包括更快的启动时间、更少的内存消耗以及更高的并发处理能力。 8. **安全增强**:Spring Security是Spring生态中的重要组件,4.3.14版本...
提供的压缩包子文件名称“spring-3.2.0.RC1”显示这是一个Release Candidate 1版本,意味着它是正式版发布前的最后一个测试版本,大多数功能已经稳定,但可能还有一些小问题待解决。 总之,Spring 3.2是一个集成了...
在5.2.3.RELEASE版本中,Spring框架引入了一些新的特性和改进。例如,性能优化、错误处理的增强、对Java 13的支持以及更好的反应式编程支持。这个版本可能还包括对旧版本中已知问题的修复,以提升稳定性和兼容性。 ...
Spring Integration + Spring WS 整合 在 Java 领域中,Spring Integration 和 Spring WS 是两个常用的框架,它们分别负责...这个项目对新手入门非常友好,因为它提供了一个简单的示例代码,使得开发者可以快速上手。
6. **Test**:测试模块支持在开发过程中对 Spring 应用进行单元测试和集成测试,提供了模拟对象、测试上下文框架以及与各种测试框架的集成。 7. **Spring Boot**:近年来,Spring Boot 成为了快速开发 Spring 应用...