1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?

这篇具有很好参考价值的文章主要介绍了1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大家好,我是晓星航。今天为大家带来的是 JavaEE 进阶导读 相关的讲解!😀

1.为什么要学框架?

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

框架主要体现在思维方式和编程思想上,与代码语言无关。

易⽤、简单、⾼效的特性体现在哪些⽅⾯呢?继续往下看。

2.框架的优点展示(SpringBoot VS Servlet)

使⽤ Spring Boot 项⽬演示框架相⽐于 Servlet 所具备的以下优点:

  1. ⽆需配置 Tomcat,点击“运⾏”按钮就可以运⾏项⽬,Spring Boot 内置了 Web 容器(可直接运 ⾏)。
  2. 快速添加外部 jar 包。
  3. 快速发布项⽬(使⽤ java -jar ⽅式就可以发布)。
  4. 对象⾃动装配。

使⽤ SpringBoot 和 Servlet 对⽐,演示⼀个⽤户添加的案例,展示以上优点。

2.1 Servlet 项⽬开发

2.1.1 创建项⽬

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

2.1.2 添加引⽤

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

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

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

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

在项⽬中右键添加“源代码”⽂件夹,如下图所示:

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

2.1.3 添加业务代码

配置路由⽂件 web.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="false">
</web-app>

添加实体类:

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);
 }
}

添加控制器:

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/adduser")
public class AddUser extends HttpServlet {
 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
 this.doPost(req, resp);
 }
 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp
) throws ServletException, IOException {
 // 1.获取参数
 String name = req.getParameter("name");
 //...
 // 2.插⼊数据库
 System.out.println("插⼊数据库");
 // 3.返回结果
 resp.setContentType("text/html");
 resp.setCharacterEncoding("utf-8");
 resp.getWriter().println("添加成功:" + name);
 }
}

2.1.4 运⾏项⽬(配置tomcat)

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

2.1.5 Maven配置

本地仓库地址查询:

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

上图可以看到,博主的仓库地址包含中文,因此需要重新选择仓库位置,将仓库进行转移,转移仓库位置方法在后面为大家进行讲解!!!

我们把本地仓库地址拷贝到c盘中查询

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

可以看到我们本地仓库有这么多的地址

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

例如我们进入mysql可以看到我们mysql的Maven配置文件

2.1.5.1修改本地Maven仓库地址

最初的Maven默认地址位置:

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

1.首先找到我们之前的Maven本地地址所在的位置

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

2.创建好新的文件夹位置并将C盘中旧的Maven仓库中的资源全部拷贝过来!

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

3.再返回idea的设置中,找到设置Maven仓库位置进行更改

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

如此我们便大功告成了!!!(注意文件夹的命名千万不要包含中文,否则日后使用的时候可能会报错!)

2.1.5.2 配置settings.xml文件

从网上下载资源包并解压放在文件夹中

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

右键使用vscode或者其他文本编辑器打开查看(因为文本编辑器可以把代码部分高亮表示出来,方便我们查看以及修改)

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

从图中我们可以发现,这个settings.xml 文件使用的是阿里云的镜像仓库

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

最后我们需要选择一下,让我们以后的新项目都会自动配置到我们Maven的新仓库去下载

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

可以看到打开后还是我们的setting设置中

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

找到Maven设置出发现我们新项目的Maven仓库位置还是默认的C盘

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

重复之前的操作将此处的位置更改到我们更改的文件夹中,点击Apply然后OK即可

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

此时便配置完成了,我们的代码会优先从阿里云中下载所需的依赖,如果阿里云没有的话才会转而找到中央仓库去下载。

2.1.5.3项目 本地仓库 中央仓库 私服 区别与联系

本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源。

远程仓库:非本机电脑上的仓库,为本地仓库提供资源。
远程仓库又分私服和中央仓库:

中央仓库:Maven 团队维护,存储所有资源的仓库。

私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源;

项目 本地仓库 中央仓库 关系图:

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

项目 本地仓库 中央仓库 私服 关系图:

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

项目 本地仓库 中央仓库 私服 镜像仓库 关系图:

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

2.1.5.4Maven包下载不下来

1.确认包是否存在

2.如果包存在,就多下几次

3.如果下载了很多次,都下载不下来

1)是否配置了国内源 setting.xml

2)目录是否是全英文 存在中文的话,修改路径

