Spring框架

Spring 框架
Spring 使创建 Java 企业应用程序变得更加容易。并且提供了在企业环境中如何高效的使用 Java 语言所需的一切,支持Groovy Kotlin 作为 JVM 上的替代语言,并且可以根据应用程序的需要,进行灵活地创建多种架构体系
spring5 2017 9 月发布通用版本,是自 2013 12 月以来第一个主要的 Spring 版本,兼容
JavaEE8 Servlet4 Bean Validation2.0 )和 JDK9 ,集成了反应式编程 Rx 模型(完全异步和非阻塞的)
支持
Spring6 开始,已经升级到 Jakarta EE 9 级别(例如 Servlet 5.0+ JPA 3.0+ ),基于 Jakarta 命名空间
而不是传统的 javax 包。要求使用 Java 17 或更高版本,由于 Jakarta EE 9 是最低的, Jakarta EE 10 已经得到支持,Spring 准备为 Jakarta EE API 的进一步发展提供开箱即用的支持。 Spring Framework 6.0与 Tomcat 10.1 Jetty 11 Undertow 2.3 作为 web 服务器完全兼容,也与 Hibernate ORM 6.1 完全兼容
开发中出现的问题
问题描述:编码依赖问题。在程序中要分层,且层与层相互调用就会存在依赖
public class StudentAction {
/* 采用new的方式创建业务逻辑层,为硬编码的方式。这种方式缺乏灵活性,后期维护则需要编译
class文件之后覆盖原来的class文件,这种方式也体现不出面向接口编程的好处
*/
private StudentService studentService = new StudentServiceimpl();
private Student student;
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
public String save() {
studentService.save(student);
return "success";
}
}
同样在业务逻辑层调用数据访问层中 , 也会出现如下问题:
public class StudentServiceimpl implements StudentService {
// 如果底层切换的数据库,则数据访问层也要切换, 但是目前new 之后不方便修改
private StudentDao studentDao=new StudentDaoImpl();
public void save(Student student) {
studentDao.save(student);
}
}
以上代码是有问题的,即在控制层中依赖了具体的业务逻辑层,在业务逻辑层中依赖了具体的数据访问层,这样就和具体的实现类耦合在了一起,也没有发挥面向接口编程的作用。如果要更换(如要换成 StudentOracleImpl),就需要修改源代码,但是项目很多模块都需要同时修改,这样会非常麻烦;而且修改完毕之后还要编译成class 文件,覆盖原来的文件,不利于项目的后期维护,而且项目与项目之间
的依赖隐藏在了代码中,也不适合全局把握整个项目,因此维护性和二次开发比较麻烦。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值