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

SpringBoot第一天

程序员文章站 2022-05-29 19:23:14
...

廖师兄,2小时学会Spring Boot 点击打开链接

使用IDEA创建SpringBoot项目步骤:

1、打开IDEA,创建新项目,选择Spring Initializr

SpringBoot第一天


2、输入Artifact(项目名称)

SpringBoot第一天

3、选择web

SpringBoot第一天

4、点击final

5.进入项目,可以将以下内容删除(不知道为什么)

SpringBoot第一天

6、pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>cn.sxf</groupId>
	<artifactId>upload_ht</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>upload_ht</name>
	<description>Demo project for Spring Boot</description>

	<!--起步依赖-->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.1.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

	<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>
		</dependency>
	</dependencies>

	<!--maven构建-->
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>


</project>

6、创建HelloWorld

package cn.sxf.test;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created by Lenovo on 2018/4/18.
 */

//@Controller
//@ResponseBody
@RestController
public class HelloWorld {

    @RequestMapping("/hello")
    public String sayHello() {
        System.out.println("Hello SpringBoot");
        return "Hello";
    }
}

7、.程序自动生成的SpringbootdemoApplication,会有一个@SpringBootApplication的注解,这个注解用来标明这个类是程序的入口

package cn.sxf;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * 入口(自动生成)
 */
@SpringBootApplication
public class UploadHtApplication {

	public static void main(String[] args) {
		SpringApplication.run(UploadHtApplication.class, args);
	}
}

@SpringBootApplication开启了Spring的组件扫描和springboot的自动配置功能,相当于将以下三个注解组合在了一起

(1)@Configuration:表名该类使用基于Java的配置,将此类作为配置类

(2)@ComponentScan:启用注解扫描

(3)@EnableAutoConfiguration:开启springboot的自动配置功能

8.运行SpringbootdemoApplication类

9、测试:

在地址栏中输入http://localhost:8080/hello

SpringBoot第一天


===========================遇到的坑=================================

如果直接使用@Controller这个注解(没有使用@ResponseBody注解),当运行该SpringBoot项目后,在浏览器中输入:local:8080/hello,会得到如下错误提示: 

SpringBoot第一天


出现这种情况的原因在于:没有使用模版。即@Controller 用来响应页面,@Controller必须配合模版来使用。spring-boot 支持多种模版引擎包括: 

1,FreeMarker 
2,Groovy 
3,Thymeleaf (Spring 官网使用这个) 
4,Velocity 
5,JSP (貌似Spring Boot官方不推荐,STS创建的项目会在src/main/resources 下有个templates 目录,这里就是让我们放模版文件的,然后并没有生成诸如 SpringMVC 中的webapp目录)

本文以Thymeleaf为例介绍使用模版,具体步骤如下:

第一步:在pom.xml文件中添加如下模块依赖:

<!--模板依赖-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
第二步:在resources目录的templates目录下添加一个Hello.html文件,具体工程目录结构如下:

SpringBoot第一天

其中,Hello.html文件中的内容为:

<h1>我是模板</h1>
这样,再次运行此项目之后,在浏览器中输入:localhost:8080/hello

SpringBoot第一天

===========================总结=================================

Spring中@Controller和@RestController之间的区别

相同点:都是用来表示Spring某个类的是否可以接收HTTP请求

不同点:@Controller标识一个Spring类是Spring MVC controller处理器。

          @RestController是@Controller和@ResponseBody的结合体,两个标注合并起来的作用。

注:@RestController是Spring4之后新加入的注解,原来返回json需要@ResponseBody和@Controller配合

举例:下面两中代码是一样的

@Controller  
@ResponseBody  
public class MyController { }  
  
@RestController  
public class MyController { } 
引自: https://blog.csdn.net/lom9357bye/article/details/69677120