SpringBoot学习笔记(一)


一、回顾Spring:

Spring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson  。

Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。

二、Spring采用了以下4种关键策略:

1、基于POJO的轻量级和最小侵入性编程,所有东西都是bean;

2、通过IOC,依赖注入(DI)和面向接口实现松耦合;

3、基于切面(AOP)和惯例进行声明式编程;

4、通过切面和模版减少样式代码,RedisTemplate,xxxTemplate;

 三、什么是SpringBoot

SpringBoot就是一个javaweb的开发框架,和SpringMVC类似,对比其他javaweb框架,SpringBoot简化开发,约定大于配置,  you can "just run",能迅速的开发web应用,几行代码开发一个http接

四、Spring Boot的主要优点:

  • 为所有Spring开发者更快的入门

  • 开箱即用,提供各种默认配置来简化项目配置

  • 内嵌式容器简化Web项目

  • 没有冗余代码生成和XML配置的要求

五、SpringBoot快速搭建项目

环境:

1.java version "1.8.0_91"

2.Apache Maven 3.6.3

3.SpringBoot 2.4.3

开发工具:

IDEA

Spring官方提供了非常方便的工具让我们快速构建应用

Spring Initializr:https://start.spring.io/

项目创建方式一:

使用Spring Initializr 的 Web页面创建项目

1、打开  https://start.spring.io/

2、填写项目信息

3、点击”Generate Project“按钮生成项目,下载此项目

4、解压项目包,并用IDEA以Maven项目导入。

5、如果是第一次使用,可能速度会比较慢,包比较多(等待)

项目创建方式二:

使用 IDEA 直接创建项目

1、创建一个新项目

2、选择spring initalizr , 可以看到默认就是去官网的快速构建工具那里实现

3、填写项目信息

4、选择初始化的组件(初学勾选 Web 即可)

5、填写项目路径

6、等待项目构建成功

(可以发现,IDEA集成了SpringBoot的创建,在IDEA上直接创建SpringBoot项目和在官网上的创建项目差不多。)

项目结构分析:

通过上面步骤完成了基础项目的创建。就会自动生成以下文件。

1、程序的主启动类

2、一个 application.properties 配置文件

3、一个 测试类

4、一个 pom.xml

pom.xml 分析:

    
    <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>2.4.3version>
        <relativePath/> 
    parent>
    
    <dependencies>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
            
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintagegroupId>
                    <artifactId>junit-vintage-engineartifactId>
                exclusion>
            exclusions>
        dependency>
    dependencies>

    <build>
        <plugins>
            
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>

            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-surefire-pluginartifactId>
                <configuration>
                    
                    <skipTests>trueskipTests>
                configuration>
            plugin>

如果在pom.xml中,这个地方出现爆红如下:

解决:检查Maven环境配置:(我的是这样就解决了,如有其他问题,自行百度)

编写一个http接口:

1、在主程序的同级目录下,新建一个controller包,一定要在同级目录下,否则识别不到

2、在包中新建一个HelloController类

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

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello(){
        return "Hello Word! My SpringBoot";
    }
}

3、编写完毕后,从主程序启动项目,浏览器发起请求,看页面返回;控制台输出了 Tomcat 访问的端口号!

访问:localhost:8083

访问:localhost:8083/hello

简单几步,就完成了一个web接口的开发!

注意点:

此时可能遇到的错误:

报错1:java: 警告: 源发行版 11 需要目标发行版 11

解决:

1.先看编译环境的JDk版本是否一致( File-Settings-Build,Execution,Deployment-Compliler-Java Complier的jdk版本是1.8)

2.再看下菜单File-Project Structure下的Project和modules的编译环境是jdk1.8

3.查看编码方式是否为utf-8

重新启动项目,项目错误消失。

报错2:Web server failed to start. Port 8080 was already in use.

报错原因:端口被占用。

解决方法:

解决方法一:修改端口:https://blog.csdn.net/zhouky1993/article/details/103974598

解决方法二:关闭占用端口的进程。 https://blog.csdn.net/zhouky1993/article/details/103976320

我用了第一种方式,在application.properties文件中加入端口号设置:

#端口号设置
server.port=8083

重新启动即可。

六、将项目打包成jar包

点击 maven的 package

如果打包成功,则会在target目录下生成一个 jar 包

 打成了jar包后,就可以在任何地方运行了!

测试:到jar包生成的文件位置,打开Windows Power Shell

 java -jar .\springBootDemo-0.0.1-SNAPSHOT.jar

浏览器去访问,也是可以访问得到的。

注意点:

打包时可能报错1:

Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0

解决办法:

在pom.xml中,修改maven-resources-plugin的版本


<plugin>
        <groupId>org.apache.maven.pluginsgroupId>
        <artifactId>maven-resources-pluginartifactId>
        <version>2.4.3version>
plugin>

打包时可能报错2:

Failed to execute goal org.apache.,maven.plugins:maven-compiler-plugin:3.8.1

在pom.xml中添加如下代码:

<plugin>
        <groupId>org.apache.maven.pluginsgroupId>
        <artifactId>maven-compiler-pluginartifactId>
        <version>3.8.1version>
        <configuration>
        <source>1.8source>
        <target>1.8target>
        configuration>
plugin>

 加餐:

更改启动时显示的字符拼成的字母,也就是 banner 图案;

1.在项目的 resources 目录下,新建一个banner.txt文件

2.到:https://www.bootschool.net/ascii 这个网站生成,然后拷贝到文件中即可!

我生成一个杭州: