Spring Boot Learning(helloWorld)

使用 Spring Tool Suite 工具开发,注意和eclipse版本的队员。

步骤:

最后生成的目录结构:

在这里我们可以通过查看pom.xml看看都有哪些包被依赖了进去:

可以看到,当在前面建立工程的时候选择web,默认回引入内置的tomcat。

接下来,代码:

package com.example.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(value = "index")
public class IndexController {

	@RequestMapping
	public String index() {
		return "hello spring boot!";
	}
}

关于RestController标签,查看源码,它其实就是Controller标签的拓展。

访问:

运行:可以使用两种方式,区别就是Spring Boot App在关闭的时候有回调,另外一个没有,具体可以通过控制台日志看出来。开发时候建议使用下面的方式运行。

添加DevTools,它会监控当前项目,如果有更改会自动更新、编译、重启服务器。

继续:

package com.example.controller;

import java.util.HashMap;
import java.util.Map;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(value = "index")
public class IndexController {

	@RequestMapping
	public String index() {
		return "hello spring boot!";
	}

	@RequestMapping(value = "get")
	public Map<String, String> get(@RequestParam String name) {

		Map<String, String> map = new HashMap<String, String>();
		map.put("name", name);
		map.put("value", "hello boot");

		return map;
	}
}

默认会返回json,已经引入了jackon包。

Controller返回对象:

新建User类:

package com.example.bean;

import java.util.Date;

public class User {

    private int id;

    private String name;

    private Date date;

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public Date getDate() {
        return date;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setDate(Date date) {
        this.date = date;
    }
}

修改Controller:

package com.example.controller;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.example.bean.User;

@RestController
@RequestMapping(value = "index")
public class IndexController {

    @RequestMapping
    public String index() {
        return "hello spring boot!";
    }

    @RequestMapping(value = "get")
    public Map<String, String> get(@RequestParam String name) {

        Map<String, String> map = new HashMap<String, String>();
        map.put("name", name);
        map.put("value", "hello boot");

        return map;
    }

    @RequestMapping(value = "find/{id}/{name}")
    public User get(@PathVariable int id, @PathVariable String name) {

        User user = new User();

        user.setId(id);
        user.setName(name);
        user.setDate(new Date());

        return user;
    }
}

访问:

单元测试(使用spring提供的mock):

package com.example;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.RequestBuilder;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

import com.example.controller.IndexController;

@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {

    private MockMvc mvc;

    @Before
    public void before() {
        this.mvc = MockMvcBuilders.standaloneSetup(new IndexController()).build();
    }

    @Test
    public void contextLoads() throws Exception {
        RequestBuilder rq = get("/index");
        mvc.perform(rq).andExpect(status().isOk()).andExpect(content().string("hello spring boot!"));
    }

}

打包:

打包后生成目录:

其中,.jar为最终包,会把相关的依赖也包含进去。.original则只是当前代码。

直接java -jar demo-0.0.1-snapshot.jar运行。

时间: 2024-10-12 17:37:58

Spring Boot Learning(helloWorld)的相关文章

Spring Boot Learning(配置文件)

Properties配置 配置文件的生效顺序,会对值进行覆盖: 1. @TestPropertySource 注解2. 命令行参数3. Java系统属性(System.getProperties())4. 操作系统环境变量5. 只有在random.*里包含的属性会产生一个RandomValuePropertySource6. 在打包的jar外的应用程序配置文件(application.properties,包含YAML和profile变量)7. 在打包的jar内的应用程序配置文件(applica

Spring Boot Learning(日志配置)

支持日志框架:Java Util Logging, Log4J2 and Logback,默认是使用logback配置方式:默认配置文件配置和引用外部配置文件配置 一. 默认配置文件配置(不建议使用:不够灵活,对log4j2等不够友好)# 日志文件名,比如:roncoo.log,或者是 /var/log/roncoo.loglogging.file=roncoo.log # 日志级别配置,比如: logging.level.org.springframework=DEBUGlogging.lev

Spring Boot Learning(错误处理)

三种方式: 第一种: Spring Boot 将所有的错误默认映射到/error, 实现ErrorController 这时候需要定义一个Controller去实现ErrorController package com.example.controller; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.autoconfigure.web.ErrorControll

Spring Boot 之 HelloWorld详解

SpringBoot介绍~<暂时假装有> 配置 <?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://

Spring Boot Learning(配置文件--多环境配置)

多环境配置的好处: 1.不同环境配置可以配置不同的参数2.便于部署,提高效率,减少出错 Properties多环境配置 1. 配置激活选项    spring.profiles.active=dev2.添加其他配置文件 application-test.properties application-dev.properties application-prod.properties Yaml多环境配置: 1.配置激活选项  spring:    profiles:      active: de

第一节:我的第一个spring boot demo helloworld

一.首先声明一下,我使用的是idea开发工具.是同事推荐使用的idea工具,对于myeclipse.eclipse.idea 有什么差异,我还不知道,要是有知道大神可以说明一下,谢谢 二.废话不多说了,直接上图和源码 1.打开idea后 项目名称为demo,可以改为helloworld 勾选它就好 最好点击完成 原文地址:https://www.cnblogs.com/studyProgramme/p/8275617.html

Spring Boot——2分钟构建spring web mvc REST风格HelloWorld

之前有一篇<5分钟构建spring web mvc REST风格HelloWorld>介绍了普通方式开发spring web mvc web service.接下来看看使用spring boot如何快速构建一个. Spring Boot使我们更容易去创建基于Spring的独立和产品级的可以”即时运行“的应用和服务.支持约定大于配置,目的是尽可能快地构建和运行Spring应用. 之前我们创建基于Spring的项目需要考虑添加哪些Spring依赖和第三方的依赖.使用Spring Boot后,我们可

Spring Boot实战之逐行释义HelloWorld

一.前言  研究Spring boot也有一小段时间了,最近会将研究东西整理一下给大家分享,大概会有10~20篇左右的博客,整个系列会以一个简单的博客系统作为基础,因为光讲理论很多东西不是特别容易理解,并且如果每次通过一个简单的小程序也无法系统的把握好一些知识点,所以就以一个简单的系统作为基础来讲,看看通过spring boot如何实现一个完整系统.本系列除了Spring boot基本的知识点之外,还会涉及到Spring boot与数据库.缓存(redis).消息队列等的结合以及多实例部署等方面

Spring Boot快速建立HelloWorld项目

Spring Boot使我们更容易去创建基于Spring的独立和产品级的可以”即时运行“的应用和服务.支持约定大于配置,目的是尽可能快地构建和运行Spring应用. 构建环境 JDK 6+ Maven 创建项目 1.使用Maven创建一个普通Maven应用即可. 2.修改pom.xml文件 <parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-st