zoukankan      html  css  js  c++  java
  • 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.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.4.3</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        
        <dependencies>
            <!--web场景启动器-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!--springboot单元测试-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
                <!-- 剔除依赖 -->
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <!-- 打包插件 -->
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
    
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <!--自己添加的,跳过项目运行测试用例-->
                        <skipTests>true</skipTests>
                    </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.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.4.3</version>
    </plugin>

    打包时可能报错2:

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

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

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

     加餐:

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

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

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

    我生成一个杭州:

    个人学习笔记,针对本人在自学中遇到的问题。

  • 相关阅读:
    初识MySQL
    正则表达式
    多线程
    多进程
    Python基础--模块
    Python基础--异常
    Python基础--面向对象
    Python基础--文件操作
    Python基础--函数
    python3 日期时间差计算
  • 原文地址:https://www.cnblogs.com/1693977889zz/p/14544404.html
Copyright © 2011-2022 走看看