3)删除本地仓库的jar包,重新下载
可能存在的一个原因是,上次下载时,因为网络原因,造成jar包下载了一半
解决方法是删除指定没下载完的jar包就可以啦

2.1.5.5快捷修改文件名

shift + F6可以快捷改文件夹的名字

不要直接修改文件名,通过idea提供的方式修改文件名的好处:
1.idea 会帮我们查找相关的代码
2.idea 会进行提示
3.idea 会帮我们把关联的文件名相关的代码
全部修改

2.1.6 Servlet 痛点分析

  1. 添加外部 jar 不⽅便,容易出错,⽐如添加了⼀个不匹配的外部 jar 版本;
  2. 运⾏和调试的时候需要配置 tomcat 不⽅便;
  3. 发布不⽅便,servlet 项⽬必须依靠外置的 tomcat(外置的 web 容器)运⾏。
  4. 路由配置不⽅便,⼀个访问地址对应⼀个 Servlet 类。

⽽以上痛点问题,都可以通过 JavaEE 进阶框架解决,接下来我们⼀起来看。

2.2 SpringBoot 项⽬开发

各个目录文件夹解析:

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

2.2.1 创建并添加引⽤

还可以通过
start.spring.io
网址来创建项目,通过网页编程,然后将文件保存知道本地

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

由于博主是专业版idea因此不需要额外安装插件来导入SpringBoot

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

这里Java版本无8,jdk使用1.8不适应Java17的版本要求不能创建项目,因此我们先默认创建进去之后再改jdk版本和Java版本,之后文章会教,注意阅读噢!!!(这里我们选用Java17版本,jdk17,SpringBoot版本3)

springboot3.0更新后,idea创建springboot2.x项目 - CSDN App

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

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

2.2.2 添加代码并运⾏程序

⽤户实体:

import lombok.Data;
@Data
public class User {
 private Integer id;
 private String name;
 private Integer age;
 private String password;
}

添加控制器:

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();
 }
}

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

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

程序2:

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java
package org.example.demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
/**
 * Created with IntelliJ IDEA
 * Description
 * User: 晓星航
 * Date: 2024 -03 -04
 * Time: 16:13
 */
public class HelloController {
    @RequestMapping("/sayhi")
    public String sayHi() {
        return "hello,SpringBoot";
    }

}

写好代码后,我们找到下图中的运行程序类直接运行,即可将程序跑到网页上,不需要再去花大量时间配置Tomcat了。

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

注: @RequestMapping("/sayhi") 这里代码意为将上述代码放入了sayhi这个文件夹中

我们输入 127.0.0.1:8080/sayhi 即可成功访问并展示我们刚才所写的代码

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

关闭运行,再次访问

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

可以发现我们程序运行了了

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

如果我们再加一个网页进来,我们仍然只需要重新返回1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java
中点击重新运行就可

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

2.2.3 发布程序

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

2.2.4 Tomcat启动失败

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?,JavaEE进阶,java-ee,学习,spring boot,后端,java

2.2.5 SpringBoot VS Servlet

SpringBoot 相⽐于 Servlet 的优点总结:

  1. 添加外部 jar 更容易,不易出错(版本问题⽆需关注);
  2. 调试项⽬更加⽅便,⽆需配置 Tomcat;
  3. 发布项⽬更加⽅便,⽆需配置 Tomcat;
  4. 添加路由更加⽅便,⽆需每个访问地址都添加⼀个类。

现在我们已经知道了框架的优点了,哪怎么去学呢?

3.怎么学框架?

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

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

4.框架学习中的难点

  1. 配置⽐较多。
  2. 需要⼤量的外部 jar 包,在下载时容易出错。
  3. 会涉及简单的软件⼯程的设计思想(分层思想:前、后端的分层思想;后端⼯程的分层思想)。
  4. 知识点相对来说⽐之前的知识更加的分散,要仔细听才能搞懂各个知识点的逻辑关系。
  5. 要记的东⻄很多,所以要⼤量地重复练习才能记住,⽐如各种注解。

感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘文章来源地址https://www.toymoban.com/news/detail-851852.html

到了这里,关于1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 有了Spring为什么还需要SpringBoot呢

    目录 一、Spring缺点分析 二、什么是Spring Boot 三、Spring Boot的核心功能 3.1 起步依赖 3.2 自动装配 1. 配置文件和依赖太多了!!! spring是一个非常优秀的轻量级框架,以IOC(控制反转)和AOP(面向切面)为思想内核,极大简化了JAVA企业级项目的开发。虽然Spring的组件代码是轻

    2024年02月08日
    浏览(36)
  • 【Golang】Golang进阶系列教程--为什么说 Go 语言字符串是不可变的?

    最近有读者留言说,平时在写代码的过程中,是会对字符串进行修改的,但网上都说 Go 语言字符串是不可变的,这是为什么呢? 这个问题本身并不困难,但对于新手来说确实容易产生困惑,今天就来回答一下。 首先来看看它的底层结构: 和切片的结构很像,只不过少了一个

    2024年02月14日
    浏览(43)
  • springboot~InvocationHandler中为什么不能使用@Autowired

    @Autowired 是 Spring Framework 中用于自动注入依赖的注解,通常情况下可以正常工作,但有一些情况下可能无法获取到 bean 对象: Bean未定义或未扫描到 :如果要注入的 bean 没有在 Spring 上下文中定义或者没有被正确扫描到, @Autowired 将无法找到要注入的 bean。确保你的 bean 配置正

    2024年02月10日
    浏览(45)
  • SpringBoot有的时候引入依赖为什么不用加版本号

    有的小伙伴做项目时候,引入新的包时候,会有疑问,为什么有些依赖需要加版本号,有些依赖不需要加版本号?不加版本号的依赖,版本号都写在哪里了呢? 内置的依赖可以不加版本号 这是因为SpringBoot内置了很多依赖,引入这些内置的依赖时不需要加版本号,相反,如果

    2024年01月19日
    浏览(50)
  • SpringBoot 日志文件:日志的作用?为什么要写日志?

    日志、日志,日志就是记录发生了什么。为啥要记录发生了什么呢?想象⼀下,如果程序报错了,不让你打开控制台看⽇志,那么你能找到报错的原因吗?因此我们需要记录程序的行为,通过这些行为能让我们更好的发现和定位错误所在位置。 除了发现和定位问题之外,还可

    2024年02月11日
    浏览(34)
  • SpringBoot复习:(34)@EnableWebMvc注解为什么让@WebMvcAutoconfiguration失效?

    它导入了DelegatingWebMvcConfiguration 它会把容器中的类型为WebMvcConfigurer的bean注入到类型为WebMvcConfigurerComposite的成员变量configurers中。 可以看到它继承了WebMvcConfigurerSupport类 而WebMvcConfigureAutoConfiguration类定义如下 可以看到一个@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)注解。 所

    2024年02月13日
    浏览(32)
  • 深度剖析SpringBoot自动配置原理,为什么SpringBoot能为我们做那么多东西

    本文基于 spring-boot-2.2.6.RELEASE 版本的源码进行说明,不同版本的源码可能会有一些区别。 要清楚SpringBoot自动配置原理,就要明白 @SpringBootApplication 注解的组成,此注解主要是这三个注解组成: @SpringBootConfiguration , @EnableAutoConfiguration , @ComponentScan 。 下面是源码: @SpringBo

    2024年02月13日
    浏览(32)
  • SpringBoot数据源——为什么平时默认线程池是Hikari

    本文主要对DataSourceAutoConfiguration类进行讲解,然后对这个类的注解做一个解释,所以直接打开这个类,开始看…… ps:我用的版本是2.3.0.RELEASE 目录 DataSourceAutoConfiguration类注解 @Configuration(proxyBeanMethods = false) @ConditionalOnClass({ DataSource.class, EmbeddedDatabaseType.class }) @ConditionalOnMis

    2024年02月06日
    浏览(41)
  • 【Golang】Golang进阶系列教程--为什么 Go for-range 的 value 值地址每次都一样?

    循环语句是一种常用的控制结构,在 Go 语言中,除了 for 以外,还有一个 range ,可以使用 for-range 循环迭代数组、切片、字符串、map 和 channel 这些数据类型。 但是在使用 for-range 循环迭代数组和切片的时候,是很容易出错的,甚至很多老司机一不小心都会在这里

    2024年02月15日
    浏览(48)
  • 为什么要学习算法

    我们每个人可能都会有过的经历: 是不是从学校开始,你就觉得数据结构难学,然后一直没认真学? 工作中,一遇到数据结构这个坑,你又发自本能地迅速避让,因为你觉得自己不懂,所以也不想深究,反正看起来无关大局? 当你想换工作面试,或者研究某个开源项目源码

    2024年02月01日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包