IDEA学习SpringBoot记录 (1)

JAVA学习网 2018-04-21 06:00:13

 

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

  Spring Initializr (选择使用的SDK)

  

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

 

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

 

 

 

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

 

 

 

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

 

 

问题在于初始化时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()即可。但也可以创建实例,并自行配置需要的设置。

 

显示结果如下

此时的状态栏

 

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

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

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

结果如下

注意细节

 

【1】,springboot启动时日志是排错的关键地方,凡是实例化成功的Controller都会有一个URL,以及启动的端口号。如下图: 
这里写图片描述



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



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

这里写图片描述

【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】所以可以直接输出,,方便了许多。

 

阅读(762) 评论(0)