什么是框架?为什么要学框架?

一、什么是框架

框架是整个或部分应用的可重用设计,是可定制化的应用骨架。它可以帮开发人员简化开发过程,提高开发效率。

项目里有一部分代码:和业务无关,而又不得不写的代码==>框架

项目里剩下的部分代码:实现业务功能需要的逻辑代码

简而言之,框架是一个应用系统的半成品,开发人员在框架的基础上,根据业务需求开发功能。即:别人搭台,你唱戏。

二、为什么要学框架

  1. 学习框架相当于从 " 小作坊 " 到 " 工厂 " 的升级,小作坊什么都要自己做,工厂是组件式装配,特点就是高效。
  2. 框架更加易用、简单且高效。

三、框架优点展示**(SpringBoot VS Servlet)**

使用 Spring Boot 项目演示框架相比于 Servlet 所具备的以下优点:

  1. 无需配置 Tomcat ,点击 " 运行 " 按钮就可以运行项目, Spring Boot 内置了 Web 容器(可直接运行)。
  2. 快速添加外部 jar 包。
  3. 快速发布项目(使用 java -jar 方式就可以发布)。
  4. 对象自动装配。
  1. ......
    使用 SpringBoot Servlet 对比 ,演示一个用户添加的案例,展示以上优点。

3.1 Servlet****项目开发

3.1.1****创建项目

3.1.2****添加引用

打开 https://mvnrepository.com 搜索 servlet 添加框架应用到 pom.xml 中,如下图所示:

PS:其中还需要注意使用的版本号

在项目中右键添加"源代码"文件夹,如下图所示:

3.1.3****添加业务代码

配置路由文件 web.xml :

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"
metadata-complete="true">
<servlet>
<servlet-name>user</servlet-name>
<servlet-class>UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>user</servlet-name>
<url-pattern>/user</url-pattern>
</servlet-mapping>
</web-app>

添加实体类:

java 复制代码
public class User {
private Integer id;
private String name;
private Integer age;
private String password;
// 其他属性...
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return String.format("{id:%d,name:%s,age:%d,password:%s}",
id,name,age,password);
}
}

添加控制器:

java 复制代码
import java.io.IOException;
public class UserServlet extends javax.servlet.http.HttpServlet {
protected void doPost(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) throws
javax.servlet.ServletException, IOException {
this.doGet(request,response);
}
protected void doGet(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) throws
javax.servlet.ServletException, IOException {
User user = new User();
user.setId(Integer.parseInt(request.getParameter("id")));
user.setName(request.getParameter("name"));
user.setAge(Integer.parseInt(request.getParameter("age")));
user.setPassword(request.getParameter("password"));
// 获取其他字段.....
System.out.println(user.toString());
response.setContentType("text/html");
response.getWriter().println(user.toString());
}
}

3.1.4运行项目(配置tomcat)


3.1.5 Servlet 痛点分析

  1. 添加外部 jar 不方便,容易出错,比如添加了一个不匹配的外部 jar 版本;
  2. 运行和调试的时候需要配置 tomcat 不方便;
  3. 发布不方便, servlet 项目必须依靠外置的 tomcat (外置的 web 容器)运行。
  1. 路由配置不方便,一个访问地址对应一个 Servlet 类。
    而以上痛点问题,都可以通过 JavaEE 进阶框架解决,接下来我们一起来看。

3.2 SpringBoot****项目开发

3.2.1****创建并添加引用

选择 SpringBoot 版本和添加外部引用:

3.2.2****添加代码并运行程序

用户实体:

java 复制代码
import lombok.Data;
@Data
public class User {
private Integer id;
private String name;
private Integer age;
private String password;
}

添加控制器:

java 复制代码
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/user")
@RestController
public class UserController {
@RequestMapping("/add")
public String add(User user){
return user.toString();
}
}

点击调试按钮即可运行项目:

访问地址: http://localhost:8080/user/add?id=1\&age=18\&name=java\&password=123
即可运行项目,如下图所示

3.2.3****发布程序

使用 jar -jar xxx.jar 直接发布程序:

3.2.4 SpringBoot VS Servlet

SpringBoot 相比于 Servlet 的优点总结:

  1. 添加外部 jar 更容易,不易出错(版本问题无需关注);
  2. 调试项目更加方便,无需配置 Tomcat ;
  3. 发布项目更加方便,无需配置 Tomcat ;
  4. 添加路由更加方便,无需每个访问地址都添加一个类。
    现在我们已经知道了框架的优点了,哪怎么去学呢?

**四、**怎么学框架?

  • 先从基础框架 Spring 开始(工具箱)
  • Spring Boot 快速开发 Spring 脚手架
  • MyBatis 快速操作数据库
  • 其他:日志、事务、拦截器....

框架学习中需要注意什么呢?

四、框架学习中的难点

  1. 配置比较多。
  2. 需要大量的外部 jar 包,在下载时容易出错。
  3. 会涉及简单的软件工程的设计思想(分层思想:前、后端的分层思想,及后端工程的分层思想)。
  4. 知识点相对来说比之前的知识更加的分散,要仔细学习才能搞懂各个知识点的逻辑关系。
  5. 要记的东西很多,所以要大量地重复练习才能记住,比如各种注解。
相关推荐
阿华的代码王国3 分钟前
【JavaEE】——多线程(join阻塞,计算,引用,状态)
java·开发语言·数据结构·java-ee
江喜原8 分钟前
微服务下设计一个注解标识是否需要登录
java·微服务·架构·登录
ABin-阿斌15 分钟前
SpringBoot 整合 Easy_Trans 实现翻译的具体介绍
java·spring boot·后端
菜鸟求带飞_17 分钟前
算法打卡:第十一章 图论part03
java·数据结构·算法·深度优先·图论
圆头圆脑圆JAVA17 分钟前
简单了解微服务--黑马(在更)
java·spring boot·微服务
木子欢儿25 分钟前
在 Debian 12 上安装 Java 21
java·运维·开发语言·debian
一二小选手28 分钟前
【高级编程】XML DOM4J解析XML文件(含案例)
xml·java
终末圆29 分钟前
MyBatis XML映射文件编写【后端 18】
xml·java·开发语言·后端·算法·spring·mybatis
就这个java爽!30 分钟前
超详细的XML介绍【附带dom4j操作XML】
xml·java·开发语言·数据库·青少年编程·eclipse
kunkun10131 分钟前
Mybatis的XML实现方法
xml·java·mybatis