欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

IDEA学习SpringBoot记录 (1)

程序员文章站 2022-06-24 12:42:29
1、配置好JAVA环境、安装IDEA(不具体展开啦) 2、为什么使用IDEA而不是Eclispe 两个软件都有在使用,发现两个软件在开发普通java项目和SSM项目、SSH项目的时候各有千秋,eclipse占用内存比IDEA小,且热部署不需要额外配置;IDEA在调试时查看表达式内容更加便捷,集成了很 ......

 

1、配置好JAVA环境、安装IDEA(不具体展开啦)

2、为什么使用IDEA而不是Eclispe

  两个软件都有在使用,发现两个软件在开发普通java项目和SSM项目、SSH项目的时候各有千秋,eclipse占用内存比IDEA小,且热部署不需要额外配置;IDEA在调试时查看表达式内容更加便捷,集成了很多工具,快捷键熟悉后更容易上手。之前由于熟悉程度和惯性一直是使用eclipse,前阵子准备学习springboot,了解后发现两个IDE相比,通过IDEA学习springboot更加方便快捷。

  eclispe需要安装STS插件,在IDEA(使用版本:2017.1.5)直接通过Spring Initializr就可以很快速的搭建一个简单的springboot项目。

3、创建流程

  file-new-project

IDEA学习SpringBoot记录 (1)

  Spring Initializr (选择使用的SDK)

  IDEA学习SpringBoot记录 (1)

填写ArtiArtifact,选择相应的选项,如图

IDEA学习SpringBoot记录 (1)

 

只选择了最基础的web和thymeleaf依赖

IDEA学习SpringBoot记录 (1)

 

IDEA学习SpringBoot记录 (1)

 

 

 若控制台出现“无效的发行版本 1.8”或者其他无效版本,检查pom.xml中依赖的java version,修改为依赖中使用的版本即可

IDEA学习SpringBoot记录 (1)

 

IDEA学习SpringBoot记录 (1)

 

 

结果还是不行,报以下错误

IDEA学习SpringBoot记录 (1)

 

 

问题在于初始化时SpringBoot的版本是2.0.1,使用1开头的版本即可。

本想修改继续使用1.7,但是后来发现Spring boot 版本的许多jar包 依赖JDK1.8,所以启动时候会报错,类似不支持jdk版本的提示。只要换上JDK8 环境就可以啦。

而且现在1.7有点过旧了,所以还是换成决定1.8开发。

 

 

 

 目录及修改内容,让页面显示“Hello World”

 

  @EnableAutoConfiguration 和 SpringApplication 。

  @EnableAutoConfiguration 用于自动配置。简单的说,它会根据你的pom配置(实际上应该是根据具体的依赖)来判断这是一个什么应用,并创建相应的环境。

  在上面这个例子中,@EnableAutoConfiguration 会判断出这是一个web应用,所以会创建相应的web环境。

  SpringApplication 则是用于从main方法启动Spring应用的类。默认,它会执行以下步骤:

  1. 创建一个合适的ApplicationContext实例 (取决于classpath)。
  2. 注册一个CommandLinePropertySource,以便将命令行参数作为Spring properties。
  3. 刷新application context,加载所有单例beans。
  4. 激活所有CommandLineRunner beans。

  默认,直接使用SpringApplication 的静态方法run()即可。但也可以创建实例,并自行配置需要的设置。

IDEA学习SpringBoot记录 (1)

 

显示结果如下

IDEA学习SpringBoot记录 (1)

此时的状态栏

IDEA学习SpringBoot记录 (1)

 

以下内容摘抄自 https://blog.csdn.net/small_mouse0/article/details/77800737,感谢

添加一个类,并使用yml格式配置application

  修改默认端口和context-path,并配置新的requestMapping。

IDEA学习SpringBoot记录 (1)

IDEA学习SpringBoot记录 (1)

结果如下

IDEA学习SpringBoot记录 (1)

注意细节

 

【1】,springboot启动时日志是排错的关键地方,凡是实例化成功的Controller都会有一个URL,以及启动的端口号。如下图: 
IDEA学习SpringBoot记录 (1)



【2】context-path: /helloworld会出现在下图位置,,同时还有一些过滤器,,也都有显示,,dispatcherServlet学习过SpringMVC的读者应该不陌生吧,,核心请求分发处理器。 
IDEA学习SpringBoot记录 (1)



【3】dispatcherServlet在第一次访问时创建,并初始化,servlet是单例的,,所以创建一次。 
servlet详解及Tomcat中多线程下的Servlet 
【Tomcat线程池】线程池配置及线程分配测试 

IDEA学习SpringBoot记录 (1)

【4】有个问题,SpringBoot是如何启动Tomcat的,,我没配置,它咋知道?

 

看了下源码原来有如下配置,springBoot在,

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </dependency>

Starter for using Tomcat as the embedded servlet container. De 
fault servlet container starter used by spring-boot-starter-web 
Stater使用Tomcat作为Servlet容器,默认Servlet容器starter通过spring-boot-starter-web使用。

解释一下,,就是配置了【spring-boot-starter-web】,会默认带一个Tomcat,作为Servlet容器。 



【5】学过SpringMVC的读者都知道,Controller需要配置ResponstBody才能够返回内容,否则会去找ViewResolver进行转view输出,此处是直接输出的,,??why

【@RestController】这个注解是一个组合注解,它包含了这两个注解【@Controller】【@ResponseBody】所以可以直接输出,,方便了许多。