当前位置: 首页 > web >正文

Spring boot和SSM项目对比

目录对比

springboot目录

project├─src│   ├─main│   │   ├─java│   │   │   ├─com.example.demo│   │   │   │   ├─config    // 存放SpringBoot的配置类│   │   │   │   ├─controller    // 存放控制器类│   │   │   │   ├─entity    // 存放实体类│   │   │   │   ├─mapper    // 存放Mapper接口和xml文件│   │   │   │   ├─service    // 存放业务逻辑接口和实现类│   │   │   │   └─Application.java    // SpringBoot启动类│   │   │   └─resources│   │   │       ├─static    // 存放静态资源(css/js/img等)│   │   │       ├─templates    // 存放模板页面(不是jsp)│   │   │       ├─application.yml    // SpringBoot配置文件│   │   │       └─mybatis    // 存放MyBatis配置和sql文件│   │   └─test    // 存放测试类│   └─test└─target    // 执行maven命令后生成的build目录
src/main/java:Java源代码目录
src/main/resources:资源文件目录
src/test/java:测试代码目录
src/test/resources:测试资源目录
pom.xml:Maven构建文件

SSM目录

src/main/java:Java源代码目录
controller:SpringMVC的控制器目录
dao:数据访问层目录,实现与数据库的交互
entity:实体类目录,与数据库表一一对应
service:业务逻辑层目录,实现业务逻辑的处理
utils:工具类目录,例如处理分页、日期等通用操作的类
src/main/resources:配置文件目录
mapper:MyBatis的映射文件目录,实现SQL语句的映射
spring:Spring相关的配置文件目录,包括Spring的配置文件、SpringMVC的配置文件等
db.properties:数据库连接配置文件
src/main/webapp:Web应用目录
WEB-INF:包含JSP文件的目录和Spring配置文件
static:包含静态资源的目录,如CSS、JS、图片等
index.jsp:首页文件
src/main/java:Java源代码目录
src/main/resources:资源文件目录
src/test:测试代码目录
src/main/webapp:Web应用程序的Web资源目录
pom.xml:Maven构建文件

SSM是一种传统的Java Web开发框架,它们三者分别是Spring、SpringMVC和MyBatis。
SpringBoot则是一个基于Spring框架的快速开发框架,它提供了很多基础功能的自动化配置和约定优于配置的方式来简化开发,比如自动配置数据源、自动配置Servlet容器、自动配置日志等等。

使得开发人员可以更专注于业务逻辑的实现,而不是耗费大量的时间在配置和调整上。

选择SpringBoot项目的原因有以下几点:

简化配置:SpringBoot通过自动配置,简化了项目的配置过程。开发者不需要再手动配置众多的XML文件或注解,只需要使用一些默认配置,就可以快速开发出一个可用的应用程序。

集成度高:SpringBoot提供了丰富的starter依赖,可以快速集成常用的框架和技术,如Spring、Hibernate、MyBatis、Thymeleaf等,同时也支持与其他开源项目的集成。

提高开发效率:SpringBoot通过自动配置和快速集成的特性,让开发者更加关注业务逻辑的实现,快速开发出高质量的应用程序,提高了开发效率。

易于维护:由于SpringBoot减少了配置文件和注解的复杂性,项目结构简单,代码易于维护,提高了项目的可读性和可维护性。

社区活跃:SpringBoot作为Spring官方针对开发者的需求推出的一个项目,得到了广泛的认可和支持,因此拥有一个活跃的社区,可以及时获取到问题的解决方案和新版本的更新。

Servlet

Servlet 是 Server Applet 的缩写,译为“服务器端小程序”,是一种使用 Java 语言来开发动态网站的技术。Servlet 是 Sun 公司推出的一种基于 Java 的动态网站开发技术。编写 Servlet 代码需要遵循 Java 语法,一个 Servlet 程序其实就是一个按照 Servlet 规范编写的 Java 类。Servlet 程序需要先编译成字节码文件(.class文件),然后再部署到服务器运行。

Servlet 是基于 Java 语言的,运行 Servlet 必然少不了 JRE 的支持,它负责解析和执行字节码文件(.class文件)。然而 JRE 只包含了 Java 虚拟机(JVM)、Java 核心类库和一些辅助性性文件,它并不支持 Servlet 规范。要想运行 Servlet 代码,还需要一种额外的部件,该部件必须支持 Servlet 规范,实现了 Servlet 接口和一些基础类,这种部件就是 Servlet容器。

一个动态页面对应一个 Servlet 类,开发一个动态页面就是编写一个 Servlet 类,当用户请求到达时,Servlet 容器会根据配置文件(web.xml)来决定调用哪个类。

Servlet 容器就是 Servlet 程序的运行环境,它主要包含以下几个功能:

  • 实现 Servlet 规范定义的各种接口和类,为 Servlet 的运行提供底层支持;
  • 管理用户编写的 Servlet 类,以及实例化以后的对象;
  • 提供 HTTP 服务,相当于一个简化的服务器。

Web容器

部署动态网站一般需要 Web 服务器的支持,例如:

  • 运行 PHP 网站一般选择 Apache 或者 Nginx;
  • 运行 ASP/ASP.NET 网站一般选择 IIS;
  • 运行 Python 网站一般选择内置的 WSGI 服务器模块——wsgiref。

常用的 Web 容器有 Tomcat、Jboss、Jetty、WebLogic 等,其中 Tomcat 由 Java 官方提供,Web 容器往往也会自带 Web 服务器模块,提供基本的 HTTP 服务,因此这里的 Web容器 = Web服务器 + Servlet容器

TOMCAT

子目录说明
bin      命令中心(启动命令,关闭命令……)
conf     配置中心(端口号,内存大小……)
lib       Tomcat 的库文件。Tomcat 运行时需要的 jar 包所在的目录。
logs      存放日志文件。
temp     存储临时产生的文件,即缓存。
webapps  存放项目的文件,web 应用放置到此目录下浏览器可以直接访问。
work     编译以后的 class 文件。

在 Servlet 中,一个动态网页对应一个 Servlet 类,我们可以通过 web.xml 配置文件将 URL 路径和 Servlet 类对应起来。访问一个动态网页的过程,实际上是将对应的 Servlet 类加载、实例化并调用相关方法的过程;网页上显示的内容,就是通过 Servlet 类中的某些方法向浏览器输出的 HTML 语句。

serlet三种创建方式

在Serlet中,一个动态网页对应一个 Servlet 类,我们可以通过 web.xml 配置文件将 URL 路径和 Servlet 类对应起来。

所以,使用 Servlet 创建动态网页的第一步,就是创建 Servlet 类

Servlet 规范的最顶层是一个名为 javax.servlet.Servlet 的接口,所有的 Servlet 类都要直接或者间接地实现该接口。直接实现 Servlet 接口不太方便,所以 Servlet 又内置了两个 Servlet 接口的实现类(抽象类),分别为 GenericServlet 和 HttpServlet,因此,创建 Servlet 类有如下三种方式:

  • 实现 javax.servlet.Servlet 接口,重写其全部方法。
  • 继承 javax.servlet.GenericServlet 抽象类,重写 service() 方法。
  • 继承 javax.servlet.http.HttpServlet 抽象类,重写 doGet() 或 doPost() 方法。

http://www.xdnf.cn/news/8641.html

相关文章:

  • Sqlserver-数据库的事务日志已满,原因为“LOG_BACKUP”。
  • 转移dp简单数学数论
  • SAP全面转向AI战略,S/4HANA悄然隐身
  • 【笔记】为 Miniconda 安装图形界面的方法
  • 微服务架构实战:Eureka服务注册发现与Ribbon负载均衡详解
  • Day126 | 灵神 | 二叉树 | 层数最深的叶子结点的和
  • 第2章 数据库设计
  • 多场景游戏AI新突破!Divide-Fuse-Conquer如何激发大模型“顿悟时刻“?
  • JAVA网络编程——socket套接字的介绍上(详细)
  • uniapp+ts 多环境编译
  • JavaSE核心知识点03高级特性03-03(IO流)
  • 5 分钟速通密码学!
  • 人工智能发展
  • 【C/C++】胜者树与败者树:多路归并排序的利器
  • MFC——编程框架和基础
  • “可观、可测、可调、可控“,四可功能如何让光伏电站变身电网“优等生“?
  • Spring AI(8)——流式响应
  • wafer晶圆几何形貌测量系统:厚度(THK)翘曲度(Warp)弯曲度(Bow)等数据测量
  • 直线导轨运转过程中如何避免震动发生?
  • Linux上部署IgH EtherCAT主站教程
  • B2C商城架构对比:ZKmall模板商城为何选择 Spring Cloud
  • 《P1470 [USACO2.3] 最长前缀 Longest Prefix》
  • SOC-ESP32S3部分:9-GPIO输入按键状态读取
  • python打卡训练营打卡记录day34
  • 电力设备类——如何使用YOLOv8模型对配网缺陷检数据集进行训练、评估和可视化 这个配网销钉缺失检测图像数据集 配网缺陷检测图像数据集 配网缺陷
  • 【达梦数据库】groupadd无法打开etc group
  • C++:适配器
  • VsCode配置
  • 前后端分页详解
  • Java的动态加载及类加载器实践