第一次用springboot写helloworld中遇到的问题和解决

1.新建项目new-》starter spring project(不要直接finish,next)

 选择web,如图

 

 然后finish

 2.包的目录,可能有没缺自己补上

 3.先看pom.xml,如果有报错 项目右键-》Maven-》update project 即可(不行再自己查百度把)

4.在代码里添加些配置

 配置文件pom.xml

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.fang</groupId>
  <artifactId>testmven</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  
  <!-- 设置parent --> 
<parent>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>1.5.6.RELEASE</version>
</parent>

  <name>testmven Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
     <dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-api</artifactId>
      <version>8.0</version>
    </dependency>
    
    <!-- 添加web依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

  </dependencies>
  <build>
    <finalName>testmven</finalName>
    
  <!-- 添加插件 --> 
  <plugins>
     <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
     </plugin>
  </plugins>
  
  </build>
</project>

 主要仔细看有注释的下面有没有缺,自己补上。

重点:千万注意包的结构

helloworldApplication包含一个main方法,是程序的入口文件。controller包要与他同级。

 

5.启动类helloworldApplication

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

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

}

6. 控制器HelloContorller

package helloworld.controller;

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

@Controller
public class HelloContorller {
		@ResponseBody
		@RequestMapping("/hello")
		public String hello(){
			
			return "helloworld";
			
		}
}

注意:这里的@RequestMapping("/hello")设置的可是访问的url地址

注意:访问地址为SpringBoot默认的端口是 8080,启动项目后直接访问http://localhost:8080/hello 进行测试。

两个注解的含义:如果你在添加这两个注解时报错,原因之一可能就是你在开始没有选择web,没有将web对应的jar包引入。

@ReatController:与controller注解的区别是,当返回的是字符串时,就是字符串;而controller会把字符串与配置的前缀后缀进行拼接,最后返回一个页面(如果该页面没有 就会报错)。

@RequestMapping:是url的映射,即当你在浏览器中输入/hello时,就会调用该方法。
 

7.运行方法:跟运行普通java类一样,run as-》java application

 

8.访问浏览器:http://localhost:8080/hello

9.报错总结

   1.运行报错:项目右键-》build path-》configure build path

 将buildpath中的tomcat配置remove掉

 2.访问时出现

 

 就是包的位置放的有问题参考上面包的放置。

一般出现这个问题的原因就是目录结构不正确,导致主应用程序类(Main application class)扫描不到controller类。
默认情况下主应用程序类(Main application class)只会扫描同一包下的Class。

官方文档给出的说明:
https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#using-boot-structuring-your-code
 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页